zmike pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=f8c40114589ba044a714e2bc35d1affa34b5ef5f

commit f8c40114589ba044a714e2bc35d1affa34b5ef5f
Author: Mike Blumenkrantz <zm...@samsung.com>
Date:   Mon Feb 25 07:45:43 2019 -0500

    efl.content: add event for when content is changed containing content as 
data
    
    Summary: ref T7588
    
    Reviewers: cedric, segfaultxavi
    
    Reviewed By: cedric, segfaultxavi
    
    Subscribers: bu5hm4n, cedric, #reviewers, #committers
    
    Tags: #efl
    
    Maniphest Tasks: T7588
    
    Differential Revision: https://phab.enlightenment.org/D7907
---
 src/lib/edje/edje_util.c              | 2 +-
 src/lib/efl/interfaces/efl_content.eo | 3 +++
 src/lib/elementary/efl_ui_pan.c       | 2 ++
 src/lib/elementary/efl_ui_panel.c     | 4 ++--
 src/lib/elementary/elm_mapbuf.c       | 3 ++-
 src/lib/elementary/elm_notify.c       | 2 ++
 src/lib/elementary/elm_scroller.c     | 2 ++
 7 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c
index ba7da81abc..4d1af34575 100644
--- a/src/lib/edje/edje_util.c
+++ b/src/lib/edje/edje_util.c
@@ -3060,7 +3060,7 @@ _edje_efl_content_content_set(Edje *ed, const char *part, 
Efl_Gfx_Entity *obj_sw
              eud->u.swallow.child = obj_swallow;
           }
      }
-
+   efl_event_callback_call(ed->obj, EFL_CONTENT_EVENT_CONTENT_CHANGED, 
obj_swallow);
    return EINA_TRUE;
 }
 
diff --git a/src/lib/efl/interfaces/efl_content.eo 
b/src/lib/efl/interfaces/efl_content.eo
index a5dbe43ef6..961bce9fb8 100644
--- a/src/lib/efl/interfaces/efl_content.eo
+++ b/src/lib/efl/interfaces/efl_content.eo
@@ -21,4 +21,7 @@ interface @beta Efl.Content
          return: Efl.Gfx.Entity; [[Unswallowed object]]
       }
    }
+   events {
+      content,changed: Efl.Gfx.Entity;    [[Sent after the content is set or 
unset using the current content object.]]
+   }
 }
diff --git a/src/lib/elementary/efl_ui_pan.c b/src/lib/elementary/efl_ui_pan.c
index b84e0ba9d6..dc9ddcc5e0 100644
--- a/src/lib/elementary/efl_ui_pan.c
+++ b/src/lib/elementary/efl_ui_pan.c
@@ -178,6 +178,7 @@ _efl_ui_pan_efl_content_content_set(Evas_Object *obj, 
Efl_Ui_Pan_Data *psd, Evas
    evas_object_smart_changed(obj);
 
 end:
+   efl_event_callback_call(obj, EFL_CONTENT_EVENT_CONTENT_CHANGED, content);
    efl_event_callback_call(obj, EFL_UI_PAN_EVENT_CONTENT_CHANGED, NULL);
    return EINA_TRUE;
 }
@@ -201,6 +202,7 @@ _efl_ui_pan_efl_content_content_unset(Eo *obj EINA_UNUSED, 
Efl_Ui_Pan_Data *pd)
      obj);
    pd->content = NULL;
    pd->content_w = pd->content_h = pd->px = pd->py = 0;
+   efl_event_callback_call(obj, EFL_CONTENT_EVENT_CONTENT_CHANGED, NULL);
    efl_event_callback_call(obj, EFL_UI_PAN_EVENT_CONTENT_CHANGED, NULL);
 
    return old_content;
diff --git a/src/lib/elementary/efl_ui_panel.c 
b/src/lib/elementary/efl_ui_panel.c
index 8351c8972e..77c8ae15ec 100644
--- a/src/lib/elementary/efl_ui_panel.c
+++ b/src/lib/elementary/efl_ui_panel.c
@@ -727,7 +727,7 @@ _efl_ui_panel_efl_content_content_set(Eo *obj, 
Efl_Ui_Panel_Data *sd, Efl_Gfx_En
         else
           elm_widget_sub_object_add(obj, sd->content);
      }
-
+   efl_event_callback_call(obj, EFL_CONTENT_EVENT_CONTENT_CHANGED, content);
    if (efl_finalized_get(obj))
      elm_layout_sizing_eval(obj);
 
@@ -752,7 +752,7 @@ _efl_ui_panel_efl_content_content_unset(Eo *obj 
EINA_UNUSED, Efl_Ui_Panel_Data *
    if (sd->scrollable)
      _elm_widget_sub_object_redirect_to_top(sd->scr_ly, sd->content);
    sd->content = NULL;
-
+   efl_event_callback_call(obj, EFL_CONTENT_EVENT_CONTENT_CHANGED, NULL);
    return ret;
 }
 
diff --git a/src/lib/elementary/elm_mapbuf.c b/src/lib/elementary/elm_mapbuf.c
index a427ec86d3..9e8369f469 100644
--- a/src/lib/elementary/elm_mapbuf.c
+++ b/src/lib/elementary/elm_mapbuf.c
@@ -220,7 +220,7 @@ _elm_mapbuf_content_set(Eo *obj, Elm_Mapbuf_Data *sd, const 
char *part, Evas_Obj
      }
    else
      evas_object_color_set(wd->resize_obj, 0, 0, 0, 0);
-
+   efl_event_callback_call(obj, EFL_CONTENT_EVENT_CONTENT_CHANGED, content);
    _sizing_eval(obj);
    _configure(obj);
 
@@ -244,6 +244,7 @@ _elm_mapbuf_content_unset(Eo *obj, Elm_Mapbuf_Data *sd, 
const char *part)
    content = sd->content;
    _elm_widget_sub_object_redirect_to_top(obj, content);
    _elm_mapbuf_content_unset_internal(sd, obj, content);
+   efl_event_callback_call(obj, EFL_CONTENT_EVENT_CONTENT_CHANGED, NULL);
    return content;
 }
 
diff --git a/src/lib/elementary/elm_notify.c b/src/lib/elementary/elm_notify.c
index c8902647c8..97e92acfcd 100644
--- a/src/lib/elementary/elm_notify.c
+++ b/src/lib/elementary/elm_notify.c
@@ -374,6 +374,7 @@ _elm_notify_content_set(Eo *obj, Elm_Notify_Data *sd, const 
char *part, Evas_Obj
           _changed_size_hints_cb, obj);
         edje_object_part_swallow(sd->notify, "elm.swallow.content", content);
      }
+   efl_event_callback_call(obj, EFL_CONTENT_EVENT_CONTENT_CHANGED, content);
 
    _calc(obj);
 
@@ -399,6 +400,7 @@ _elm_notify_content_unset(Eo *obj, Elm_Notify_Data *sd, 
const char *part)
    content = sd->content;
    _elm_widget_sub_object_redirect_to_top(obj, sd->content);
    edje_object_part_unswallow(sd->notify, content);
+   efl_event_callback_call(obj, EFL_CONTENT_EVENT_CONTENT_CHANGED, NULL);
 
    return content;
 }
diff --git a/src/lib/elementary/elm_scroller.c 
b/src/lib/elementary/elm_scroller.c
index a86c158836..0409cd9d31 100644
--- a/src/lib/elementary/elm_scroller.c
+++ b/src/lib/elementary/elm_scroller.c
@@ -690,6 +690,7 @@ _elm_scroller_content_set(Eo *obj, Elm_Scroller_Data *sd, 
const char *part, Evas
              sd->proxy_content[i] = NULL;
           }
      }
+   efl_event_callback_call(obj, EFL_CONTENT_EVENT_CONTENT_CHANGED, content);
 
    elm_layout_sizing_eval(obj);
 
@@ -725,6 +726,7 @@ _elm_scroller_content_unset(Eo *obj, Elm_Scroller_Data *sd, 
const char *part)
      _elm_widget_sub_object_redirect_to_top(obj, sd->content);
    elm_interface_scrollable_content_set(obj, NULL);
    sd->content = NULL;
+   efl_event_callback_call(obj, EFL_CONTENT_EVENT_CONTENT_CHANGED, NULL);
 
    return ret;
 }

-- 


Reply via email to