----- "Carsten Haitzler (The Rasterman)" <[EMAIL PROTECTED]> ha scritto:
> 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 :) Ok and I will also add the param orientation to the function orient(). So we also can orient gadgets on the desktop :) Dave > > > 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