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

Reply via email to