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
This commit is contained in:
Mike Blumenkrantz 2019-02-25 07:45:43 -05:00
parent 2367deb446
commit f8c4011458
7 changed files with 14 additions and 4 deletions

View File

@ -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;
}

View File

@ -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.]]
}
}

View File

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

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}