----- "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
> > [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