diff --git a/src/lib/edje/Edje_Legacy.h b/src/lib/edje/Edje_Legacy.h index f122bb7272..26a871fe40 100644 --- a/src/lib/edje/Edje_Legacy.h +++ b/src/lib/edje/Edje_Legacy.h @@ -149,6 +149,32 @@ EAPI Edje_Load_Error edje_object_load_error_get(const Evas_Object *obj); */ EAPI const char *edje_load_error_str (Edje_Load_Error error); +/** + * @brief Gets a handle to the Evas object implementing a given Edje part, in + * an Edje object. + * + * This function gets a pointer of the Evas object corresponding to a given + * part in the obj object's group. + * + * You should never modify the state of the returned object (with @ref + * evas_object_move() or @ref evas_object_hide() for example), because it's + * meant to be managed by Edje, solely. You are safe to query information about + * its current state (with evas_object_visible_get() or @ref + * evas_object_color_get() for example), though. + * + * @note If the type of Edje part is GROUP, SWALLOW or EXTERNAL, returned + * handle by this function will indicate nothing or transparent rectangle for + * events. Use $.part_swallow_get() in that case. + * + * @param[in] part The Edje part's name + * + * @return A pointer to the Evas object implementing the given part, @c null on + * failure (e.g. the given part doesn't exist) + * + * @ingroup Edje_Object + */ +EAPI const Efl_Canvas_Object *edje_object_part_object_get(const Edje_Object *obj, const char * part); + /** * @ingroup Edje_Object_Communication_Interface_Message * diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo index 64a27d8d1d..c6105ab6fd 100644 --- a/src/lib/edje/edje_object.eo +++ b/src/lib/edje/edje_object.eo @@ -823,31 +823,6 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part, group]] } } - @property part_object { - get { - [[Gets a handle to the Evas object implementing a given Edje - part, in an Edje object. - - This function gets a pointer of the Evas object corresponding to a - given part in the obj object's group. - - You should never modify the state of the returned object (with - \@ref evas_object_move() or \@ref evas_object_hide() for example), - because it's meant to be managed by Edje, solely. You are safe to - query information about its current state (with - evas_object_visible_get() or \@ref evas_object_color_get() for - example), though. - - Note: If the type of Edje part is GROUP, SWALLOW or EXTERNAL, - returned handle by this function will indicate nothing or transparent - rectangle for events. Use $.part_swallow_get() in that case.]] - return: const(Efl.Canvas.Object); [[A pointer to the Evas object implementing the given part, - $null on failure (e.g. the given part doesn't exist)]] - } - keys { - part: string; [[The Edje part's name]] - } - } @property part_state { get { [[Returns the state of the Edje part.]] diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c index 2925b35d07..8740fea09e 100644 --- a/src/lib/edje/edje_util.c +++ b/src/lib/edje/edje_util.c @@ -1803,11 +1803,14 @@ _edje_object_part_exists(Eo *obj EINA_UNUSED, Edje *ed, const char *part) return EINA_TRUE; } -EOLIAN const Evas_Object * -_edje_object_part_object_get(Eo *obj EINA_UNUSED, Edje *ed, const char *part) +/* Legacy API: exposes internal object. Easy to abuse. */ +EAPI const Evas_Object * +edje_object_part_object_get(const Eo *obj, const char *part) { Edje_Real_Part *rp; + Edje *ed; + ed = _edje_fetch(obj); if ((!ed) || (!part)) return NULL; /* Need to recalc before providing the object. */