diff --git a/legacy/edje/src/lib/Edje.h b/legacy/edje/src/lib/Edje.h index da808f21a3..f526b01aef 100644 --- a/legacy/edje/src/lib/Edje.h +++ b/legacy/edje/src/lib/Edje.h @@ -19,6 +19,8 @@ extern "C" { void edje_signal_callback_add(Evas_Object *o, const char *emission, const char *source, void (*func) (void *data, Evas_Object *o, const char *emission, const char *source), void *data); void *edje_signal_callback_del(Evas_Object *o, const char *emission, const char *source, void (*func) (void *data, Evas_Object *o, const char *emission, const char *source)); void edje_signal_emit(Evas_Object *o, const char *emission, const char *source); + + void edje_part_geometry_get(Evas_Object *o, char *part, int *x, int *y, int *w, int *h); #ifdef __cplusplus } diff --git a/legacy/edje/src/lib/edje_util.c b/legacy/edje/src/lib/edje_util.c index d9b46f3b8d..2c4e1c69a0 100644 --- a/legacy/edje/src/lib/edje_util.c +++ b/legacy/edje/src/lib/edje_util.c @@ -36,3 +36,26 @@ _edje_thaw(Edje *ed) _edje_recalc(ed); return ed->freeze; } + +void +edje_part_geometry_get(Evas_Object *o, char *part, int *x, int *y, int *w, int *h ) +{ + Evas_List *l; + Edje *ed; + + ed = _edje_fetch(o); + + for (l = ed->parts; l; l = l->next) + { + Edje_Real_Part *rp; + rp = l->data; + + if (!strcmp(rp->part->name, part) && rp->calculated) + { + if (x) *x = rp->x; + if (y) *y = rp->y; + if (w) *w = rp->w; + if (h) *h = rp->h; + } + } +}