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