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
> [email protected]
> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel