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