jackdanielz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=35d3b709029951555f11048e11586bd7985beb6d
commit 35d3b709029951555f11048e11586bd7985beb6d Author: Daniel Zaoui <daniel.za...@samsung.com> Date: Tue Mar 25 08:15:53 2014 +0200 Eolian: Integration of MapBuf --- src/lib/Makefile.am | 10 +- src/lib/elm_mapbuf.c | 365 +++++++++----------------------------------- src/lib/elm_mapbuf.eo | 194 +++++++++++++++++++++++ src/lib/elm_mapbuf_eo.h | 4 + src/lib/elm_widget_mapbuf.h | 6 +- 5 files changed, 284 insertions(+), 295 deletions(-) diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am index cb66d4c..24844c4 100644 --- a/src/lib/Makefile.am +++ b/src/lib/Makefile.am @@ -612,7 +612,9 @@ BUILT_SOURCES = \ elm_menu.eo.c \ elm_menu.eo.h \ elm_panel.eo.c \ - elm_panel.eo.h + elm_panel.eo.h \ + elm_mapbuf.eo.c \ + elm_mapbuf.eo.h EXTRA_DIST += \ elm_widget.eo \ @@ -658,7 +660,8 @@ EXTRA_DIST += \ elm_map_pan.eo \ elm_map.eo \ elm_menu.eo \ - elm_panel.eo + elm_panel.eo \ + elm_mapbuf.eo nodist_includesunstable_HEADERS = \ elm_widget.eo.h \ @@ -704,5 +707,6 @@ nodist_includesunstable_HEADERS = \ elm_map_pan.eo.h \ elm_map.eo.h \ elm_menu.eo.h \ - elm_panel.eo.h + elm_panel.eo.h \ + elm_mapbuf.eo.h diff --git a/src/lib/elm_mapbuf.c b/src/lib/elm_mapbuf.c index 7c6eb35..d041eb2 100644 --- a/src/lib/elm_mapbuf.c +++ b/src/lib/elm_mapbuf.c @@ -8,8 +8,6 @@ #include "elm_widget_mapbuf.h" #include "elm_widget_container.h" -EAPI Eo_Op ELM_OBJ_MAPBUF_BASE_ID = EO_NOOP; - #define MY_CLASS ELM_OBJ_MAPBUF_CLASS #define MY_CLASS_NAME "Elm_Mapbuf" @@ -31,19 +29,16 @@ _sizing_eval(Evas_Object *obj) evas_object_size_hint_max_set(obj, maxw, maxh); } -static void -_elm_mapbuf_smart_theme(Eo *obj, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static Eina_Bool +_elm_mapbuf_elm_widget_theme_apply(Eo *obj, Elm_Mapbuf_Data *sd EINA_UNUSED) { - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - if (ret) *ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE; - eo_do_super(obj, MY_CLASS, elm_obj_widget_theme_apply(&int_ret)); - if (!int_ret) return; + if (!int_ret) return EINA_FALSE; _sizing_eval(obj); - if (ret) *ret = EINA_TRUE; + return EINA_TRUE; } static void @@ -56,7 +51,7 @@ _changed_size_hints_cb(void *data, } static void -_elm_mapbuf_content_unset(Elm_Mapbuf_Smart_Data *sd, Evas_Object *obj, +_elm_mapbuf_content_unset(Elm_Mapbuf_Data *sd, Evas_Object *obj, Evas_Object *content) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); @@ -73,21 +68,16 @@ _elm_mapbuf_content_unset(Elm_Mapbuf_Smart_Data *sd, Evas_Object *obj, ELM_SAFE_FREE(sd->idler, ecore_idler_del); } -static void -_elm_mapbuf_smart_sub_object_del(Eo *obj, void *_pd, va_list *list) +EOLIAN static Eina_Bool +_elm_mapbuf_elm_widget_sub_object_del(Eo *obj, Elm_Mapbuf_Data *sd, Evas_Object *sobj) { - Elm_Mapbuf_Smart_Data *sd = _pd; - Evas_Object *sobj = va_arg(*list, Evas_Object *); - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - if (ret) *ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE; - eo_do_super(obj, MY_CLASS, elm_obj_widget_sub_object_del(sobj, &int_ret)); - if (!int_ret) return; + if (!int_ret) return EINA_FALSE; if (sobj == sd->content) _elm_mapbuf_content_unset(sd, (Evas_Object *)obj, sobj); - if (ret) *ret = EINA_TRUE; + return EINA_TRUE; } static void @@ -124,7 +114,7 @@ _configure(Evas_Object *obj) } static void -_mapbuf_auto_eval(Evas_Object *obj, Elm_Mapbuf_Smart_Data *sd) +_mapbuf_auto_eval(Evas_Object *obj, Elm_Mapbuf_Data *sd) { Eina_Bool vis; Evas_Coord x, y, w, h; @@ -143,7 +133,7 @@ _mapbuf_auto_eval(Evas_Object *obj, Elm_Mapbuf_Smart_Data *sd) static Eina_Bool _mapbuf_move_end(void *data) { - Elm_Mapbuf_Smart_Data *sd = data; + Elm_Mapbuf_Data *sd = data; elm_mapbuf_smooth_set(sd->self, sd->smooth_saved); sd->idler = NULL; @@ -152,72 +142,58 @@ _mapbuf_move_end(void *data) } static void -_mapbuf_auto_smooth(Evas_Object *obj EINA_UNUSED, Elm_Mapbuf_Smart_Data *sd) +_mapbuf_auto_smooth(Evas_Object *obj EINA_UNUSED, Elm_Mapbuf_Data *sd) { if (!sd->automode) return ; if (!sd->idler) sd->idler = ecore_idler_add(_mapbuf_move_end, sd); sd->smooth = EINA_FALSE; } -static void -_elm_mapbuf_smart_move(Eo *obj, void *_pd, va_list *list) +EOLIAN static void +_elm_mapbuf_evas_smart_move(Eo *obj, Elm_Mapbuf_Data *sd, Evas_Coord x, Evas_Coord y) { - Evas_Coord x = va_arg(*list, Evas_Coord); - Evas_Coord y = va_arg(*list, Evas_Coord); eo_do_super(obj, MY_CLASS, evas_obj_smart_move(x, y)); - _mapbuf_auto_eval(obj, _pd); - _mapbuf_auto_smooth(obj, _pd); + _mapbuf_auto_eval(obj, sd); + _mapbuf_auto_smooth(obj, sd); _configure(obj); } -static void -_elm_mapbuf_smart_resize(Eo *obj, void *_pd, va_list *list) +EOLIAN static void +_elm_mapbuf_evas_smart_resize(Eo *obj, Elm_Mapbuf_Data *sd, Evas_Coord w, Evas_Coord h) { - Evas_Coord w = va_arg(*list, Evas_Coord); - Evas_Coord h = va_arg(*list, Evas_Coord); eo_do_super(obj, MY_CLASS, evas_obj_smart_resize(w, h)); - ELM_MAPBUF_DATA_GET(obj, sd); if (sd->content) evas_object_resize(sd->content, w, h); - _mapbuf_auto_eval(obj, _pd); + _mapbuf_auto_eval(obj, sd); _configure(obj); } -static void -_elm_mapbuf_smart_show(Eo *obj, void *_pd, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_mapbuf_evas_smart_show(Eo *obj, Elm_Mapbuf_Data *sd) { eo_do_super(obj, MY_CLASS, evas_obj_smart_show()); - _mapbuf_auto_eval(obj, _pd); + _mapbuf_auto_eval(obj, sd); _configure(obj); } -static void -_elm_mapbuf_smart_hide(Eo *obj, void *_pd, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_mapbuf_evas_smart_hide(Eo *obj, Elm_Mapbuf_Data *sd) { eo_do_super(obj, MY_CLASS, evas_obj_smart_hide()); - _mapbuf_auto_eval(obj, _pd); + _mapbuf_auto_eval(obj, sd); _configure(obj); } -static void -_elm_mapbuf_smart_content_set(Eo *obj, void *_pd, va_list *list) +EOLIAN static Eina_Bool +_elm_mapbuf_elm_container_content_set(Eo *obj, Elm_Mapbuf_Data *sd, const char *part, Evas_Object *content) { - Elm_Mapbuf_Smart_Data *sd = _pd; - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - const char *part = va_arg(*list, const char *); - Evas_Object *content = va_arg(*list, Evas_Object *); - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - if (ret) *ret = EINA_FALSE; + ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); - if (part && strcmp(part, "default")) return; - if (sd->content == content) - { - if (ret) *ret = EINA_TRUE; - return; - } + if (part && strcmp(part, "default")) return EINA_FALSE; + if (sd->content == content) return EINA_TRUE; evas_object_del(sd->content); sd->content = content; @@ -240,55 +216,41 @@ _elm_mapbuf_smart_content_set(Eo *obj, void *_pd, va_list *list) _sizing_eval(obj); _configure(obj); - if (ret) *ret = EINA_TRUE; + return EINA_TRUE; } -static void -_elm_mapbuf_smart_content_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static Evas_Object* +_elm_mapbuf_elm_container_content_get(Eo *obj EINA_UNUSED, Elm_Mapbuf_Data *sd, const char *part) { - Elm_Mapbuf_Smart_Data *sd = _pd; - const char *part = va_arg(*list, const char *); - Evas_Object **ret = va_arg(*list, Evas_Object **); - *ret = NULL; - - if (part && strcmp(part, "default")) return; - *ret = sd->content; + if (part && strcmp(part, "default")) return NULL; + return sd->content; } -static void -_elm_mapbuf_smart_content_unset(Eo *obj, void *_pd, va_list *list) +EOLIAN static Evas_Object* +_elm_mapbuf_elm_container_content_unset(Eo *obj, Elm_Mapbuf_Data *sd, const char *part) { Evas_Object *content; - const char *part = va_arg(*list, const char *); - Evas_Object **ret = va_arg(*list, Evas_Object **); - if (ret) *ret = NULL; - - Elm_Mapbuf_Smart_Data *sd = _pd; - - if (part && strcmp(part, "default")) return; - if (!sd->content) return; + if (part && strcmp(part, "default")) return NULL; + if (!sd->content) return NULL; content = sd->content; elm_widget_sub_object_del(obj, content); _elm_mapbuf_content_unset(sd, obj, content); - if (ret) *ret = content; + return content; } -static void -_elm_mapbuf_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_mapbuf_evas_smart_del(Eo *obj, Elm_Mapbuf_Data *priv) { - Elm_Mapbuf_Smart_Data *priv = _pd; - ELM_SAFE_FREE(priv->idler, ecore_idler_del); ELM_SAFE_FREE(priv->map, evas_map_free); eo_do_super(obj, MY_CLASS, evas_obj_smart_del()); } -static void -_elm_mapbuf_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_mapbuf_evas_smart_add(Eo *obj, Elm_Mapbuf_Data *priv) { - Elm_Mapbuf_Smart_Data *priv = _pd; Evas_Object *rect = evas_object_rectangle_add(evas_object_evas_get(obj)); int i; @@ -327,24 +289,16 @@ elm_mapbuf_add(Evas_Object *parent) return obj; } -static void -_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_mapbuf_eo_base_constructor(Eo *obj, Elm_Mapbuf_Data *sd EINA_UNUSED) { eo_do_super(obj, MY_CLASS, eo_constructor()); eo_do(obj, evas_obj_type_set(MY_CLASS_NAME_LEGACY)); } -EAPI void -elm_mapbuf_enabled_set(Evas_Object *obj, - Eina_Bool enabled) -{ - ELM_MAPBUF_CHECK(obj); - eo_do(obj, elm_obj_mapbuf_enabled_set(enabled)); -} - static void -_internal_enable_set(Eo *obj, Elm_Mapbuf_Smart_Data *sd, Eina_Bool enabled) +_internal_enable_set(Eo *obj, Elm_Mapbuf_Data *sd, Eina_Bool enabled) { if (sd->enabled == enabled) return; sd->enabled = enabled; @@ -359,119 +313,50 @@ _internal_enable_set(Eo *obj, Elm_Mapbuf_Smart_Data *sd, Eina_Bool enabled) _configure(obj); } -static void -_enabled_set(Eo *obj, void *_pd, va_list *list) +EOLIAN static void +_elm_mapbuf_enabled_set(Eo *obj, Elm_Mapbuf_Data *sd, Eina_Bool enabled) { - Eina_Bool enabled = va_arg(*list, int); - Elm_Mapbuf_Smart_Data *sd = _pd; - _internal_enable_set(obj, sd, enabled); } -EAPI Eina_Bool -elm_mapbuf_enabled_get(const Evas_Object *obj) +EOLIAN static Eina_Bool +_elm_mapbuf_enabled_get(Eo *obj EINA_UNUSED, Elm_Mapbuf_Data *sd) { - ELM_MAPBUF_CHECK(obj) EINA_FALSE; - Eina_Bool ret = EINA_FALSE; - eo_do((Eo *) obj, elm_obj_mapbuf_enabled_get(&ret)); - return ret; + return sd->enabled; } -static void -_enabled_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_mapbuf_smooth_set(Eo *obj, Elm_Mapbuf_Data *sd, Eina_Bool smooth) { - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - Elm_Mapbuf_Smart_Data *sd = _pd; - *ret = sd->enabled; -} - -EAPI void -elm_mapbuf_smooth_set(Evas_Object *obj, - Eina_Bool smooth) -{ - ELM_MAPBUF_CHECK(obj); - eo_do(obj, elm_obj_mapbuf_smooth_set(smooth)); -} - -static void -_smooth_set(Eo *obj, void *_pd, va_list *list) -{ - Eina_Bool smooth = va_arg(*list, int); - Elm_Mapbuf_Smart_Data *sd = _pd; - if (sd->smooth == smooth) return; sd->smooth = smooth; sd->smooth_saved = smooth; _configure(obj); } -EAPI Eina_Bool -elm_mapbuf_smooth_get(const Evas_Object *obj) +EOLIAN static Eina_Bool +_elm_mapbuf_smooth_get(Eo *obj EINA_UNUSED, Elm_Mapbuf_Data *sd) { - ELM_MAPBUF_CHECK(obj) EINA_FALSE; - Eina_Bool ret = EINA_FALSE; - eo_do((Eo *) obj, elm_obj_mapbuf_smooth_get(&ret)); - return ret; + return sd->smooth; } -static void -_smooth_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) -{ - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - Elm_Mapbuf_Smart_Data *sd = _pd; - *ret = sd->smooth; -} - -EAPI void -elm_mapbuf_alpha_set(Evas_Object *obj, - Eina_Bool alpha) -{ - ELM_MAPBUF_CHECK(obj); - eo_do(obj, elm_obj_mapbuf_alpha_set(alpha)); -} - -static void -_alpha_set(Eo *obj, void *_pd, va_list *list) +EOLIAN static void +_elm_mapbuf_alpha_set(Eo *obj, Elm_Mapbuf_Data *sd, Eina_Bool alpha) { - Eina_Bool alpha = va_arg(*list, int); - Elm_Mapbuf_Smart_Data *sd = _pd; - if (sd->alpha == alpha) return; sd->alpha = alpha; _configure(obj); } -EAPI Eina_Bool -elm_mapbuf_alpha_get(const Evas_Object *obj) -{ - ELM_MAPBUF_CHECK(obj) EINA_FALSE; - Eina_Bool ret = EINA_FALSE; - eo_do((Eo *) obj, elm_obj_mapbuf_alpha_get(&ret)); - return ret; -} - -static void -_alpha_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) -{ - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - Elm_Mapbuf_Smart_Data *sd = _pd; - *ret = sd->alpha; -} - -EAPI void -elm_mapbuf_auto_set(Evas_Object *obj, - Eina_Bool on) +EOLIAN static Eina_Bool +_elm_mapbuf_alpha_get(Eo *obj EINA_UNUSED, Elm_Mapbuf_Data *sd) { - ELM_MAPBUF_CHECK(obj); - eo_do(obj, elm_obj_mapbuf_auto_set(on)); + return sd->alpha; } -static void -_auto_set(Eo *obj, void *_pd, va_list *list) +EOLIAN static void +_elm_mapbuf_auto_set(Eo *obj, Elm_Mapbuf_Data *sd, Eina_Bool on) { - Eina_Bool on = va_arg(*list, int); - Elm_Mapbuf_Smart_Data *sd = _pd; - if (sd->automode == on) return; sd->automode = on; if (on) @@ -482,39 +367,20 @@ _auto_set(Eo *obj, void *_pd, va_list *list) { ELM_SAFE_FREE(sd->idler, ecore_idler_del); - _internal_enable_set(obj, _pd, EINA_FALSE); + _internal_enable_set(obj, sd, EINA_FALSE); } _configure(obj); } -EAPI Eina_Bool -elm_mapbuf_auto_get(const Evas_Object *obj) +EOLIAN static Eina_Bool +_elm_mapbuf_auto_get(Eo *obj EINA_UNUSED, Elm_Mapbuf_Data *sd) { - ELM_MAPBUF_CHECK(obj) EINA_FALSE; - Eina_Bool ret = EINA_FALSE; - eo_do((Eo *) obj, elm_obj_mapbuf_auto_get(&ret)); - return ret; + return sd->automode; } -static void -_auto_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_mapbuf_point_color_get(Eo *obj EINA_UNUSED, Elm_Mapbuf_Data *sd, int idx, int *r, int *g, int *b, int *a) { - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - Elm_Mapbuf_Smart_Data *sd = _pd; - *ret = sd->automode; -} - -static void -_point_color_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) -{ - int idx = va_arg(*list, int); - int *r = va_arg(*list, int *); - int *g = va_arg(*list, int *); - int *b = va_arg(*list, int *); - int *a = va_arg(*list, int *); - - Elm_Mapbuf_Smart_Data *sd = _pd; - if ((idx < 0) || (idx >= 4)) { ERR("idx value should be 0 ~ 4"); @@ -526,26 +392,9 @@ _point_color_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) *a =sd->colors[idx].a; } -EAPI void -elm_mapbuf_point_color_get(Evas_Object *obj, int idx, - int *r, int *g, int *b, int *a) -{ - ELM_MAPBUF_CHECK(obj); - - eo_do(obj, elm_obj_mapbuf_point_color_get(idx, r, g, b, a)); -} - -static void -_point_color_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_mapbuf_point_color_set(Eo *obj EINA_UNUSED, Elm_Mapbuf_Data *sd, int idx, int r, int g, int b, int a) { - int idx = va_arg(*list, int); - int r = va_arg(*list, int); - int g = va_arg(*list, int); - int b = va_arg(*list, int); - int a = va_arg(*list, int); - - Elm_Mapbuf_Smart_Data *sd = _pd; - if ((idx < 0) || (idx >= 4)) { ERR("idx value should be 0 ~ 4"); @@ -559,72 +408,10 @@ _point_color_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) _configure(obj); } -EAPI void -elm_mapbuf_point_color_set(Evas_Object *obj, int idx, - int r, int g, int b, int a) -{ - ELM_MAPBUF_CHECK(obj); - - eo_do(obj, elm_obj_mapbuf_point_color_set(idx, r, g, b, a)); -} - static void -_class_constructor(Eo_Class *klass) -{ - const Eo_Op_Func_Description func_desc[] = { - EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), _constructor), - - EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_ADD), _elm_mapbuf_smart_add), - EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), _elm_mapbuf_smart_del), - EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_RESIZE), _elm_mapbuf_smart_resize), - EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_MOVE), _elm_mapbuf_smart_move), - EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_SHOW), _elm_mapbuf_smart_show), - EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_HIDE), _elm_mapbuf_smart_hide), - - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_THEME_APPLY), _elm_mapbuf_smart_theme), - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_SUB_OBJECT_DEL), _elm_mapbuf_smart_sub_object_del), - - EO_OP_FUNC(ELM_OBJ_CONTAINER_ID(ELM_OBJ_CONTAINER_SUB_ID_CONTENT_SET), _elm_mapbuf_smart_content_set), - EO_OP_FUNC(ELM_OBJ_CONTAINER_ID(ELM_OBJ_CONTAINER_SUB_ID_CONTENT_GET), _elm_mapbuf_smart_content_get), - EO_OP_FUNC(ELM_OBJ_CONTAINER_ID(ELM_OBJ_CONTAINER_SUB_ID_CONTENT_UNSET), _elm_mapbuf_smart_content_unset), - - EO_OP_FUNC(ELM_OBJ_MAPBUF_ID(ELM_OBJ_MAPBUF_SUB_ID_ENABLED_SET), _enabled_set), - EO_OP_FUNC(ELM_OBJ_MAPBUF_ID(ELM_OBJ_MAPBUF_SUB_ID_ENABLED_GET), _enabled_get), - EO_OP_FUNC(ELM_OBJ_MAPBUF_ID(ELM_OBJ_MAPBUF_SUB_ID_SMOOTH_SET), _smooth_set), - EO_OP_FUNC(ELM_OBJ_MAPBUF_ID(ELM_OBJ_MAPBUF_SUB_ID_SMOOTH_GET), _smooth_get), - EO_OP_FUNC(ELM_OBJ_MAPBUF_ID(ELM_OBJ_MAPBUF_SUB_ID_ALPHA_SET), _alpha_set), - EO_OP_FUNC(ELM_OBJ_MAPBUF_ID(ELM_OBJ_MAPBUF_SUB_ID_ALPHA_GET), _alpha_get), - EO_OP_FUNC(ELM_OBJ_MAPBUF_ID(ELM_OBJ_MAPBUF_SUB_ID_AUTO_SET), _auto_set), - EO_OP_FUNC(ELM_OBJ_MAPBUF_ID(ELM_OBJ_MAPBUF_SUB_ID_AUTO_GET), _auto_get), - EO_OP_FUNC(ELM_OBJ_MAPBUF_ID(ELM_OBJ_MAPBUF_SUB_ID_POINT_COLOR_SET), _point_color_set), - EO_OP_FUNC(ELM_OBJ_MAPBUF_ID(ELM_OBJ_MAPBUF_SUB_ID_POINT_COLOR_GET), _point_color_get), - EO_OP_FUNC_SENTINEL - }; - eo_class_funcs_set(klass, func_desc); - +_elm_mapbuf_class_constructor(Eo_Class *klass) +{ evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass); } -static const Eo_Op_Description op_desc[] = { - EO_OP_DESCRIPTION(ELM_OBJ_MAPBUF_SUB_ID_ENABLED_SET, "Enable or disable the map."), - EO_OP_DESCRIPTION(ELM_OBJ_MAPBUF_SUB_ID_ENABLED_GET, "Get a value whether map is enabled or not."), - EO_OP_DESCRIPTION(ELM_OBJ_MAPBUF_SUB_ID_SMOOTH_SET, "Enable or disable smooth map rendering."), - EO_OP_DESCRIPTION(ELM_OBJ_MAPBUF_SUB_ID_SMOOTH_GET, "Get a value whether smooth map rendering is enabled or not."), - EO_OP_DESCRIPTION(ELM_OBJ_MAPBUF_SUB_ID_ALPHA_SET, "Set or unset alpha flag for map rendering."), - EO_OP_DESCRIPTION(ELM_OBJ_MAPBUF_SUB_ID_ALPHA_GET, "Get a value whether alpha blending is enabled or not."), - EO_OP_DESCRIPTION(ELM_OBJ_MAPBUF_SUB_ID_AUTO_SET, "Turn map on or off automatically based on object visibility."), - EO_OP_DESCRIPTION(ELM_OBJ_MAPBUF_SUB_ID_AUTO_GET, "Get automatic mode state."), - EO_OP_DESCRIPTION(ELM_OBJ_MAPBUF_SUB_ID_POINT_COLOR_SET, "Set a vertex color of the mapbuf"), - EO_OP_DESCRIPTION(ELM_OBJ_MAPBUF_SUB_ID_POINT_COLOR_GET, "Get a vertex color of the mapbuf"), - EO_OP_DESCRIPTION_SENTINEL -}; -static const Eo_Class_Description class_desc = { - EO_VERSION, - MY_CLASS_NAME, - EO_CLASS_TYPE_REGULAR, - EO_CLASS_DESCRIPTION_OPS(&ELM_OBJ_MAPBUF_BASE_ID, op_desc, ELM_OBJ_MAPBUF_SUB_ID_LAST), - NULL, - sizeof(Elm_Mapbuf_Smart_Data), - _class_constructor, - NULL -}; -EO_DEFINE_CLASS(elm_obj_mapbuf_class_get, &class_desc, ELM_OBJ_CONTAINER_CLASS, NULL); + +#include "elm_mapbuf.eo.c" diff --git a/src/lib/elm_mapbuf.eo b/src/lib/elm_mapbuf.eo new file mode 100644 index 0000000..37ba8b1 --- /dev/null +++ b/src/lib/elm_mapbuf.eo @@ -0,0 +1,194 @@ +class Elm_Mapbuf (Elm_Container) +{ + eo_prefix: elm_obj_mapbuf; + properties { + auto { + set { + /*@ + Set or unset auto flag for map rendering. + + When a ampbuf object has "auto mode" enabled, then it will enable and + disable map mode based on current visibility. Mapbuf will track if you show + or hide it AND if the object is inside the canvas viewport or not when it + is moved or resized. Note that if you turn automode off, then map mode + will be in a disabled state at this point. When you turn it on for the + first time, the current state will be evaluated base on current properties + of the mapbuf object. + + Auto mode is disabled by default. + + @ingroup Mapbuf */ + } + get { + /*@ + Get a value whether auto mode is enabled or not. + + @return @c EINA_TRUE means autso mode is enabled. @c EINA_FALSE + indicates it's disabled. If @p obj is @c NULL, @c EINA_FALSE is returned. + + @see elm_mapbuf_auto_set() for details. + + @ingroup Mapbuf */ + } + values { + Eina_Bool on; /*@ @c EINA_TRUE to enable auto mode or @c EINA_FALSE + to disable it. */ + } + } + smooth { + set { + /*@ + Enable or disable smooth map rendering. + + This sets smoothing for map rendering. If the object is a type that has + its own smoothing settings, then both the smooth settings for this object + and the map must be turned off. + + By default smooth maps are enabled. + + @ingroup Mapbuf */ + } + get { + /*@ + Get a value whether smooth map rendering is enabled or not. + + @return @c EINA_TRUE means smooth map rendering is enabled. @c EINA_FALSE + indicates it's disabled. If @p obj is @c NULL, @c EINA_FALSE is returned. + + @see elm_mapbuf_smooth_set() for details. + + @ingroup Mapbuf */ + } + values { + Eina_Bool smooth; /*@ @c EINA_TRUE to enable smooth map rendering or @c EINA_FALSE + to disable it. */ + } + } + alpha { + set { + /*@ + Set or unset alpha flag for map rendering. + + This sets alpha flag for map rendering. If the object is a type that has + its own alpha settings, then this will take precedence. Only image objects + have this currently. It stops alpha blending of the map area, and is + useful if you know the object and/or all sub-objects is 100% solid. + + Alpha is enabled by default. + + @ingroup Mapbuf */ + } + get { + /*@ + Get a value whether alpha blending is enabled or not. + + @return @c EINA_TRUE means alpha blending is enabled. @c EINA_FALSE + indicates it's disabled. If @p obj is @c NULL, @c EINA_FALSE is returned. + + @see elm_mapbuf_alpha_set() for details. + + @ingroup Mapbuf */ + } + values { + Eina_Bool alpha; /*@ @c EINA_TRUE to enable alpha blending or @c EINA_FALSE + to disable it. */ + } + } + enabled { + set { + /*@ + Enable or disable the map. + + This enables the map that is set or disables it. On enable, the object + geometry will be saved, and the new geometry will change (position and + size) to reflect the map geometry set. + + Also, when enabled, alpha and smooth states will be used, so if the + content isn't solid, alpha should be enabled, for example, otherwise + a black rectangle will fill the content. + + When disabled, the stored map will be freed and geometry prior to + enabling the map will be restored. + + It's disabled by default. + + @see elm_mapbuf_alpha_set() + @see elm_mapbuf_smooth_set() + + @ingroup Mapbuf */ + } + get { + /*@ + Get a value whether map is enabled or not. + + @return @c EINA_TRUE means map is enabled. @c EINA_FALSE indicates + it's disabled. If @p obj is @c NULL, @c EINA_FALSE is returned. + + @see elm_mapbuf_enabled_set() for details. + + @ingroup Mapbuf */ + } + values { + Eina_Bool enabled; /*@ @c EINA_TRUE to enable map or @c EINA_FALSE to disable it. */ + } + } + } + methods { + point_color_set { + /*@ + Set the color of a vertex in the mapbuf + + This sets the color of the vertex in the mapbuf. Colors will be linearly + interpolated between vertex points through the mapbuf. Color will multiply + the "texture" pixels (like GL_MODULATE in OpenGL). The default color of + a vertex in a mapbuf is white solid (255, 255, 255, 255) which means it will + have no affect on modifying the texture pixels. + + @see evas_object_map_set() + @since 1.9 */ + + params { + @in int idx; /*@ index of point to change. Must be smaller than mapbuf size. */ + @in int r; /*@ red (0 - 255) */ + @in int g; /*@ green (0 - 255) */ + @in int b; /*@ blue (0 - 255) */ + @in int a; /*@ alpha (0 - 255) */ + } + } + point_color_get { + /*@ + Get the color set on a vertex in the mapbuf + + This gets the color set by elm_mapbuf_point_color_set() on the given vertex + of the mapbuf. + + @see elm_mapbuf_point_color_set() + + @since 1.9 */ + + params { + @in int idx; /*@ index of point get. Must be smaller than map size. */ + @out int r; /*@ pointer to red return */ + @out int g; /*@ pointer to green return */ + @out int b; /*@ pointer to blue return */ + @out int a; /*@ pointer to alpha return */ + } + } + } + implements { + class::constructor; + Eo_Base::constructor; + Evas_Smart::hide; + Evas_Smart::show; + Evas_Smart::move; + Evas_Smart::add; + Evas_Smart::del; + Evas_Smart::resize; + Elm_Widget::theme_apply; + Elm_Widget::sub_object_del; + Elm_Container::content_get; + Elm_Container::content_set; + Elm_Container::content_unset; + } + +} diff --git a/src/lib/elm_mapbuf_eo.h b/src/lib/elm_mapbuf_eo.h index b98ad86..e3ce4f6 100644 --- a/src/lib/elm_mapbuf_eo.h +++ b/src/lib/elm_mapbuf_eo.h @@ -3,6 +3,9 @@ * * @{ */ +#include "elm_mapbuf.eo.h" + +#if 0 #define ELM_OBJ_MAPBUF_CLASS elm_obj_mapbuf_class_get() const Eo_Class *elm_obj_mapbuf_class_get(void) EINA_CONST; @@ -154,6 +157,7 @@ enum * @see elm_mapbuf_point_color_get */ #define elm_obj_mapbuf_point_color_get(idx, r, g, b, a) ELM_OBJ_MAPBUF_ID(ELM_OBJ_MAPBUF_SUB_ID_POINT_COLOR_GET), EO_TYPECHECK(int, idx), EO_TYPECHECK(int *, r), EO_TYPECHECK(int *, g), EO_TYPECHECK(int *, b), EO_TYPECHECK(int *, a) +#endif /** * @} diff --git a/src/lib/elm_widget_mapbuf.h b/src/lib/elm_widget_mapbuf.h index f4adf22..429ff2b 100644 --- a/src/lib/elm_widget_mapbuf.h +++ b/src/lib/elm_widget_mapbuf.h @@ -17,8 +17,8 @@ /** * Base widget smart data extended with mapbuf instance data. */ -typedef struct _Elm_Mapbuf_Smart_Data Elm_Mapbuf_Smart_Data; -struct _Elm_Mapbuf_Smart_Data +typedef struct _Elm_Mapbuf_Data Elm_Mapbuf_Data; +struct _Elm_Mapbuf_Data { Evas_Object *self; Evas_Object *content; @@ -41,7 +41,7 @@ struct _Elm_Mapbuf_Smart_Data */ #define ELM_MAPBUF_DATA_GET(o, sd) \ - Elm_Mapbuf_Smart_Data * sd = eo_data_scope_get(o, ELM_OBJ_MAPBUF_CLASS) + Elm_Mapbuf_Data * sd = eo_data_scope_get(o, ELM_OBJ_MAPBUF_CLASS) #define ELM_MAPBUF_DATA_GET_OR_RETURN(o, ptr) \ ELM_MAPBUF_DATA_GET(o, ptr); \ --