On Wed, Oct 8, 2008 at 4:05 AM, Michael 'Mickey' Lauer <[EMAIL PROTECTED]> wrote: > Congrats to the release, Gustavo! > > Can you briefly summarize how Guarana relates to Ewl, Etk, and > Elementary?
Guarana is more than a widget set, we provide some utilities that help development, like the module loader. As for our widget set, it's much like *last* Elementary. Actually I'm talking about this idea for a long time, back to the days Caio and I were hacking Canola2, he doing ETK and I doing Evas/Edje. Going with Evas/Edje was much simpler, much more extensible, it just lacked some base to work on top, that's the base we provided with python-terra (proprietary, python, Canola) and now in guarana (free software - lpgl, Cl). We used to say that "Etk copied just not the api, but the problems from Gtk", since you get some limitations that Gtk imposes to you because of their design. Elementary started out as a simple widget set, but old-fashioned. It *was* very similar to E widgets, don't know why raster did that. I also don't know if it was me talking to him (and sending guarana for beta testing), but he also realized that that is not the way to go and recently changed Elementary to be much more like Guarana... that's awesome, because there is no "infrastructure" need, we just provide smart objects, so it's easy to mix both. I'll try to get raster to drop Elementary and hack on Guarana, so we join efforts ;-) EWL is also different, it abstracts completely Evas/Edje from you. If you want something, you need to get and embedded widget to work with. That's a concept, I can't say it is wrong, but I don't like it. Other great Guarana stuff: - Accessor/Iterator: now in Eina (which we plan to use ASAP, dropping our code), this enables your data types to provide a common interface to access by index or to iterate, you can have as much accessors/iterators as wished for the same data type (unlike Ecore), and it's easy to use. The main reason I wrote so is thinking about Python (and others) integration: you just need to write a python_acessor and iterator and map to Python's __getitem__() and sudently your code will just work :-) - module loader: create a map (grn_loader_conf) of key=(file, symbol, prio, enabled) and it will return a list or the highest priority symbol that matches. It's a very easy way to split your code into modules to be dynamically loaded, specially with mvc - model-view-controller (mvc) basics and integrated with module loader. This is great because your module can request "Give me all the models that implement Model/MainMenu" and you get a list of functions, that you call and get the models. Then you want to "enter" some item, you go and ask: "Give me the first controller for model Model/Folder/Audio", it will try to check for "Model/Folder/Audio" and if not found will try "Model/Folder". That way you can just implement the model folder to list stuff by name, then go do some interesting stuff. When you're done with interesting stuff and you want to do some fancy stuff, you can go and write a Model/Folder/Audio that shows the title, cover art, etc... without need for whole software recompile. It will just work :-) These concepts are not new. I borrowed some from Zope, some from Python itself, some from Turbogears/Ruby-on-Rails. Controller discovery is much like mime-types. I used this kind of infrastructure for Freevo back in 2002, then in Canola1, Canola2 and some other private projects. So it works, and works nice. But we lacked something to use with EFL, and here it is :-) Have fun, -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -------------------------------------- MSN: [EMAIL PROTECTED] Skype: gsbarbieri Mobile: +55 (19) 9225-2202 ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel