jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=942cbbed733f4d997e0a175b9e0e2e055a1f75d4
commit 942cbbed733f4d997e0a175b9e0e2e055a1f75d4 Author: Jean-Philippe Andre <jp.an...@samsung.com> Date: Mon Sep 18 17:01:10 2017 +0900 edje: Use Eina.Size2D for group min & max size --- src/lib/edje/Edje_Legacy.h | 44 ++++++++++++++++++++++++++ src/lib/edje/edje_legacy.c | 18 +++++++++++ src/lib/edje/edje_private.h | 2 +- src/lib/edje/edje_util.c | 50 ++++++++++-------------------- src/lib/edje/efl_canvas_layout_group.eo | 10 +++--- src/lib/elementary/efl_ui_image.c | 22 +++++-------- src/lib/elementary/efl_ui_image_zoomable.c | 22 +++++-------- src/lib/elementary/efl_ui_layout.c | 16 +++++----- 8 files changed, 107 insertions(+), 77 deletions(-) diff --git a/src/lib/edje/Edje_Legacy.h b/src/lib/edje/Edje_Legacy.h index a1e2ae4742..28c69b6d77 100644 --- a/src/lib/edje/Edje_Legacy.h +++ b/src/lib/edje/Edje_Legacy.h @@ -2231,6 +2231,50 @@ EAPI void edje_object_transition_duration_factor_set(Evas_Object *obj, double sc EAPI double edje_object_transition_duration_factor_get(const Evas_Object *obj); /** + * @brief Gets the minimum size specified -- as an EDC property -- for a given + * Edje object + * + * This function retrieves the obj object's minimum size values, as declared in + * its EDC group definition. For instance, for an Edje object of minimum size + * 100x100 pixels: collections { group { name: "a_group"; min: 100 100; } } + * + * @note If the @c min EDC property was not declared for this object, this call + * will return 0x0. + * + * @note On failure, this function also return 0x0. + * + * See also @ref edje_object_size_max_get. + * + * @param[out] minw Pointer to a variable where to store the minimum width + * @param[out] minh Pointer to a variable where to store the minimum height + * + * @ingroup Edje_Object + */ +EAPI void edje_object_size_min_get(const Edje_Object *obj, int *minw, int *minh); + +/** + * @brief Gets the maximum size specified -- as an EDC property -- for a given + * Edje object + * + * This function retrieves the object's maximum size values, as declared in its + * EDC group definition. For instance, for an Edje object of maximum size + * 100x100 pixels: collections { group { name: "a_group"; max: 100 100; } } + * + * @note If the @c max EDC property was not declared for the object, this call + * will return the maximum size a given Edje object may have, for each axis. + * + * @note On failure, this function will return 0x0. + * + * See also @ref edje_object_size_min_get. + * + * @param[out] maxw The maximum width + * @param[out] maxh The maximum height + * + * @ingroup Edje_Object + */ +EAPI void edje_object_size_max_get(const Edje_Object *obj, int *maxw, int *maxh); + +/** * @} */ #include "edje_object.eo.legacy.h" diff --git a/src/lib/edje/edje_legacy.c b/src/lib/edje/edje_legacy.c index 0756122aa0..25f0a8116f 100644 --- a/src/lib/edje/edje_legacy.c +++ b/src/lib/edje/edje_legacy.c @@ -1158,3 +1158,21 @@ edje_object_transition_duration_factor_get(const Evas_Object *obj) if (speed <= 0.0) speed = 1.0; return 1.0/speed; } + +EAPI void +edje_object_size_min_get(const Edje_Object *obj, int *minw, int *minh) +{ + Eina_Size2D sz; + sz = efl_canvas_layout_group_size_min_get(obj); + if (minw) *minw = sz.w; + if (minh) *minh = sz.h; +} + +EAPI void +edje_object_size_max_get(const Edje_Object *obj, int *maxw, int *maxh) +{ + Eina_Size2D sz; + sz = efl_canvas_layout_group_size_max_get(obj); + if (maxw) *maxw = sz.w; + if (maxh) *maxh = sz.h; +} diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h index f0e7f00252..090a79f25e 100644 --- a/src/lib/edje/edje_private.h +++ b/src/lib/edje/edje_private.h @@ -1114,7 +1114,7 @@ struct _Edje_Part_Collection int references; struct { - Edje_Size min, max; + Eina_Size2D min, max; unsigned char orientation; } prop; diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c index 5bf0326d86..701e595364 100644 --- a/src/lib/edje/edje_util.c +++ b/src/lib/edje/edje_util.c @@ -3096,50 +3096,32 @@ _edje_object_efl_part_part(Eo *obj, Edje *ed, const char *part) return _edje_other_internal_proxy_get(obj, ed, rp); } -EOLIAN void -_edje_object_efl_canvas_layout_group_group_size_min_get(Eo *obj EINA_UNUSED, Edje *ed, Evas_Coord *minw, Evas_Coord *minh) +EOLIAN Eina_Size2D +_edje_object_efl_canvas_layout_group_group_size_min_get(Eo *obj EINA_UNUSED, Edje *ed) { if ((!ed) || (!ed->collection)) - { - if (minw) *minw = 0; - if (minh) *minh = 0; - return; - } - if (minw) *minw = ed->collection->prop.min.w; - if (minh) *minh = ed->collection->prop.min.h; + return EINA_SIZE2D(0, 0); + + return ed->collection->prop.min; } -EOLIAN void -_edje_object_efl_canvas_layout_group_group_size_max_get(Eo *obj EINA_UNUSED, Edje *ed EINA_UNUSED, Evas_Coord *maxw, Evas_Coord *maxh) +EOLIAN Eina_Size2D +_edje_object_efl_canvas_layout_group_group_size_max_get(Eo *obj EINA_UNUSED, Edje *ed EINA_UNUSED) { + Eina_Size2D sz; + if ((!ed) || (!ed->collection)) - { - if (maxw) *maxw = 0; - if (maxh) *maxh = 0; - return; - } + return EINA_SIZE2D(0, 0); /* Need to recalc before providing the object. */ _edje_recalc_do(ed); - if (ed->collection->prop.max.w == 0) - { - /* XXX TODO: convert maxw to 0, fix things that break. */ - if (maxw) *maxw = EDJE_INF_MAX_W; - } - else - { - if (maxw) *maxw = ed->collection->prop.max.w; - } - if (ed->collection->prop.max.h == 0) - { - /* XXX TODO: convert maxh to 0, fix things that break. */ - if (maxh) *maxh = EDJE_INF_MAX_H; - } - else - { - if (maxh) *maxh = ed->collection->prop.max.h; - } + sz = ed->collection->prop.max; + + /* XXX TODO: use 0 as max, fix things that break. */ + if (sz.w == 0) sz.w = EDJE_INF_MAX_W; + if (sz.h == 0) sz.h = EDJE_INF_MAX_H; + return sz; } EOLIAN void diff --git a/src/lib/edje/efl_canvas_layout_group.eo b/src/lib/edje/efl_canvas_layout_group.eo index 44714bbc8e..3c85ecee82 100644 --- a/src/lib/edje/efl_canvas_layout_group.eo +++ b/src/lib/edje/efl_canvas_layout_group.eo @@ -1,3 +1,5 @@ +import eina_types; + interface Efl.Canvas.Layout_Group { [[APIs representing static data from a group in an edje file. @@ -27,11 +29,9 @@ interface Efl.Canvas.Layout_Group See also @.group_size_max. ]] - legacy: edje_object_size_min_get; } values { - minw: int; [[Pointer to a variable where to store the minimum width]] - minh: int; [[Pointer to a variable where to store the minimum height]] + min: Eina.Size2D; [[The minimum size as set in EDC.]] } } @property group_size_max { @@ -57,11 +57,9 @@ interface Efl.Canvas.Layout_Group See also @.group_size_min. ]] - legacy: edje_object_size_max_get; } values { - maxw: int; [[The maximum width]] - maxh: int; [[The maximum height]] + max: Eina.Size2D; [[The maximum size as set in EDC.]] } } @property group_data { diff --git a/src/lib/elementary/efl_ui_image.c b/src/lib/elementary/efl_ui_image.c index 34d5ac7ccd..5c91b25ff4 100644 --- a/src/lib/elementary/efl_ui_image.c +++ b/src/lib/elementary/efl_ui_image.c @@ -1165,28 +1165,22 @@ _efl_ui_image_efl_canvas_layout_signal_signal_emit(Eo *obj EINA_UNUSED, Efl_Ui_I edje_object_signal_emit(sd->img, emission, source); } -EOLIAN static void -_efl_ui_image_efl_canvas_layout_group_group_size_min_get(Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *sd, int *w, int *h) +EOLIAN static Eina_Size2D +_efl_ui_image_efl_canvas_layout_group_group_size_min_get(Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *sd) { if (sd->edje) - edje_object_size_min_get(sd->img, w, h); + return efl_canvas_layout_group_size_min_get(sd->img); else - { - if (w) *w = 0; - if (h) *h = 0; - } + return EINA_SIZE2D(0, 0); } -EOLIAN static void -_efl_ui_image_efl_canvas_layout_group_group_size_max_get(Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *sd, int *w, int *h) +EOLIAN static Eina_Size2D +_efl_ui_image_efl_canvas_layout_group_group_size_max_get(Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *sd) { if (sd->edje) - edje_object_size_max_get(sd->img, w, h); + return efl_canvas_layout_group_size_max_get(sd->img); else - { - if (w) *w = 0; - if (h) *h = 0; - } + return EINA_SIZE2D(0, 0); } EOLIAN static void diff --git a/src/lib/elementary/efl_ui_image_zoomable.c b/src/lib/elementary/efl_ui_image_zoomable.c index 37cf907846..cd47ef769b 100644 --- a/src/lib/elementary/efl_ui_image_zoomable.c +++ b/src/lib/elementary/efl_ui_image_zoomable.c @@ -1552,28 +1552,22 @@ _efl_ui_image_zoomable_efl_image_image_size_get(Eo *obj EINA_UNUSED, Efl_Ui_Imag if (h) *h = pd->size.imh; } -EOLIAN static void -_efl_ui_image_zoomable_efl_canvas_layout_group_group_size_min_get(Eo *obj EINA_UNUSED, Efl_Ui_Image_Zoomable_Data *sd, int *w, int *h) +EOLIAN static Eina_Size2D +_efl_ui_image_zoomable_efl_canvas_layout_group_group_size_min_get(Eo *obj EINA_UNUSED, Efl_Ui_Image_Zoomable_Data *sd) { if (sd->edje) - edje_object_size_min_get(sd->edje, w, h); + return efl_canvas_layout_group_size_min_get(sd->edje); else - { - if (w) *w = 0; - if (h) *h = 0; - } + return EINA_SIZE2D(0, 0); } -EOLIAN static void -_efl_ui_image_zoomable_efl_canvas_layout_group_group_size_max_get(Eo *obj EINA_UNUSED, Efl_Ui_Image_Zoomable_Data *sd, int *w, int *h) +EOLIAN static Eina_Size2D +_efl_ui_image_zoomable_efl_canvas_layout_group_group_size_max_get(Eo *obj EINA_UNUSED, Efl_Ui_Image_Zoomable_Data *sd) { if (sd->edje) - edje_object_size_max_get(sd->edje, w, h); + return efl_canvas_layout_group_size_max_get(sd->edje); else - { - if (w) *w = 0; - if (h) *h = 0; - } + return EINA_SIZE2D(0, 0); } static Eina_Bool diff --git a/src/lib/elementary/efl_ui_layout.c b/src/lib/elementary/efl_ui_layout.c index 11a703eba7..c0120c6685 100644 --- a/src/lib/elementary/efl_ui_layout.c +++ b/src/lib/elementary/efl_ui_layout.c @@ -1646,20 +1646,20 @@ _efl_ui_layout_efl_canvas_layout_group_group_data_get(Eo *obj, Efl_Ui_Layout_Dat return efl_canvas_layout_group_data_get(wd->resize_obj, key); } -EOLIAN static void -_efl_ui_layout_efl_canvas_layout_group_group_size_min_get(Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED, int *w, int *h) +EOLIAN static Eina_Size2D +_efl_ui_layout_efl_canvas_layout_group_group_size_min_get(Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED) { - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); + ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_SIZE2D(0, 0)); - efl_canvas_layout_group_size_min_get(wd->resize_obj, w, h); + return efl_canvas_layout_group_size_min_get(wd->resize_obj); } -EOLIAN static void -_efl_ui_layout_efl_canvas_layout_group_group_size_max_get(Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED, int *w, int *h) +EOLIAN static Eina_Size2D +_efl_ui_layout_efl_canvas_layout_group_group_size_max_get(Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED) { - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); + ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_SIZE2D(0, 0)); - efl_canvas_layout_group_size_max_get(wd->resize_obj, w, h); + return efl_canvas_layout_group_size_max_get(wd->resize_obj); } /* layout's sizing evaluation is deferred. evaluation requests are --