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);
 

-- 


Reply via email to