jackdanielz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=8227a57c669c0f5b5397246d735aab9886a41b14
commit 8227a57c669c0f5b5397246d735aab9886a41b14 Author: Daniel Zaoui <[email protected]> Date: Mon Mar 17 15:52:41 2014 +0200 Eolian: Integration of Pan --- src/lib/Makefile.am | 10 ++- src/lib/elm_interface_scrollable.c | 144 ++++++++----------------------------- src/lib/elm_interface_scrollable.h | 4 ++ src/lib/elm_pan.eo | 72 +++++++++++++++++++ 4 files changed, 113 insertions(+), 117 deletions(-) diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am index bdb6973..6a8f353 100644 --- a/src/lib/Makefile.am +++ b/src/lib/Makefile.am @@ -531,17 +531,21 @@ BUILT_SOURCES = \ elm_layout.eo.c \ elm_layout.eo.h \ elm_interface_scrollable.eo.c \ - elm_interface_scrollable.eo.h + elm_interface_scrollable.eo.h \ + elm_pan.eo.c \ + elm_pan.eo.h EXTRA_DIST += \ elm_widget.eo \ elm_container.eo \ elm_layout.eo \ - elm_interface_scrollable.eo + elm_interface_scrollable.eo \ + elm_pan.eo nodist_includesunstable_HEADERS = \ elm_widget.eo.h \ elm_container.eo.h \ elm_layout.eo.h \ - elm_interface_scrollable.eo.h + elm_interface_scrollable.eo.h \ + elm_pan.eo.h diff --git a/src/lib/elm_interface_scrollable.c b/src/lib/elm_interface_scrollable.c index 586bc70..035935a 100644 --- a/src/lib/elm_interface_scrollable.c +++ b/src/lib/elm_interface_scrollable.c @@ -7,8 +7,6 @@ #include "elm_priv.h" #include "elm_interface_scrollable.h" -EAPI Eo_Op ELM_OBJ_PAN_BASE_ID = EO_NOOP; - #define MY_PAN_CLASS ELM_OBJ_PAN_CLASS #define MY_PAN_CLASS_NAME "Elm_Pan" @@ -83,44 +81,34 @@ _elm_pan_update(Elm_Pan_Smart_Data *psd) psd->py = psd->delta_posy * psd->gravity_y; } -static void -_elm_pan_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_pan_evas_smart_add(Eo *obj, Elm_Pan_Smart_Data *priv) { - Elm_Pan_Smart_Data *priv = _pd; - eo_do_super(obj, MY_PAN_CLASS, evas_obj_smart_add()); priv->self = obj; } -static void -_elm_pan_smart_del(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_pan_evas_smart_del(Eo *obj, Elm_Pan_Smart_Data *_pd EINA_UNUSED) { _elm_pan_content_set(obj, NULL); eo_do_super(obj, MY_PAN_CLASS, evas_obj_smart_del()); } -static void -_elm_pan_smart_move(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_pan_evas_smart_move(Eo *obj EINA_UNUSED, Elm_Pan_Smart_Data *psd, Evas_Coord x, Evas_Coord y) { - Evas_Coord x = va_arg(*list, Evas_Coord); - Evas_Coord y = va_arg(*list, Evas_Coord); - Elm_Pan_Smart_Data *psd = _pd; - psd->x = x; psd->y = y; _elm_pan_update(psd); } -static void -_elm_pan_smart_resize(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_pan_evas_smart_resize(Eo *obj EINA_UNUSED, Elm_Pan_Smart_Data *psd, Evas_Coord w, Evas_Coord h) { - Elm_Pan_Smart_Data *psd = _pd; - Evas_Coord w = va_arg(*list, Evas_Coord); - Evas_Coord h = va_arg(*list, Evas_Coord); - psd->w = w; psd->h = h; @@ -128,35 +116,27 @@ _elm_pan_smart_resize(Eo *obj EINA_UNUSED, void *_pd, va_list *list) evas_object_smart_callback_call(psd->self, SIG_CHANGED, NULL); } -static void -_elm_pan_smart_show(Eo *obj, void *_pd, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_pan_evas_smart_show(Eo *obj, Elm_Pan_Smart_Data *psd) { - Elm_Pan_Smart_Data *psd = _pd; - eo_do_super(obj, MY_PAN_CLASS, evas_obj_smart_show()); if (psd->content) evas_object_show(psd->content); } -static void -_elm_pan_smart_hide(Eo *obj, void *_pd, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_pan_evas_smart_hide(Eo *obj, Elm_Pan_Smart_Data *psd) { - Elm_Pan_Smart_Data *psd = _pd; - eo_do_super(obj, MY_PAN_CLASS, evas_obj_smart_hide()); if (psd->content) evas_object_hide(psd->content); } -static void -_elm_pan_pos_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_pan_pos_set(Eo *obj EINA_UNUSED, Elm_Pan_Smart_Data *psd, Evas_Coord x, Evas_Coord y) { - Elm_Pan_Smart_Data *psd = _pd; - Evas_Coord x = va_arg(*list, Evas_Coord); - Evas_Coord y = va_arg(*list, Evas_Coord); - if ((x == psd->px) && (y == psd->py)) return; psd->px = x; psd->py = y; @@ -165,24 +145,16 @@ _elm_pan_pos_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) evas_object_smart_callback_call(psd->self, SIG_CHANGED, NULL); } -static void -_elm_pan_pos_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_pan_pos_get(Eo *obj EINA_UNUSED, Elm_Pan_Smart_Data *psd, Evas_Coord *x, Evas_Coord *y) { - Elm_Pan_Smart_Data *psd = _pd; - Evas_Coord *x = va_arg(*list, Evas_Coord *); - Evas_Coord *y = va_arg(*list, Evas_Coord *); - if (x) *x = psd->px; if (y) *y = psd->py; } -static void -_elm_pan_pos_max_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_pan_pos_max_get(Eo *obj EINA_UNUSED, Elm_Pan_Smart_Data *psd, Evas_Coord *x, Evas_Coord *y) { - Elm_Pan_Smart_Data *psd = _pd; - Evas_Coord *x = va_arg(*list, Evas_Coord *); - Evas_Coord *y = va_arg(*list, Evas_Coord *); - if (x) { if (psd->w < psd->content_w) *x = psd->content_w - psd->w; @@ -195,35 +167,25 @@ _elm_pan_pos_max_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) } } -static void -_elm_pan_pos_min_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static void +_elm_pan_pos_min_get(Eo *obj EINA_UNUSED, Elm_Pan_Smart_Data *_pd EINA_UNUSED, Evas_Coord *x, Evas_Coord *y) { - Evas_Coord *x = va_arg(*list, Evas_Coord *); - Evas_Coord *y = va_arg(*list, Evas_Coord *); if (x) *x = 0; if (y) *y = 0; } -static void -_elm_pan_content_size_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_pan_content_size_get(Eo *obj EINA_UNUSED, Elm_Pan_Smart_Data *psd, Evas_Coord *w, Evas_Coord *h) { - Elm_Pan_Smart_Data *psd = _pd; - Evas_Coord *w = va_arg(*list, Evas_Coord *); - Evas_Coord *h = va_arg(*list, Evas_Coord *); - if (w) *w = psd->content_w; if (h) *h = psd->content_h; } -static void -_elm_pan_gravity_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_pan_gravity_set(Eo *obj EINA_UNUSED, Elm_Pan_Smart_Data *psd, double x, double y) { - Elm_Pan_Smart_Data *psd = _pd; - - double x = va_arg(*list, double); - double y = va_arg(*list, double); psd->gravity_x = x; psd->gravity_y = y; psd->prev_cw = psd->content_w; @@ -232,13 +194,9 @@ _elm_pan_gravity_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) psd->delta_posy = 0; } -static void -_elm_pan_gravity_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_pan_gravity_get(Eo *obj EINA_UNUSED, Elm_Pan_Smart_Data *psd, double *x, double *y) { - Elm_Pan_Smart_Data *psd = _pd; - double *x = va_arg(*list, double *); - double *y = va_arg(*list, double *); - if (x) *x = psd->gravity_x; if (y) *y = psd->gravity_y; } @@ -251,8 +209,8 @@ _elm_pan_add(Evas *evas) return obj; } -static void -_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_pan_constructor(Eo *obj, Elm_Pan_Smart_Data *_pd EINA_UNUSED) { eo_do_super(obj, MY_PAN_CLASS, eo_constructor()); eo_do(obj, @@ -337,55 +295,12 @@ end: evas_object_smart_callback_call(psd->self, SIG_CHANGED, NULL); } -static void +EOLIAN static void _elm_pan_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_pan_smart_add), - EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), _elm_pan_smart_del), - EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_RESIZE), _elm_pan_smart_resize), - EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_MOVE), _elm_pan_smart_move), - EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_SHOW), _elm_pan_smart_show), - EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_HIDE), _elm_pan_smart_hide), - EO_OP_FUNC(ELM_OBJ_PAN_ID(ELM_OBJ_PAN_SUB_ID_POS_SET), _elm_pan_pos_set), - EO_OP_FUNC(ELM_OBJ_PAN_ID(ELM_OBJ_PAN_SUB_ID_POS_GET), _elm_pan_pos_get), - EO_OP_FUNC(ELM_OBJ_PAN_ID(ELM_OBJ_PAN_SUB_ID_POS_MAX_GET), _elm_pan_pos_max_get), - EO_OP_FUNC(ELM_OBJ_PAN_ID(ELM_OBJ_PAN_SUB_ID_POS_MIN_GET), _elm_pan_pos_min_get), - EO_OP_FUNC(ELM_OBJ_PAN_ID(ELM_OBJ_PAN_SUB_ID_CONTENT_SIZE_GET), _elm_pan_content_size_get), - EO_OP_FUNC(ELM_OBJ_PAN_ID(ELM_OBJ_PAN_SUB_ID_GRAVITY_SET), _elm_pan_gravity_set), - EO_OP_FUNC(ELM_OBJ_PAN_ID(ELM_OBJ_PAN_SUB_ID_GRAVITY_GET), _elm_pan_gravity_get), - EO_OP_FUNC_SENTINEL - }; - eo_class_funcs_set(klass, func_desc); - evas_smart_legacy_type_register(MY_PAN_CLASS_NAME_LEGACY, klass); } -static const Eo_Op_Description _elm_pan_op_desc[] = { - EO_OP_DESCRIPTION(ELM_OBJ_PAN_SUB_ID_POS_SET, "description here"), - EO_OP_DESCRIPTION(ELM_OBJ_PAN_SUB_ID_POS_GET, "description here"), - EO_OP_DESCRIPTION(ELM_OBJ_PAN_SUB_ID_POS_MAX_GET, "description here"), - EO_OP_DESCRIPTION(ELM_OBJ_PAN_SUB_ID_POS_MIN_GET, "description here"), - EO_OP_DESCRIPTION(ELM_OBJ_PAN_SUB_ID_CONTENT_SIZE_GET, "description here"), - EO_OP_DESCRIPTION(ELM_OBJ_PAN_SUB_ID_GRAVITY_SET, "description here"), - EO_OP_DESCRIPTION(ELM_OBJ_PAN_SUB_ID_GRAVITY_GET, "description here"), - EO_OP_DESCRIPTION_SENTINEL -}; - -static const Eo_Class_Description _elm_pan_class_desc = { - EO_VERSION, - MY_PAN_CLASS_NAME, - EO_CLASS_TYPE_REGULAR, - EO_CLASS_DESCRIPTION_OPS(&ELM_OBJ_PAN_BASE_ID, _elm_pan_op_desc, ELM_OBJ_PAN_SUB_ID_LAST), - NULL, - sizeof(Elm_Pan_Smart_Data), - _elm_pan_class_constructor, - NULL -}; - -EO_DEFINE_CLASS(elm_obj_pan_eo_class_get, &_elm_pan_class_desc, EVAS_OBJ_SMART_CLIPPED_CLASS, NULL); - /* pan smart object on top, scroller interface on bottom */ /* ============================================================ */ @@ -4425,3 +4340,4 @@ _elm_interface_scrollable_class_constructor(Eo_Class *klass) } #include "elm_interface_scrollable.eo.c" +#include "elm_pan.eo.c" diff --git a/src/lib/elm_interface_scrollable.h b/src/lib/elm_interface_scrollable.h index 5e3709a..2666ebe 100644 --- a/src/lib/elm_interface_scrollable.h +++ b/src/lib/elm_interface_scrollable.h @@ -31,6 +31,9 @@ * Elm_Scrollable_Smart_Interface::extern_pan_set. */ +#include "elm_pan.eo.h" + +#if 0 #define ELM_OBJ_PAN_CLASS elm_obj_pan_eo_class_get() const Eo_Class *elm_obj_pan_eo_class_get(void) EINA_CONST; @@ -140,6 +143,7 @@ enum * @see elm_pan_gravity_get */ #define elm_obj_pan_gravity_get(x, y) ELM_OBJ_PAN_ID(ELM_OBJ_PAN_SUB_ID_GRAVITY_GET), EO_TYPECHECK(double *, x), EO_TYPECHECK(double *, y) +#endif #include "elm_interface_scrollable.eo.h" diff --git a/src/lib/elm_pan.eo b/src/lib/elm_pan.eo new file mode 100644 index 0000000..f530d78 --- /dev/null +++ b/src/lib/elm_pan.eo @@ -0,0 +1,72 @@ +class Elm_Pan (Evas_Smart_Clipped) +{ + eo_prefix: elm_obj_pan; + data: Elm_Pan_Smart_Data; + properties { + gravity { + set { + /*@ No description supplied by the EAPI. */ + } + get { + /*@ No description supplied by the EAPI. */ + } + values { + double x; + double y; + } + } + pos { + set { + /*@ No description supplied by the EAPI. */ + } + get { + /*@ No description supplied by the EAPI. */ + } + values { + Evas_Coord x; + Evas_Coord y; + } + } + content_size { + get { + /*@ No description supplied by the EAPI. */ + } + values { + Evas_Coord w; + Evas_Coord h; + } + } + pos_min { + get { + /*@ No description supplied by the EAPI. */ + } + values { + Evas_Coord x; + Evas_Coord y; + } + } + pos_max { + get { + /*@ No description supplied by the EAPI. */ + } + values { + Evas_Coord x; + Evas_Coord y; + } + } + } + implements { + Eo_Base::constructor; + class::constructor; + Evas_Smart::hide; + Evas_Smart::show; + Evas_Smart::move; + Evas_Smart::add; + Evas_Smart::del; + Evas_Smart::resize; + } + events { + changed; + } + +} --
