From 5014c11f2ea143eece1f526b338c18f5f6f0ab1c Mon Sep 17 00:00:00 2001 From: moom Date: Sat, 19 Aug 2006 18:22:01 +0000 Subject: [PATCH] * Add edje_object_part_object_get() to get the 'Evas_Object *' corresponding to a given part. SVN revision: 24912 --- legacy/edje/src/lib/Edje.h | 1 + legacy/edje/src/lib/edje_util.c | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/legacy/edje/src/lib/Edje.h b/legacy/edje/src/lib/Edje.h index c1e282ee77..1604dd3166 100644 --- a/legacy/edje/src/lib/Edje.h +++ b/legacy/edje/src/lib/Edje.h @@ -218,6 +218,7 @@ extern "C" { EAPI void edje_object_calc_force (Evas_Object *obj); EAPI void edje_object_size_min_calc (Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh); EAPI int edje_object_part_exists (Evas_Object *obj, const char *part); + EAPI Evas_Object *edje_object_part_object_get (Evas_Object *obj, const char *part); EAPI void edje_object_part_geometry_get (Evas_Object *obj, const char *part, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h); EAPI void edje_object_text_change_cb_set (Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, const char *part), void *data); EAPI void edje_object_part_text_set (Evas_Object *obj, const char *part, const char *text); diff --git a/legacy/edje/src/lib/edje_util.c b/legacy/edje/src/lib/edje_util.c index 1bf6ae1048..df881bfb41 100644 --- a/legacy/edje/src/lib/edje_util.c +++ b/legacy/edje/src/lib/edje_util.c @@ -573,6 +573,31 @@ edje_object_part_exists(Evas_Object *obj, const char *part) return 1; } +/** + * Gets the Evas_Object corresponding to a given part. + * You should never modify the state of the returned object + * (with evas_object_move() or evas_object_hide() for example), + * but you can safely query infos about its current state + * (with evas_object_visible_get() or evas_object_color_get() for example) + * + * @param obj A valid Evas_Object handle + * @param part The Edje part + * @return Returns the Evas_Object corresponding to the given part, + * or NULL on failure (if the part doesn't exist) + **/ +EAPI Evas_Object * +edje_object_part_object_get(Evas_Object *obj, const char *part) +{ + Edje *ed; + Edje_Real_Part *rp; + + ed = _edje_fetch(obj); + if ((!ed) || (!part)) return NULL; + rp = _edje_real_part_get(ed, (char *)part); + if (!rp) return NULL; + return rp->object; +} + /** Get Edje part geometry * @param obj A valid Evas_Object handle * @param part The Edje part