yakov pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=9c3279764590f56e2f5330b6bcc44cad7a8e8a5d
commit 9c3279764590f56e2f5330b6bcc44cad7a8e8a5d Author: Yakov Goldberg <yako...@samsung.com> Date: Tue Oct 27 11:35:41 2015 +0200 Add API and support for parent container id Now each widget holds pointer to its container widget --- src/lib/gui_widget.c | 18 ++++++++++++++++++ src/lib/gui_widget.h | 6 ++++++ 2 files changed, 24 insertions(+) diff --git a/src/lib/gui_widget.c b/src/lib/gui_widget.c index 247d61f..dab1201 100644 --- a/src/lib/gui_widget.c +++ b/src/lib/gui_widget.c @@ -101,6 +101,7 @@ struct _Gui_Widget Eina_List *children; /* list of Eids */ Eid *parent_id; + Eid *parent_container_id; Eina_Hash *data; /* hash to set generic data. */ @@ -1772,6 +1773,21 @@ wdg_data_get(const Gui_Widget *wdg, const char *key) } /************************************************************/ + +void +wdg_parent_container_eid_set(Gui_Widget *wdg, Eid *eid) +{ + EINA_SAFETY_ON_NULL_RETURN(wdg); + wdg->parent_container_id = eid; +} + +Eid * +wdg_parent_container_eid_get(const Gui_Widget *wdg) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(wdg, 0); + return wdg->parent_container_id; +} + Object_Container_Item * obj_container_item_new(Gui_Widget_Property *prop, Eid *eid) { @@ -1870,6 +1886,7 @@ wdg_obj_container_item_add(const Gui_Widget *wdg, Object_Container_Item *ci, int Eid *eid = obj_container_item_eid_get(ci); Gui_Widget *w = wdg_get(eid); + wdg_parent_container_eid_set(w, wdg_eid_get(wdg)); if (w && wdg_parent_get(w)) { wdg_parent_set(w, wdg_name_get(wdg)); @@ -1906,6 +1923,7 @@ wdg_obj_container_item_remove(const Gui_Widget *wdg, Object_Container_Item *ci) { const Gui_Widget *parent_win = wdg_main_wdg_get(w); wdg_parent_set(w, wdg_name_get(parent_win)); + wdg_parent_container_eid_set(w, 0); } } diff --git a/src/lib/gui_widget.h b/src/lib/gui_widget.h index 666807f..2ed2948 100644 --- a/src/lib/gui_widget.h +++ b/src/lib/gui_widget.h @@ -495,6 +495,12 @@ wdg_obj_container_item_remove(const Gui_Widget *wdg, Object_Container_Item *ci); void wdg_obj_container_item_remove_all(const Gui_Widget *wdg); +void +wdg_parent_container_eid_set(Gui_Widget *wdg, Eid *eid); + +Eid * +wdg_parent_container_eid_get(const Gui_Widget *wdg); + const char * wdg_obj_container_class_name_get(const Gui_Widget *wdg); --