From 679b4025173c8fc32b0ac966690653f86d8bff9e Mon Sep 17 00:00:00 2001 From: Daniel Zaoui Date: Wed, 26 Mar 2014 10:19:34 +0200 Subject: [PATCH] Eolian: Integration of Route --- legacy/elementary/src/lib/Makefile.am | 10 +- legacy/elementary/src/lib/elm_route.c | 127 +++---------------- legacy/elementary/src/lib/elm_route.eo | 52 ++++++++ legacy/elementary/src/lib/elm_route_eo.h | 5 + legacy/elementary/src/lib/elm_route_legacy.h | 6 +- legacy/elementary/src/lib/elm_widget_route.h | 6 +- 6 files changed, 88 insertions(+), 118 deletions(-) create mode 100644 legacy/elementary/src/lib/elm_route.eo diff --git a/legacy/elementary/src/lib/Makefile.am b/legacy/elementary/src/lib/Makefile.am index ab054e018b..25ba481667 100644 --- a/legacy/elementary/src/lib/Makefile.am +++ b/legacy/elementary/src/lib/Makefile.am @@ -636,7 +636,9 @@ BUILT_SOURCES = \ elm_progressbar.eo.c \ elm_progressbar.eo.h \ elm_radio.eo.c \ - elm_radio.eo.h + elm_radio.eo.h \ + elm_route.eo.c \ + elm_route.eo.h EXTRA_DIST += \ elm_widget.eo \ @@ -694,7 +696,8 @@ EXTRA_DIST += \ elc_popup.eo \ elm_prefs.eo \ elm_progressbar.eo \ - elm_radio.eo + elm_radio.eo \ + elm_route.eo nodist_includesunstable_HEADERS = \ elm_widget.eo.h \ @@ -752,5 +755,6 @@ nodist_includesunstable_HEADERS = \ elc_popup.eo.h \ elm_prefs.eo.h \ elm_progressbar.eo.h \ - elm_radio.eo.h + elm_radio.eo.h \ + elm_route.eo.h diff --git a/legacy/elementary/src/lib/elm_route.c b/legacy/elementary/src/lib/elm_route.c index 4371924d72..6aaf00dd10 100644 --- a/legacy/elementary/src/lib/elm_route.c +++ b/legacy/elementary/src/lib/elm_route.c @@ -7,8 +7,6 @@ #include "elm_priv.h" #include "elm_widget_route.h" -EAPI Eo_Op ELM_OBJ_ROUTE_BASE_ID = EO_NOOP; - #define MY_CLASS ELM_OBJ_ROUTE_CLASS #define MY_CLASS_NAME "Elm_Route" @@ -88,21 +86,18 @@ _move_resize_cb(void *data EINA_UNUSED, _sizing_eval(obj); } -static void -_elm_route_smart_theme(Eo *obj, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static Eina_Bool +_elm_route_elm_widget_theme_apply(Eo *obj, Elm_Route_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; //TODO _sizing_eval(obj); - if (ret) *ret = EINA_TRUE; + return EINA_TRUE; } #ifdef ELM_EMAP @@ -138,10 +133,9 @@ _update_lon_lat_min_max(Evas_Object *obj, #endif -static void -_elm_route_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_route_evas_smart_add(Eo *obj, Elm_Route_Data *priv) { - Elm_Route_Smart_Data *priv = _pd; eo_do_super(obj, MY_CLASS, evas_obj_smart_add()); elm_widget_sub_object_parent_add(obj); @@ -164,8 +158,8 @@ _elm_route_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED) _sizing_eval(obj); } -static void -_elm_route_smart_del(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_route_evas_smart_del(Eo *obj, Elm_Route_Data *_pd EINA_UNUSED) { _clear_route(obj); @@ -189,37 +183,17 @@ elm_route_add(Evas_Object *parent) return obj; } -static void -_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_route_eo_base_constructor(Eo *obj, Elm_Route_Data *_pd EINA_UNUSED) { eo_do_super(obj, MY_CLASS, eo_constructor()); eo_do(obj, evas_obj_type_set(MY_CLASS_NAME_LEGACY)); } -#ifdef ELM_EMAP -/** - * Set the emap object which describes the route - * - * @param obj The photo object - * @param emap the route - * - * @ingroup Route - */ -EAPI void -elm_route_emap_set(Evas_Object *obj, - EMap_Route *emap) +EOLIAN static void +_elm_route_emap_set(Eo *obj, Elm_Route_Data *sd, void *_emap) { - ELM_ROUTE_CHECK(obj); - eo_do(obj, elm_obj_route_emap_set(emap)); -} -#endif - -static void -_emap_set(Eo *obj, void *_pd, va_list *list) -{ - void *_emap = va_arg(*list, void *); - #ifdef ELM_EMAP EMap_Route *emap = _emap; @@ -227,8 +201,6 @@ _emap_set(Eo *obj, void *_pd, va_list *list) Evas_Object *o; Eina_List *l; - Elm_Route_Smart_Data *sd = _pd; - sd->emap = emap; _clear_route(obj); @@ -264,88 +236,29 @@ _emap_set(Eo *obj, void *_pd, va_list *list) _sizing_eval(obj); #else (void)obj; - (void)_pd; + (void)sd; (void)_emap; #endif } -EAPI void -elm_route_longitude_min_max_get(const Evas_Object *obj, - double *min, - double *max) +EOLIAN static void +_elm_route_longitude_min_max_get(Eo *obj EINA_UNUSED, Elm_Route_Data *sd, double *min, double *max) { - ELM_ROUTE_CHECK(obj); - eo_do((Eo *) obj, elm_obj_route_longitude_min_max_get(min, max)); -} - -static void -_longitude_min_max_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) -{ - double *min = va_arg(*list, double *); - double *max = va_arg(*list, double *); - - Elm_Route_Smart_Data *sd = _pd; - if (min) *min = sd->lon_min; if (max) *max = sd->lon_max; } -EAPI void -elm_route_latitude_min_max_get(const Evas_Object *obj, - double *min, - double *max) +EOLIAN static void +_elm_route_latitude_min_max_get(Eo *obj EINA_UNUSED, Elm_Route_Data *sd, double *min, double *max) { - ELM_ROUTE_CHECK(obj); - eo_do((Eo *) obj, elm_obj_route_latitude_min_max_get(min, max)); -} - -static void -_latitude_min_max_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) -{ - double *min = va_arg(*list, double *); - double *max = va_arg(*list, double *); - - Elm_Route_Smart_Data *sd = _pd; - if (min) *min = sd->lat_min; if (max) *max = sd->lat_max; } -static void -_class_constructor(Eo_Class *klass) +EOLIAN static void +_elm_route_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_route_smart_add), - EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), _elm_route_smart_del), - - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_THEME_APPLY), _elm_route_smart_theme), - EO_OP_FUNC(ELM_OBJ_ROUTE_ID(ELM_OBJ_ROUTE_SUB_ID_EMAP_SET), _emap_set), - EO_OP_FUNC(ELM_OBJ_ROUTE_ID(ELM_OBJ_ROUTE_SUB_ID_LONGITUDE_MIN_MAX_GET), _longitude_min_max_get), - EO_OP_FUNC(ELM_OBJ_ROUTE_ID(ELM_OBJ_ROUTE_SUB_ID_LATITUDE_MIN_MAX_GET), _latitude_min_max_get), - EO_OP_FUNC_SENTINEL - }; - eo_class_funcs_set(klass, func_desc); - evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass); } -static const Eo_Op_Description op_desc[] = { - EO_OP_DESCRIPTION(ELM_OBJ_ROUTE_SUB_ID_EMAP_SET, "Set the emap object which describes the route."), - EO_OP_DESCRIPTION(ELM_OBJ_ROUTE_SUB_ID_LONGITUDE_MIN_MAX_GET, "Get the minimum and maximum values along the longitude."), - EO_OP_DESCRIPTION(ELM_OBJ_ROUTE_SUB_ID_LATITUDE_MIN_MAX_GET, "Get the minimum and maximum values along the latitude."), - 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_ROUTE_BASE_ID, op_desc, ELM_OBJ_ROUTE_SUB_ID_LAST), - NULL, - sizeof(Elm_Route_Smart_Data), - _class_constructor, - NULL -}; - -EO_DEFINE_CLASS(elm_obj_route_class_get, &class_desc, ELM_OBJ_WIDGET_CLASS, NULL); +#include "elm_route.eo.c" diff --git a/legacy/elementary/src/lib/elm_route.eo b/legacy/elementary/src/lib/elm_route.eo new file mode 100644 index 0000000000..3f491faf28 --- /dev/null +++ b/legacy/elementary/src/lib/elm_route.eo @@ -0,0 +1,52 @@ +class Elm_Route (Elm_Widget) +{ + eo_prefix: elm_obj_route; + properties { + emap { + set { + /*@ No description supplied by the EAPI. */ + } + values { + void *emap; + } + } + longitude_min_max { + get { + /*@ + Get the minimum and maximum values along the longitude. + + @note If only one value is needed, the other pointer can be passed + as @c NULL. + + @ingroup Route */ + } + values { + double min; /*@ Pointer to store the minimum value. */ + double max; /*@ Pointer to store the maximum value. */ + } + } + latitude_min_max { + get { + /*@ + Get the minimum and maximum values along the latitude. + + @note If only one value is needed, the other pointer can be passed + as @c NULL. + + @ingroup Route */ + } + values { + double min; /*@ Pointer to store the minimum value. */ + double max; /*@ Pointer to store the maximum value. */ + } + } + } + implements { + class::constructor; + Eo_Base::constructor; + Evas_Smart::add; + Evas_Smart::del; + Elm_Widget::theme_apply; + } + +} diff --git a/legacy/elementary/src/lib/elm_route_eo.h b/legacy/elementary/src/lib/elm_route_eo.h index aa4cd3f214..c239070f82 100644 --- a/legacy/elementary/src/lib/elm_route_eo.h +++ b/legacy/elementary/src/lib/elm_route_eo.h @@ -1,3 +1,6 @@ +#include "elm_route.eo.h" + +#if 0 #define ELM_OBJ_ROUTE_CLASS elm_obj_route_class_get() const Eo_Class *elm_obj_route_class_get(void) EINA_CONST; @@ -58,3 +61,5 @@ enum * @ingroup Route */ #define elm_obj_route_latitude_min_max_get(min, max) ELM_OBJ_ROUTE_ID(ELM_OBJ_ROUTE_SUB_ID_LATITUDE_MIN_MAX_GET), EO_TYPECHECK(double *, min), EO_TYPECHECK(double *, max) +#endif + diff --git a/legacy/elementary/src/lib/elm_route_legacy.h b/legacy/elementary/src/lib/elm_route_legacy.h index 330552d73a..84212a065c 100644 --- a/legacy/elementary/src/lib/elm_route_legacy.h +++ b/legacy/elementary/src/lib/elm_route_legacy.h @@ -8,10 +8,6 @@ */ EAPI Evas_Object *elm_route_add(Evas_Object *parent); -#ifdef ELM_EMAP -EAPI void elm_route_emap_set(Evas_Object *obj, EMap_Route *emap); -#endif - #ifdef ELM_EMAP /** * emap set @@ -21,7 +17,7 @@ EAPI void elm_route_emap_set(Evas_Object *obj, EMap_Route *emap); * * @ingroup Route */ -EAPI void elm_route_emap_set(Evas_Object *obj, EMap_Route *emap); +EAPI void elm_route_emap_set(Evas_Object *obj, void *emap); #endif /** diff --git a/legacy/elementary/src/lib/elm_widget_route.h b/legacy/elementary/src/lib/elm_widget_route.h index 77eb32332f..c35f7e8f51 100644 --- a/legacy/elementary/src/lib/elm_widget_route.h +++ b/legacy/elementary/src/lib/elm_widget_route.h @@ -15,10 +15,10 @@ /** * Base widget smart data extended with route instance data. */ -typedef struct _Elm_Route_Smart_Data Elm_Route_Smart_Data; +typedef struct _Elm_Route_Data Elm_Route_Data; typedef struct Segment Segment; -struct _Elm_Route_Smart_Data +struct _Elm_Route_Data { #ifdef ELM_EMAP EMap_Route *emap; @@ -51,7 +51,7 @@ struct Segment */ #define ELM_ROUTE_DATA_GET(o, sd) \ - Elm_Route_Smart_Data * sd = eo_data_scope_get(o, ELM_OBJ_ROUTE_CLASS) + Elm_Route_Data * sd = eo_data_scope_get(o, ELM_OBJ_ROUTE_CLASS) #define ELM_ROUTE_DATA_GET_OR_RETURN(o, ptr) \ ELM_ROUTE_DATA_GET(o, ptr); \