On Fr 11 Nov 2011 22:32:15 CET, Enlightenment SVN wrote: > Log: > Add some inheritance. > > > Author: onefang > Date: 2011-11-11 13:32:15 -0800 (Fri, 11 Nov 2011) > New Revision: 65079 > Trac: http://trac.enlightenment.org/e/changeset/65079 > > Modified: > trunk/edje/src/lib/edje_lua2.c > > Modified: trunk/edje/src/lib/edje_lua2.c > =================================================================== > --- trunk/edje/src/lib/edje_lua2.c 2011-11-11 20:55:07 UTC (rev 65078) > +++ trunk/edje/src/lib/edje_lua2.c 2011-11-11 21:32:15 UTC (rev 65079) > @@ -192,8 +192,10 @@ > // // LATER: box and table calls > // // LATER: perspective stuff change > // > -static const char *_elua_meta_edje = "meta_edje"; > -static const struct luaL_reg _elua_edje_api [] = > + > +static const char *_elua_edje_api = "edje"; > +static const char *_elua_edje_meta = "edje_meta"; > +static const struct luaL_reg _elua_edje_funcs [] = > { > // add an echo too to make it more shelly > {"echo", _elua_echo}, // test func - echo (i know we have > print. test) > @@ -236,8 +238,9 @@ > {NULL, NULL} // end > }; > > -static const char *_elua_meta_evas = "meta_evas"; > -static const struct luaL_reg _elua_edje_evas_obj [] = > +static const char *_elua_evas_api = "evas"; > +static const char *_elua_evas_meta = "evas_meta"; > +static const struct luaL_reg _elua_evas_funcs [] = > { > // generic object methods > {"del", _elua_obj_del}, // generic del any object created for > edje (evas objects, timers, animators, transitions... everything) > @@ -269,28 +272,6 @@ > > // {"color_class", _elua_object_color_class}, // get or set object > color class > > - > - // FIXME: make these into a subclass of this evas table using meta table > magic. > - // text object specific > - {"font", _elua_text_font}, // get or set text font > - {"text", _elua_text_text}, // get or set text > -// {"text_class", _elua_object_text_class}, // get or set object text > class > - > - // image object specific > - {"image", _elua_image_image}, // get or set image > - {"fill", _elua_image_fill}, // get or set the fill parameters > - {"filled", _elua_image_filled}, // get or set the filled state > (overrides fill()) > - > - // edje object specific > - {"file", _elua_edje_file}, // get or set edje file and group > - > - // line object specific > - {"xy", _elua_line_xy}, // get or set line coords > - > - // polygon object specific > - {"point", _elua_polygon_point}, // add a polygon point > - {"clear", _elua_polygon_clear}, // clear all polygon points > - > // FIXME: set callbacks (mouse down, up, blah blah blah) > // > // FIXME: set scale (explicit value) > @@ -307,9 +288,45 @@ > {NULL, NULL} // end > }; > > -static const char *_elua_meta_map = "meta_map"; > -static const struct luaL_reg _elua_evas_map_obj [] = > +static const char *_elua_evas_edje_api = "evas_edje"; > +static const char *_elua_evas_edje_meta = "evas_edje_meta"; > +static const char *_elua_evas_edje_parent = "evas_edje_parent"; > +static const struct luaL_reg _elua_evas_edje_funcs [] = > { > + // edje object specific > + {"file", _elua_edje_file}, // get or set edje file and group > + > + {NULL, NULL} // end > +}; > + > +static const char *_elua_evas_image_api = "evas_image"; > +static const char *_elua_evas_image_meta = "evas_image_meta"; > +static const char *_elua_evas_image_parent = "evas_image_parent"; > +static const struct luaL_reg _elua_evas_image_funcs [] = > +{ > + // image object specific > + {"image", _elua_image_image}, // get or set image > + {"fill", _elua_image_fill}, // get or set the fill parameters > + {"filled", _elua_image_filled}, // get or set the filled state > (overrides fill()) > + > + {NULL, NULL} // end > +}; > + > +static const char *_elua_evas_line_api = "evas_line"; > +static const char *_elua_evas_line_meta = "vas_line_meta"; > +static const char *_elua_evas_line_parent = "evas_line_parent"; > +static const struct luaL_reg _elua_evas_line_funcs [] = > +{ > + // line object specific > + {"xy", _elua_line_xy}, // get or set line coords > + > + {NULL, NULL} // end > +}; > + > +static const char *_elua_evas_map_api = "ewas_map"; > +static const char *_elua_evas_map_meta = "evas_map_meta"; > +static const struct luaL_reg _elua_evas_map_funcs [] = > +{ > {"alpha", _elua_map_alpha}, > // {"dup", _elua_map_dup}, // not sure of proper api for this. > {"clockwise", _elua_map_clockwise}, > @@ -328,8 +345,33 @@ > {NULL, NULL} // end > }; > > -static const struct luaL_reg _elua_edje_meta [] = > +static const char *_elua_evas_polygon_api = "evas_polygon"; > +static const char *_elua_evas_polygon_meta = "evas_polygon_meta"; > +static const char *_elua_evas_polygon_parent = "evas_polygon_parent"; > +static const struct luaL_reg _elua_evas_polygon_funcs [] = > { > + // polygon object specific > + {"point", _elua_polygon_point}, // add a polygon point > + {"clear", _elua_polygon_clear}, // clear all polygon points > + > + {NULL, NULL} // end > +}; > + > +static const char *_elua_evas_text_api = "evas_text"; > +static const char *_elua_evas_text_meta = "evas_text_meta"; > +static const char *_elua_evas_text_parent = "evas_text_parent"; > +static const struct luaL_reg _elua_evas_text_funcs [] = > +{ > + // text object specific > + {"font", _elua_text_font}, // get or set text font > + {"text", _elua_text_text}, // get or set text > +// {"text_class", _elua_object_text_class}, // get or set object text > class > + > + {NULL, NULL} // end > +}; > + > +static const struct luaL_reg _elua_edje_gc_funcs [] = > +{ > {"__gc", _elua_obj_gc}, // garbage collector func for edje objects > > {NULL, NULL} // end > @@ -438,13 +480,13 @@ > lua_call(L, 1, 0); > } > > - luaL_register(L, "edje", _elua_edje_api); > - luaL_newmetatable(L, _elua_meta_edje); > - luaL_register(L, 0, _elua_edje_meta); > + luaL_register(L, _elua_edje_api, _elua_edje_funcs); > + luaL_newmetatable(L, _elua_edje_meta); > + luaL_register(L, 0, _elua_edje_gc_funcs); > > - luaL_register(L, "edje_evas_obj", _elua_edje_evas_obj); > - luaL_newmetatable(L, _elua_meta_evas); > - luaL_register(L, 0, _elua_edje_meta); > + luaL_register(L, _elua_evas_api, _elua_evas_funcs); > + luaL_newmetatable(L, _elua_evas_meta); > + luaL_register(L, 0, _elua_edje_gc_funcs); > > lua_pushliteral(L, "__index"); > lua_pushvalue(L, -3); > @@ -526,8 +568,33 @@ > return lua_touserdata(L, -2); > } > > +// Brain dead inheritance thingy, built for speed. Kinda. > +static Eina_Bool > +_elua_isa(Edje_Lua_Obj *obj, const char *type) > +{ > + Eina_Bool isa = FALSE; > + > + if (!obj) return isa; > + if (obj->meta == type) > + isa = TRUE; > + if (_elua_evas_meta == type) > + { > + if (obj->meta == _elua_evas_image_meta) > + isa = TRUE; > + else if (obj->meta == _elua_evas_text_meta) > + isa = TRUE; > + else if (obj->meta == _elua_evas_edje_meta) > + isa = TRUE; > + else if (obj->meta == _elua_evas_line_meta) > + isa = TRUE; > + else if (obj->meta == _elua_evas_polygon_meta) > + isa = TRUE; > + } > + return isa; > +} > + > static Edje_Lua_Obj * > -_elua_obj_new_common(lua_State *L, Edje *ed, int size, const char *metatable) > +_elua_obj_new(lua_State *L, Edje *ed, int size, const char *metatable) > { > Edje_Lua_Obj *obj; > > @@ -544,18 +611,6 @@ > return obj; > } > > -static Edje_Lua_Obj * > -_elua_obj_new(lua_State *L, Edje *ed, int size) > -{ > - return _elua_obj_new_common(L, ed, size, _elua_meta_evas); > -} > - > -static Edje_Lua_Obj * > -_elua_map_new(lua_State *L, Edje *ed, int size) > -{ > - return _elua_obj_new_common(L, ed, size, _elua_meta_map); > -} > - > static void > _elua_obj_free(lua_State *L __UNUSED__, Edje_Lua_Obj *obj) > { > @@ -866,7 +921,7 @@ > val = luaL_checknumber(L, 1); > luaL_checkany(L, 2); > > - elt = (Edje_Lua_Timer *)_elua_obj_new(L, ed, sizeof(Edje_Lua_Timer)); > + elt = (Edje_Lua_Timer *)_elua_obj_new(L, ed, sizeof(Edje_Lua_Timer), > _elua_evas_meta); > elt->obj.free_func = _elua_timer_free; > elt->timer = ecore_timer_add(val, _elua_timer_cb, elt); > lua_pushvalue(L, 2); > @@ -930,7 +985,7 @@ > > luaL_checkany(L, 1); > > - ela = (Edje_Lua_Animator *)_elua_obj_new(L, ed, > sizeof(Edje_Lua_Animator)); > + ela = (Edje_Lua_Animator *)_elua_obj_new(L, ed, > sizeof(Edje_Lua_Animator), _elua_evas_meta); > ela->obj.free_func = _elua_animator_free; > ela->animator = ecore_animator_add(_elua_animator_cb, ela); > lua_pushvalue(L, 1); > @@ -1001,7 +1056,7 @@ > val = luaL_checknumber(L, 1); > luaL_checkany(L, 2); > > - elt = (Edje_Lua_Transition *)_elua_obj_new(L, ed, > sizeof(Edje_Lua_Transition)); > + elt = (Edje_Lua_Transition *)_elua_obj_new(L, ed, > sizeof(Edje_Lua_Transition), _elua_evas_meta); > elt->obj.free_func = _elua_transition_free; > elt->animator = ecore_animator_add(_elua_transition_cb, elt); > if (val < 0.0000001) val = 0.0000001; > @@ -1759,8 +1814,7 @@ > { > Edje_Lua_Obj *obj = (Edje_Lua_Obj *)lua_touserdata(L, 1); > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > evas_object_show(elo->evas_obj); > lua_pushboolean(L, evas_object_visible_get(elo->evas_obj)); > return 1; > @@ -1771,8 +1825,7 @@ > { > Edje_Lua_Obj *obj = (Edje_Lua_Obj *)lua_touserdata(L, 1); > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > evas_object_hide(elo->evas_obj); > lua_pushboolean(L, evas_object_visible_get(elo->evas_obj)); > return 1; > @@ -1784,8 +1837,7 @@ > Edje_Lua_Obj *obj = (Edje_Lua_Obj *)lua_touserdata(L, 1); > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > int n; > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > n = lua_gettop(L); > if (n == 2) > { > @@ -1806,8 +1858,7 @@ > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > int x, y; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > if (_elua_2_int_get(L, 2, EINA_TRUE, "x", &x, "y", &y) > 0) > { > if ((x != elo->x) || (y != elo->y)) > @@ -1832,8 +1883,7 @@ > Evas_Coord ow, oh; > int w, h; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > evas_object_geometry_get(elo->evas_obj, NULL, NULL, &ow, &oh); > if (_elua_2_int_get(L, 2, EINA_TRUE, "w", &w, "h", &h) > 0) > { > @@ -1868,8 +1918,7 @@ > Evas_Coord ow, oh; > int x, y, w, h; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > evas_object_geometry_get(elo->evas_obj, NULL, NULL, &ow, &oh); > if (_elua_4_int_get(L, 2, EINA_TRUE, "x", &x, "y", &y, "w", &w, "h", &h) > > 0) > { > @@ -1899,8 +1948,7 @@ > { > Edje_Lua_Obj *obj = (Edje_Lua_Obj *)lua_touserdata(L, 1); > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > evas_object_raise(elo->evas_obj); > return 0; > } > @@ -1910,8 +1958,7 @@ > { > Edje_Lua_Obj *obj = (Edje_Lua_Obj *)lua_touserdata(L, 1); > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > evas_object_lower(elo->evas_obj); > return 0; > } > @@ -1923,8 +1970,7 @@ > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > Edje_Lua_Evas_Object *elo2; > Evas_Object *o; > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > if (!(o = evas_object_above_get(elo->evas_obj))) return 0; > if (!(elo2 = evas_object_data_get(o, ELO))) return 0; > _elua_ref_get(L, elo2); > @@ -1938,8 +1984,7 @@ > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > Edje_Lua_Evas_Object *elo2; > Evas_Object *o; > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > if (!(o = evas_object_below_get(elo->evas_obj))) return 0; > if (!(elo2 = evas_object_data_get(o, ELO))) return 0; > _elua_ref_get(L, elo2); > @@ -1954,8 +1999,7 @@ > Edje_Lua_Evas_Object *elo2; > Evas_Object *o; > Eina_List *list, *l; > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > if (!(list = (Eina_List *)evas_object_smart_members_get(obj->ed->obj))) > return 0; > if (!list) return 0; > for (l = eina_list_last(list); l; l = l->prev) > @@ -1978,8 +2022,7 @@ > Edje_Lua_Evas_Object *elo2; > Evas_Object *o; > Eina_List *list, *l; > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > if (!(list = (Eina_List *)evas_object_smart_members_get(obj->ed->obj))) > return 0; > for (l = list; l; l = l->next) > { > @@ -2000,8 +2043,7 @@ > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > int r, g, b, a; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > if (_elua_4_int_get(L, 2, EINA_TRUE, "r", &r, "g", &g, "b", &b, "a", &a) > > 0) > { > _elua_color_fix(&r, &g, &b, &a); > @@ -2022,14 +2064,13 @@ > Edje_Lua_Evas_Object *elo2, *elo = (Edje_Lua_Evas_Object *)obj; > Evas_Object *o; > int n; > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > n = lua_gettop(L); > if (n == 2) > { > Edje_Lua_Obj *obj2 = (Edje_Lua_Obj *)lua_touserdata(L, 2); > elo2 = (Edje_Lua_Evas_Object *)obj2; > - if (obj2->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj2, _elua_evas_meta)) return 0; > evas_object_clip_set(elo->evas_obj, elo2->evas_obj); > } > o = evas_object_clip_get(elo->evas_obj); > @@ -2044,8 +2085,7 @@ > { > Edje_Lua_Obj *obj = (Edje_Lua_Obj *)lua_touserdata(L, 1); > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > evas_object_clip_unset(elo->evas_obj); > return 0; > } > @@ -2058,8 +2098,7 @@ > Eina_List *list, *l; > Evas_Object *o; > int n = 0; > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > list = (Eina_List *)evas_object_clipees_get(elo->evas_obj); > lua_newtable(L); > EINA_LIST_FOREACH(list, l, o) > @@ -2079,8 +2118,7 @@ > Edje_Lua_Obj *obj = (Edje_Lua_Obj *)lua_touserdata(L, 1); > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > const char *t; > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > t = evas_object_type_get(elo->evas_obj); > if (!t) return 0; > lua_pushstring(L, t); > @@ -2093,8 +2131,7 @@ > Edje_Lua_Obj *obj = (Edje_Lua_Obj *)lua_touserdata(L, 1); > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > int n; > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > n = lua_gettop(L); > if (n == 2) > { > @@ -2113,8 +2150,7 @@ > Edje_Lua_Obj *obj = (Edje_Lua_Obj *)lua_touserdata(L, 1); > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > int n; > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > n = lua_gettop(L); > if (n == 2) > { > @@ -2133,8 +2169,7 @@ > Edje_Lua_Obj *obj = (Edje_Lua_Obj *)lua_touserdata(L, 1); > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > int n; > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > n = lua_gettop(L); > if (n == 2) > { > @@ -2151,10 +2186,8 @@ > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > Edje_Lua_Obj *obj2 = (Edje_Lua_Obj *)lua_touserdata(L, 2); > Edje_Lua_Map *elm = (Edje_Lua_Map *)obj2; > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > - if (!obj2) return 0; > - if (obj2->meta != _elua_meta_map) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > + if (!_elua_isa(obj2, _elua_evas_map_meta)) return 0; > > evas_object_map_set(elo->evas_obj, elm->map); > > @@ -2167,8 +2200,7 @@ > Edje_Lua_Obj *obj = (Edje_Lua_Obj *)lua_touserdata(L, 1); > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > int n; > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > > n = lua_gettop(L); > if (n == 2) > @@ -2188,8 +2220,7 @@ > Edje_Lua_Evas_Object *elo2; > int n; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_meta)) return 0; > > n = lua_gettop(L); > if (n == 2) > @@ -2197,9 +2228,7 @@ > Edje_Lua_Obj *obj2 = (Edje_Lua_Obj *)lua_touserdata(L, 2); > const Edje_Lua_Evas_Object *source = (Edje_Lua_Evas_Object *)obj2; > > - if (!obj2) return 0; > - if (obj2->meta != _elua_meta_evas) return 0; > - > + if (!_elua_isa(obj2, _elua_evas_meta)) return 0; > evas_object_map_source_set(elo->evas_obj, source->evas_obj); > } > > @@ -2219,8 +2248,7 @@ > Evas_Font_Size size; > int inlined_font = 0; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_text_meta)) return 0; > > if (_elua_str_int_get(L, 2, EINA_TRUE, "font", &font, "size", &size) > 0) > { > @@ -2263,8 +2291,8 @@ > Edje_Lua_Obj *obj = (Edje_Lua_Obj *)lua_touserdata(L, 1); > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > int n; > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + > + if (!_elua_isa(obj, _elua_evas_text_meta)) return 0; > n = lua_gettop(L); > if (n == 2) > { > @@ -2285,11 +2313,10 @@ > { > Edje_Lua_Obj *obj = (Edje_Lua_Obj *)lua_touserdata(L, 1); > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > - const char *file = NULL, *key = NULL; > + char *file = NULL, *key = NULL; > int n; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_image_meta)) return 0; > > n = lua_gettop(L); > > @@ -2297,8 +2324,8 @@ > n = _elua_2_str_get(L, 2, EINA_TRUE, "file", &file, "key", &key); > else if (2 == n) > { > - file = obj->ed->file->path; > - key = lua_tostring(L, 2); > + file = (char *) obj->ed->file->path; > + key = (char *) lua_tostring(L, 2); > } > > if (1 < n) > @@ -2319,8 +2346,7 @@ > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > Evas_Coord x, y, w, h; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_image_meta)) return 0; > > if (_elua_4_int_get(L, 2, EINA_TRUE, "x", &x, "y", &y, "w", &w, "h", &h) > > 0) > { > @@ -2342,8 +2368,7 @@ > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > int n; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_image_meta)) return 0; > > n = lua_gettop(L); > if (n == 2) > @@ -2354,14 +2379,14 @@ > return 1; > } > > -static int _elua_edje_file(lua_State *L) > +static int > +_elua_edje_file(lua_State *L) > { > Edje_Lua_Obj *obj = (Edje_Lua_Obj *)lua_touserdata(L, 1); > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > char *file = NULL, *group = NULL; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_edje_meta)) return 0; > > if (_elua_2_str_get(L, 2, EINA_TRUE, "file", &file, "group", &group) > 0) > { > @@ -2381,8 +2406,7 @@ > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > Evas_Coord x1, y1, x2, y2; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_line_meta)) return 0; > > if (_elua_4_int_get(L, 2, EINA_TRUE, "x1", &x1, "y1", &y1, "x2", &x2, > "y2", &y2) > 0) > { > @@ -2402,8 +2426,7 @@ > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > Evas_Coord x, y; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_polygon_meta)) return 0; > > if (_elua_2_int_get(L, 2, EINA_FALSE, "x", &x, "y", &y) > 0) > { > @@ -2418,8 +2441,7 @@ > Edje_Lua_Obj *obj = (Edje_Lua_Obj *)lua_touserdata(L, 1); > Edje_Lua_Evas_Object *elo = (Edje_Lua_Evas_Object *)obj; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_evas) return 0; > + if (!_elua_isa(obj, _elua_evas_polygon_meta)) return 0; > evas_object_polygon_points_clear(elo->evas_obj); > return 1; > } > @@ -2431,8 +2453,7 @@ > Edje_Lua_Map *elm = (Edje_Lua_Map *)obj; > int n; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_map) return 0; > + if (!_elua_isa(obj, _elua_evas_map_meta)) return 0; > > n = lua_gettop(L); > if (n == 2) > @@ -2449,8 +2470,7 @@ > Edje_Lua_Obj *obj = (Edje_Lua_Obj *)lua_touserdata(L, 1); > Edje_Lua_Map *elm = (Edje_Lua_Map *)obj; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_map) return 0; > + if (!_elua_isa(obj, _elua_evas_map_meta)) return 0; > > lua_pushboolean(L, evas_map_util_clockwise_get(elm->map)); > return 1; > @@ -2464,8 +2484,7 @@ > int r, g, b, a; > int n; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_map) return 0; > + if (!_elua_isa(obj, _elua_evas_map_meta)) return 0; > n = lua_gettop(L); > > switch (n) > @@ -2506,8 +2525,7 @@ > Evas_Coord x, y, z; > int n; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_map) return 0; > + if (!_elua_isa(obj, _elua_evas_map_meta)) return 0; > n = lua_gettop(L); > if (2 > n) return 0; > > @@ -2531,8 +2549,7 @@ > int r, g, b, r1, g1, b1; > int n; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_map) return 0; > + if (!_elua_isa(obj, _elua_evas_map_meta)) return 0; > > if (n = (_elua_3_int_get(L, 2, EINA_FALSE, "x", &x, "y", &y, "z", &z)) > > 0) > if (n += _elua_3_int_get(L, 2 + n, EINA_FALSE, "r", &r, "g", &g, "b", > &b) > 0) > @@ -2551,8 +2568,7 @@ > Edje_Lua_Map *elm = (Edje_Lua_Map *)obj; > Evas_Coord x, y, z, f; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_map) return 0; > + if (!_elua_isa(obj, _elua_evas_map_meta)) return 0; > > if (_elua_4_int_get(L, 2, EINA_FALSE, "x", &x, "y", &y, "z", &z, "f", &f) > > 0) > { > @@ -2569,8 +2585,7 @@ > Edje_Lua_Map *elm = (Edje_Lua_Map *)obj; > int n; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_map) return 0; > + if (!_elua_isa(obj, _elua_evas_map_meta)) return 0; > n = lua_gettop(L); > > switch (n) > @@ -2579,8 +2594,8 @@ > { > Edje_Lua_Obj *obj2 = (Edje_Lua_Obj *)lua_touserdata(L, 2); > const Edje_Lua_Evas_Object *source = (Edje_Lua_Evas_Object *)obj2; > - if (obj2->meta != _elua_meta_evas) return 0; > > + if (!_elua_isa(obj2, _elua_evas_meta)) return 0; > evas_map_util_points_populate_from_object(elm->map, > source->evas_obj); > break; > } > @@ -2589,9 +2604,9 @@ > { > Edje_Lua_Obj *obj2 = (Edje_Lua_Obj *)lua_touserdata(L, 2); > const Edje_Lua_Evas_Object *source = (Edje_Lua_Evas_Object *)obj2; > - if (obj2->meta != _elua_meta_evas) return 0; > Evas_Coord z = lua_tointeger(L, 3); > > + if (!_elua_isa(obj2, _elua_evas_meta)) return 0; > evas_map_util_points_populate_from_object_full(elm->map, > source->evas_obj, z); > break; > } > @@ -2619,8 +2634,7 @@ > Evas_Coord x, y; > int n; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_map) return 0; > + if (!_elua_isa(obj, _elua_evas_map_meta)) return 0; > n = lua_gettop(L); > if (4 != n) return 0; > > @@ -2642,8 +2656,7 @@ > Evas_Coord x, y, z; > int n; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_map) return 0; > + if (!_elua_isa(obj, _elua_evas_map_meta)) return 0; > > if (n = (_elua_3_num_get(L, 2, EINA_FALSE, "x", &zx, "y", &zy, "z", &zz)) > > 0) > if (_elua_3_int_get(L, 2 + n, EINA_FALSE, "x", &x, "y", &y, "z", &z) > > 0) > @@ -2661,8 +2674,7 @@ > Edje_Lua_Map *elm = (Edje_Lua_Map *)obj; > int n; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_map) return 0; > + if (!_elua_isa(obj, _elua_evas_map_meta)) return 0; > > n = lua_gettop(L); > if (n == 2) > @@ -2681,8 +2693,7 @@ > double u, v; > int n; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_map) return 0; > + if (!_elua_isa(obj, _elua_evas_map_meta)) return 0; > n = lua_gettop(L); > if (2 > n) return 0; > > @@ -2705,8 +2716,7 @@ > Evas_Coord x, y; > int n; > > - if (!obj) return 0; > - if (obj->meta != _elua_meta_map) return 0; > + if (!_elua_isa(obj, _elua_evas_map_meta)) return 0; > > if (n = (_elua_2_num_get(L, 2, EINA_FALSE, "x", &zx, "y", &zy)) > 0) > if (_elua_2_int_get(L, 2 + n, EINA_FALSE, "x", &x, "y", &y) > 0) > @@ -2735,7 +2745,7 @@ > Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); > Edje_Lua_Evas_Object *elo; > > - elo = (Edje_Lua_Evas_Object *)_elua_obj_new(L, ed, > sizeof(Edje_Lua_Evas_Object)); > + elo = (Edje_Lua_Evas_Object *)_elua_obj_new(L, ed, > sizeof(Edje_Lua_Evas_Object), _elua_evas_meta); > elo->obj.free_func = _elua_evas_obj_free; > elo->evas_obj = evas_object_rectangle_add(evas_object_evas_get(ed->obj)); > evas_object_smart_member_add(elo->evas_obj, ed->obj); > @@ -2752,7 +2762,7 @@ > Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); > Edje_Lua_Evas_Object *elo; > > - elo = (Edje_Lua_Evas_Object *)_elua_obj_new(L, ed, > sizeof(Edje_Lua_Evas_Object)); > + elo = (Edje_Lua_Evas_Object *)_elua_obj_new(L, ed, > sizeof(Edje_Lua_Evas_Object), _elua_evas_image_meta); > elo->obj.free_func = _elua_evas_obj_free; > elo->evas_obj = > evas_object_image_filled_add(evas_object_evas_get(ed->obj)); > evas_object_smart_member_add(elo->evas_obj, ed->obj); > @@ -2769,7 +2779,7 @@ > Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); > Edje_Lua_Evas_Object *elo; > > - elo = (Edje_Lua_Evas_Object *)_elua_obj_new(L, ed, > sizeof(Edje_Lua_Evas_Object)); > + elo = (Edje_Lua_Evas_Object *)_elua_obj_new(L, ed, > sizeof(Edje_Lua_Evas_Object), _elua_evas_text_meta); > elo->obj.free_func = _elua_evas_obj_free; > elo->evas_obj = evas_object_text_add(evas_object_evas_get(ed->obj)); > evas_object_smart_member_add(elo->evas_obj, ed->obj); > @@ -2787,7 +2797,7 @@ > Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); > Edje_Lua_Evas_Object *elo; > > - elo = (Edje_Lua_Evas_Object *)_elua_obj_new(L, ed, > sizeof(Edje_Lua_Evas_Object)); > + elo = (Edje_Lua_Evas_Object *)_elua_obj_new(L, ed, > sizeof(Edje_Lua_Evas_Object), _elua_evas_text_metablock); > elo->obj.free_func = _elua_evas_obj_free; > elo->evas_obj = evas_object_textblock_add(evas_object_evas_get(ed->obj)); > evas_object_smart_member_add(elo->evas_obj, ed->obj); > @@ -2805,7 +2815,7 @@ > Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); > Edje_Lua_Evas_Object *elo; > > - elo = (Edje_Lua_Evas_Object *)_elua_obj_new(L, ed, > sizeof(Edje_Lua_Evas_Object)); > + elo = (Edje_Lua_Evas_Object *)_elua_obj_new(L, ed, > sizeof(Edje_Lua_Evas_Object), _elua_evas_edje_meta); > elo->obj.free_func = _elua_evas_obj_free; > elo->evas_obj = edje_object_add(evas_object_evas_get(ed->obj)); > evas_object_smart_member_add(elo->evas_obj, ed->obj); > @@ -2822,7 +2832,7 @@ > Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); > Edje_Lua_Evas_Object *elo; > > - elo = (Edje_Lua_Evas_Object *)_elua_obj_new(L, ed, > sizeof(Edje_Lua_Evas_Object)); > + elo = (Edje_Lua_Evas_Object *)_elua_obj_new(L, ed, > sizeof(Edje_Lua_Evas_Object), _elua_evas_line_meta); > elo->obj.free_func = _elua_evas_obj_free; > elo->evas_obj = evas_object_line_add(evas_object_evas_get(ed->obj)); > evas_object_smart_member_add(elo->evas_obj, ed->obj); > @@ -2839,7 +2849,7 @@ > Edje *ed = (Edje *)_elua_table_ptr_get(L, _elua_key); > Edje_Lua_Evas_Object *elo; > > - elo = (Edje_Lua_Evas_Object *)_elua_obj_new(L, ed, > sizeof(Edje_Lua_Evas_Object)); > + elo = (Edje_Lua_Evas_Object *)_elua_obj_new(L, ed, > sizeof(Edje_Lua_Evas_Object), _elua_evas_polygon_meta); > elo->obj.free_func = _elua_evas_obj_free; > elo->evas_obj = evas_object_polygon_add(evas_object_evas_get(ed->obj)); > evas_object_smart_member_add(elo->evas_obj, ed->obj); > @@ -2868,7 +2878,7 @@ > > count = luaL_checkinteger(L, 1); > > - elm = (Edje_Lua_Map *)_elua_map_new(L, ed, sizeof(Edje_Lua_Map)); > + elm = (Edje_Lua_Map *)_elua_obj_new(L, ed, sizeof(Edje_Lua_Map), > _elua_evas_map_meta); > elm->obj.free_func = _elua_map_free; > elm->map = evas_map_new(count); > lua_pushvalue(L, 2); > @@ -2911,27 +2921,106 @@ > } > > > - luaL_register(L, "edje", _elua_edje_api); > - luaL_newmetatable(L, _elua_meta_edje); > - luaL_register(L, 0, _elua_edje_meta); > + luaL_register(L, _elua_edje_api, _elua_edje_funcs); > + luaL_newmetatable(L, _elua_edje_meta); > + luaL_register(L, 0, _elua_edje_gc_funcs); > > - luaL_register(L, "edje_evas_obj", _elua_edje_evas_obj); > - luaL_newmetatable(L, _elua_meta_evas); > - luaL_register(L, 0, _elua_edje_meta); > - > + luaL_register(L, _elua_evas_api, _elua_evas_funcs); > + luaL_newmetatable(L, _elua_evas_meta); > + luaL_register(L, 0, _elua_edje_gc_funcs); > lua_pushliteral(L, "__index"); > lua_pushvalue(L, -3); > lua_rawset(L, -3); > + > lua_pop(L, 2); > > - luaL_register(L, "evas_map_obj", _elua_evas_map_obj); > - luaL_newmetatable(L, _elua_meta_map); > - luaL_register(L, 0, _elua_edje_meta); > + luaL_register(L, _elua_evas_edje_api, _elua_evas_edje_funcs); > + luaL_newmetatable(L, _elua_evas_edje_meta); > + luaL_register(L, 0, _elua_edje_gc_funcs); > + lua_pushliteral(L, "__index"); > + lua_pushvalue(L, -3); > + lua_rawset(L, -3); > + // Inherit from _elua_evas_api > + lua_getglobal(L, _elua_evas_api); > + luaL_newmetatable(L, _elua_evas_edje_parent); > + lua_pushliteral(L, "__index"); > + lua_pushvalue(L, -3); > + lua_rawset(L, -3); > + lua_getglobal(L, _elua_evas_edje_api); > + luaL_getmetatable(L, _elua_evas_edje_parent); > + lua_setmetatable(L, -2); > > + luaL_register(L, _elua_evas_image_api, _elua_evas_image_funcs); > + luaL_newmetatable(L, _elua_evas_image_meta); > + luaL_register(L, 0, _elua_edje_gc_funcs); > lua_pushliteral(L, "__index"); > lua_pushvalue(L, -3); > lua_rawset(L, -3); > + // Inherit from _elua_evas_api > + lua_getglobal(L, _elua_evas_api); > + luaL_newmetatable(L, _elua_evas_image_parent); > + lua_pushliteral(L, "__index"); > + lua_pushvalue(L, -3); > + lua_rawset(L, -3); > + lua_getglobal(L, _elua_evas_image_api); > + luaL_getmetatable(L, _elua_evas_image_parent); > + lua_setmetatable(L, -2); > > + luaL_register(L, _elua_evas_line_api, _elua_evas_line_funcs); > + luaL_newmetatable(L, _elua_evas_line_meta); > + luaL_register(L, 0, _elua_edje_gc_funcs); > + lua_pushliteral(L, "__index"); > + lua_pushvalue(L, -3); > + lua_rawset(L, -3); > + // Inherit from _elua_evas_api > + lua_getglobal(L, _elua_evas_api); > + luaL_newmetatable(L, _elua_evas_line_parent); > + lua_pushliteral(L, "__index"); > + lua_pushvalue(L, -3); > + lua_rawset(L, -3); > + lua_getglobal(L, _elua_evas_line_api); > + luaL_getmetatable(L, _elua_evas_line_parent); > + lua_setmetatable(L, -2); > + > + luaL_register(L, _elua_evas_map_api, _elua_evas_map_funcs); > + luaL_newmetatable(L, _elua_evas_map_meta); > + luaL_register(L, 0, _elua_edje_gc_funcs); > + lua_pushliteral(L, "__index"); > + lua_pushvalue(L, -3); > + lua_rawset(L, -3); > + > + luaL_register(L, _elua_evas_polygon_api, _elua_evas_polygon_funcs); > + luaL_newmetatable(L, _elua_evas_polygon_meta); > + luaL_register(L, 0, _elua_edje_gc_funcs); > + lua_pushliteral(L, "__index"); > + lua_pushvalue(L, -3); > + lua_rawset(L, -3); > + // Inherit from _elua_evas_api > + lua_getglobal(L, _elua_evas_api); > + luaL_newmetatable(L, _elua_evas_polygon_parent); > + lua_pushliteral(L, "__index"); > + lua_pushvalue(L, -3); > + lua_rawset(L, -3); > + lua_getglobal(L, _elua_evas_polygon_api); > + luaL_getmetatable(L, _elua_evas_polygon_parent); > + lua_setmetatable(L, -2); > + > + luaL_register(L, _elua_evas_text_api, _elua_evas_text_funcs); > + luaL_newmetatable(L, _elua_evas_text_meta); > + luaL_register(L, 0, _elua_edje_gc_funcs); > + lua_pushliteral(L, "__index"); > + lua_pushvalue(L, -3); > + lua_rawset(L, -3); > + // Inherit from _elua_evas_api > + lua_getglobal(L, _elua_evas_api); > + luaL_newmetatable(L, _elua_evas_text_parent); > + lua_pushliteral(L, "__index"); > + lua_pushvalue(L, -3); > + lua_rawset(L, -3); > + lua_getglobal(L, _elua_evas_text_api); > + luaL_getmetatable(L, _elua_evas_text_parent); > + lua_setmetatable(L, -2); > + > // weak table for our objects > lua_pushlightuserdata(L, &_elua_objs); > lua_newtable(L); > > > ------------------------------------------------------------------------------ > RSA(R) Conference 2012 > Save $700 by Nov 18 > Register now > http://p.sf.net/sfu/rsa-sfdev2dev1 > _______________________________________________ > enlightenment-svn mailing list > enlightenment-...@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn
02:39 < Hawkwind> Just did a fresh checkout of E, and getting this error when using easy_e17.sh: http://pastebin.com/nfAyd5p6 I think that should have been EINA_TRUE and EINA_FALSE instead of TRUE and FALSE ------------------------------------------------------------------------------ RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel