bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=37c115542c6d723f3aa03af92dacbcdd400b8e4d
commit 37c115542c6d723f3aa03af92dacbcdd400b8e4d Author: Marcel Hollerbach <[email protected]> Date: Thu Jan 24 14:09:42 2019 +0100 efl_ui_pan: implement content interface the last two functions for the content interface have been missing. Now the pan object can also unset and set new content ref T5719 Reviewed-by: Cedric BAIL <[email protected]> Differential Revision: https://phab.enlightenment.org/D7757 --- src/lib/elementary/efl_ui_pan.c | 33 +++++++++++++++++++++++++-------- src/lib/elementary/efl_ui_pan.eo | 3 ++- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/lib/elementary/efl_ui_pan.c b/src/lib/elementary/efl_ui_pan.c index 062e94cfad..b84e0ba9d6 100644 --- a/src/lib/elementary/efl_ui_pan.c +++ b/src/lib/elementary/efl_ui_pan.c @@ -156,14 +156,7 @@ _efl_ui_pan_efl_content_content_set(Evas_Object *obj, Efl_Ui_Pan_Data *psd, Evas if (content == psd->content) return EINA_TRUE; if (psd->content) { - efl_canvas_group_member_del(obj, psd->content); - evas_object_event_callback_del_full - (psd->content, EVAS_CALLBACK_DEL, _efl_ui_pan_content_del_cb, obj); - evas_object_event_callback_del_full - (psd->content, EVAS_CALLBACK_RESIZE, _efl_ui_pan_content_resize_cb, - obj); - psd->content = NULL; - psd->content_w = psd->content_h = psd->px = psd->py = 0; + efl_content_unset(obj); } if (!content) goto end; @@ -189,6 +182,30 @@ end: return EINA_TRUE; } +EOLIAN static Efl_Gfx_Entity* +_efl_ui_pan_efl_content_content_get(const Eo *obj EINA_UNUSED, Efl_Ui_Pan_Data *pd) +{ + return pd->content; +} + +EOLIAN static Efl_Gfx_Entity* +_efl_ui_pan_efl_content_content_unset(Eo *obj EINA_UNUSED, Efl_Ui_Pan_Data *pd) +{ + Efl_Gfx_Stack *old_content = pd->content; + + efl_canvas_group_member_del(obj, pd->content); + evas_object_event_callback_del_full + (pd->content, EVAS_CALLBACK_DEL, _efl_ui_pan_content_del_cb, obj); + evas_object_event_callback_del_full + (pd->content, EVAS_CALLBACK_RESIZE, _efl_ui_pan_content_resize_cb, + obj); + pd->content = NULL; + pd->content_w = pd->content_h = pd->px = pd->py = 0; + efl_event_callback_call(obj, EFL_UI_PAN_EVENT_CONTENT_CHANGED, NULL); + + return old_content; +} + EOLIAN static void _efl_ui_pan_efl_canvas_group_group_calculate(Eo *obj EINA_UNUSED, Efl_Ui_Pan_Data *psd) { diff --git a/src/lib/elementary/efl_ui_pan.eo b/src/lib/elementary/efl_ui_pan.eo index bd47b60e2e..907d50b197 100644 --- a/src/lib/elementary/efl_ui_pan.eo +++ b/src/lib/elementary/efl_ui_pan.eo @@ -43,7 +43,8 @@ class Efl.Ui.Pan extends Efl.Canvas.Group implements Efl.Content Efl.Gfx.Entity.visible { set; } Efl.Gfx.Entity.position { set; } Efl.Gfx.Entity.size { set; } - Efl.Content.content { set; } + Efl.Content.content { set; get; } + Efl.Content.content_unset; Efl.Canvas.Group.group_calculate; } events { --
