Hi, folks.

As a few people already know, ProFUSION is working on changing Elementary's
internal widgets structure. The work aims to provide type inheritance and
interfaces on widget creation. This will bring a great deal of code
factorization, easing maintainability and pushing for code reuse. Also,
making new widgets will be a lot less cumbersome, if common behavior is
shared with any of the pre-existent ones.

I've made public a git repo with my code, rebased with SVN HEAD as of
today, for public try/analysis:
http://git.profusion.mobi/cgit.cgi/glima/elementary/

A basic explanation of the idea on this refactoring can be found at:
http://people.profusion.mobi/~glima/elm/group__Widget.html

We created a base Elementary class, to aggregate common functionality all
widgets must have. On top of that, we have already created one
specialization: the layout. Besides being the code-base for the layout
widget, itself, it serves for whichever widget is just some visual
presentation (thus, a layout), with simple logic on top which is very
specific to it -- button is an example.

Other ones will come, be it in the form of (smart) classes or interfaces --
scroller, for example.

I can still edit those commits, so don't expect them to land as is.
Especially, I'm still trying to factorize more code into the layout --
sizing routines, for instance.

There are a bunch of widgets translated to the new schema. Because their
diff would be huge/messy anyway, I didn't take care of having a minimal
diff on them, like on the infrastructure commits. Testing, comments,
patches, all welcome, of course.

After we hit Elm's release, those patches will land upstream.

Cheers,

-- 
Gustavo Lima Chaves
Senior Developer

ProFUSION embedded systems

http://profusion.mobi
------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to