2014-09-11 12:00 GMT+01:00 Jean Rene Dawin <jda...@math.uni-bielefeld.de>:

> On Mon, Sep 08, 2014 at 04:42:04PM +0300, Daniel Zaoui wrote:
> > Hi,
> >
> > On 09/08/14 16:16, Jean Rene Dawin wrote:
> > > On Sat, Aug 16, 2014 at 02:36:10PM +0900, Carsten Haitzler wrote:
> > >> About time i got back to blogging about EFL etc.
> > >>
> > >>
> https://phab.enlightenment.org/phame/live/1//post/yet_another_c_object_model_but_better/
> > >>
> > > Hi,
> > >
> > > thanks for the explanations. Trying to reproduce the steps, the result
> of my tst.c
> > > differd a bit, though. I didn't get
> > >
> > >     EOLIAN static void
> > >     _tst_eo_base_constructor(Eo *obj, Tst_Data *pd)
> > >     {
> > >        eo_do_super(obj, TST_CLASS, eo_constructor());
> > >     }
> > >
> > >     EOLIAN static void
> > >     _tst_eo_base_destructor(Eo *obj, Tst_Data *pd)
> > >     {
> > >        eo_do_super(obj, TST_CLASS, eo_destructor());
> > >     }
> > >
> > > but instead
> > >
> > >     EOLIAN static void
> > >     _tst_class_constructor(Eo_Class *klass)
> > >     {
> > >     }
> > >     EOLIAN static void
> > >     _tst_class_destructor(Eo_Class *klass)
> > >     {
> > >     }
> > >
> > > Is there a more detailed documentation of the Eo-Syntax and API
> somewhere?
> > > Becuase the one on docs.enlightenment.org is not so verbose or maybe
> outdated.
> > > Is this because there will be more changes to Eo and things are not
> fixed yet?
> > >
> > > Thanks for your help,
> > >
> > > Jean Rene Dawin
> > >
> >
> > You should try with Base.constructor instead of class.constructor (same
> > for the destructor).
> >
> > You can look at https://phab.enlightenment.org/w/eolian/ for more docs
> > on the syntax.
> >
> > One of all the EFL Daniels
>
> Hi,
>
> thanks for the answers. The site you mentioned is indeed very informative
> about eo-file syntax. But what I'm more interested in is the whole
> mechanics of eo_add, eo_do and eo_add_custom and all those functions. For
> example I tried to do this
>
>     #define EFL_BETA_API_SUPPORT
>     #define EFL_EO_API_SUPPORT
>     #include <Elementary.h>
>     EAPI_MAIN int
>     elm_main(int argc, char **argv){
>         eo_init();
>         Eo *win = eo_add(ELM_WIN_CLASS, NULL);
>         eo_do(win,
>             elm_obj_win_title_set("Nikotinamiddinukleotidphosphat")
>         );
>         elm_run();
>         return 0;
>     }
>     ELM_MAIN()
>
> and while it compiled fine it threw runtime errors like
>
>     ERR<818>:eo lib/eo/eo.c:1572 eo_error_set_internal() Error with obj
> '0x9500b30' at elm_win.c:3510.
>     ERR<818>:elementary elm_win.c:3511 _elm_win_eo_base_constructor() only
> custom constructor can be used with 'Elm_Win' class
>     ERR<818>:eo lib/eo/eo.c:953 _eo_add_internal_end() Object of class
> 'Elm_Win' - Not all of the object constructors have been executed.
>
> as I'm obviously using Eo/Elementary in a wrong manner, but I find it
> quite hard to understand from the source files like Eo.h, how it would be
> done the right way.
> So, I guess I will have to try harder :)
>

You're supposed to use elm_win_add at this point to create the object. The
base constructor is explicitly overloaded to trigger this error.
Alternatively, you can use "eo_add_custom(ELM_WIN_CLASS, NULL,
elm_obj_win_constructor("foo", ELM_WIN_BASIC));". But that's pretty much
identical to what the "elm_win_add" function does.


>
> Regards,
>
> Jean Rne Dawin
>
>
>
> ------------------------------------------------------------------------------
> Want excitement?
> Manually upgrade your production database.
> When you want reliability, choose Perforce
> Perforce version control. Predictably reliable.
>
> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>

Another of the EFL Daniels aka D5
------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to