On Sat, 11 Oct 2008 20:48:04 +0200 (CEST) Dave Andreoli <[EMAIL PROTECTED]> babbled:
> Hi all, > > I want to make an e17 module that expose simple edje objects as gadgets. > The idea is that people can download edje file from the net(calculator, > clocks and whatever next), put it in the right directory and then my module > can expose this objects as they was gadgets (they must appear in the available > gadgets list of the shelf or the gadman). So that the user can use the object > where they want. > > This can be a really easy way to create and distribute simple gadgets as you > don't have to compile the edje object for different arch (thinking about > exchange can also host gadgets, without platform problem!). > In the future my module can also make some advanced stuff, for example execute > a bash, python (or what you like) script that is contained in the edje file, > making the simple gadgets more functional... but this is another story... > > This was the good part of the post, now comes the bad :( > I can't find a way to do this module without changing the E GADCON API. > From the module I create an E_Gadcon_Client_Class for each 'simple widget' > found in the right directory, and I call e_gadcon_provider_register() > as many times as needed. But then when E ask me for the label, the icon and > the id I can't know for witch 'simple widget' he need the information. > > > This is how it is done now: > ---------------------------------------------------- > struct _E_Gadcon_Client_Class > { > int version; > const char *name; > struct > { > E_Gadcon_Client *(*init) (E_Gadcon *gc, const char *name, const > char *id, const char *style); void (*shutdown) (E_Gadcon_Client > *gcc); void (*orient) (E_Gadcon_Client *gcc); > char *(*label) (void); > Evas_Object *(*icon) (Evas *evas); > const char *(*id_new) (void); > void (*id_del) (const char *id); > } func; > char *default_style; > }; > ---------------------------------------------------- > > As you can see the function label(void) don't have params and my module > is lost on this (for witch widget you want the label??). The same apply > to the icon and id_new functions. > So this is my proposed API > ---------------------------------------------------- > struct _E_Gadcon_Client_Class > { > int version; > const char *name; > struct > { > E_Gadcon_Client *(*init) (E_Gadcon *gc, const char *name, const > char *id, const char *style); void (*shutdown) (E_Gadcon_Client > *gcc); void (*orient) (E_Gadcon_Client *gcc); > char *(*label) (E_Gadcon_Client_Class *class); > Evas_Object *(*icon) (Evas *evas, E_Gadcon_Client_Class > *class); const char *(*id_new) (E_Gadcon_Client_Class *class); > void (*id_del) (const char *id); > } func; > char *default_style; > }; > ---------------------------------------------------- > I simple add the E_Gadcon_Client_Class *class params to some functions. ok one thng. for consistency make E_Gadcon_Client_Class the first param for icon () and also for id_del() even if we don't use it - at least it's consistent :) > I think that this kind of functionality (a single module that expose more > than one gadgets) could be useful in future, for example we can then make a > module that handle gadgets from different source (think of google_gadgets, > OSX dashbord widget...and so on) like KDE4 seems to do. WE then access a > really HUGE set of just done gadgets :) > > > What do you think about all this? It make sense? > maybe someone know how to do this without the break? > > Hope you like my idea, and also hope that this mail is clear enough... > as always my English is not so good ;) hmm - it makes sense. i guess if we break - break before e17 is released. so lets do it. i'm in. do your stuff! :) > ------------------------------------------------------------------------- > 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 -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) [EMAIL PROTECTED] ------------------------------------------------------------------------- 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