widget: Make sub_object add/del protected (EO)

Also prefix with widget.

I want to rename this as child rather than sub. It's inconsistent with
the other parent/child hierarchies. Anyway the various hierarchies are
confusing, so let's keep this name :)

Ref T5363
This commit is contained in:
Jean-Philippe Andre 2017-08-23 20:41:37 +09:00
parent c071fd453b
commit 3f9c239b27
40 changed files with 105 additions and 92 deletions

View File

@ -344,7 +344,7 @@ _efl_ui_box_efl_pack_linear_pack_before(Eo *obj, Efl_Ui_Box_Data *_pd EINA_UNUSE
if (!evas_object_box_insert_before(wd->resize_obj, subobj, existing)) if (!evas_object_box_insert_before(wd->resize_obj, subobj, existing))
{ {
elm_obj_widget_sub_object_del(obj, subobj); elm_widget_sub_object_del(obj, subobj);
return EINA_FALSE; return EINA_FALSE;
} }
@ -361,7 +361,7 @@ _efl_ui_box_efl_pack_linear_pack_after(Eo *obj, Efl_Ui_Box_Data *_pd EINA_UNUSED
if (!evas_object_box_insert_after(wd->resize_obj, subobj, existing)) if (!evas_object_box_insert_after(wd->resize_obj, subobj, existing))
{ {
elm_obj_widget_sub_object_del(obj, subobj); elm_widget_sub_object_del(obj, subobj);
return EINA_FALSE; return EINA_FALSE;
} }

View File

@ -136,11 +136,11 @@ _efl_ui_button_elm_widget_theme_apply(Eo *obj, Efl_Ui_Button_Data *_pd EINA_UNUS
* is elm.swallow.content, not elm.swallow.icon. Fix that whenever we * is elm.swallow.content, not elm.swallow.icon. Fix that whenever we
* can changed the theme API */ * can changed the theme API */
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_efl_ui_button_elm_widget_sub_object_del(Eo *obj, Efl_Ui_Button_Data *_pd EINA_UNUSED, Evas_Object *sobj) _efl_ui_button_elm_widget_widget_sub_object_del(Eo *obj, Efl_Ui_Button_Data *_pd EINA_UNUSED, Evas_Object *sobj)
{ {
Eina_Bool int_ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE;
int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
if (!int_ret) return EINA_FALSE; if (!int_ret) return EINA_FALSE;
_icon_signal_emit(obj); _icon_signal_emit(obj);

View File

@ -20,7 +20,7 @@ class Efl.Ui.Button (Efl.Ui.Layout, Efl.Ui.Clickable, Efl.Ui.Autorepeat, Efl.Tex
Elm.Widget.focus_next_manager_is; Elm.Widget.focus_next_manager_is;
Elm.Widget.focus_direction_manager_is; Elm.Widget.focus_direction_manager_is;
Elm.Widget.theme_apply; Elm.Widget.theme_apply;
Elm.Widget.sub_object_del; Elm.Widget.widget_sub_object_del;
Elm.Widget.widget_event; Elm.Widget.widget_event;
Elm.Interface.Atspi_Widget_Action.elm_actions { get; } Elm.Interface.Atspi_Widget_Action.elm_actions { get; }
Efl.Part.part; Efl.Part.part;

View File

@ -117,11 +117,11 @@ _efl_ui_check_elm_interface_atspi_accessible_state_set_get(Eo *obj, Efl_Ui_Check
* is elm.swallow.content, not elm.swallow.icon. Fix that whenever we * is elm.swallow.content, not elm.swallow.icon. Fix that whenever we
* can changed the theme API */ * can changed the theme API */
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_efl_ui_check_elm_widget_sub_object_del(Eo *obj, Efl_Ui_Check_Data *_pd EINA_UNUSED, Evas_Object *sobj) _efl_ui_check_elm_widget_widget_sub_object_del(Eo *obj, Efl_Ui_Check_Data *_pd EINA_UNUSED, Evas_Object *sobj)
{ {
Eina_Bool int_ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE;
int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
if (!int_ret) return EINA_FALSE; if (!int_ret) return EINA_FALSE;
_icon_signal_emit(obj); _icon_signal_emit(obj);

View File

@ -25,7 +25,7 @@ class Efl.Ui.Check (Efl.Ui.Nstate, Elm.Interface.Atspi_Widget_Action)
Efl.Object.constructor; Efl.Object.constructor;
Elm.Widget.activate; Elm.Widget.activate;
Elm.Widget.theme_apply; Elm.Widget.theme_apply;
Elm.Widget.sub_object_del; Elm.Widget.widget_sub_object_del;
Elm.Widget.widget_event; Elm.Widget.widget_event;
Efl.Ui.Nstate.count { set; } Efl.Ui.Nstate.count { set; }
Efl.Ui.Nstate.value { set; } Efl.Ui.Nstate.value { set; }

View File

@ -168,14 +168,14 @@ _changed_size_hints_cb(void *data,
} }
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_efl_ui_flip_elm_widget_sub_object_add(Eo *obj, Efl_Ui_Flip_Data *_pd EINA_UNUSED, Evas_Object *sobj) _efl_ui_flip_elm_widget_widget_sub_object_add(Eo *obj, Efl_Ui_Flip_Data *_pd EINA_UNUSED, Evas_Object *sobj)
{ {
Eina_Bool int_ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE;
if (evas_object_data_get(sobj, "elm-parent") == obj) if (evas_object_data_get(sobj, "elm-parent") == obj)
return EINA_TRUE; return EINA_TRUE;
int_ret = elm_obj_widget_sub_object_add(efl_super(obj, MY_CLASS), sobj); int_ret = elm_widget_sub_object_add(efl_super(obj, MY_CLASS), sobj);
if (!int_ret) return EINA_FALSE; if (!int_ret) return EINA_FALSE;
evas_object_data_set(sobj, "_elm_leaveme", sobj); evas_object_data_set(sobj, "_elm_leaveme", sobj);
@ -188,12 +188,12 @@ _efl_ui_flip_elm_widget_sub_object_add(Eo *obj, Efl_Ui_Flip_Data *_pd EINA_UNUSE
} }
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_efl_ui_flip_elm_widget_sub_object_del(Eo *obj, Efl_Ui_Flip_Data *sd, Evas_Object *sobj) _efl_ui_flip_elm_widget_widget_sub_object_del(Eo *obj, Efl_Ui_Flip_Data *sd, Evas_Object *sobj)
{ {
Eina_Bool int_ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE;
int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
if (!int_ret) return EINA_FALSE; if (!int_ret) return EINA_FALSE;
if (sobj == sd->front.content) if (sobj == sd->front.content)

View File

@ -230,12 +230,12 @@ class Efl.Ui.Flip (Elm.Widget, Efl.Pack.Linear, Efl.Part)
class.constructor; class.constructor;
Efl.Object.constructor; Efl.Object.constructor;
Elm.Widget.focus_direction; Elm.Widget.focus_direction;
Elm.Widget.sub_object_add; Elm.Widget.widget_sub_object_add;
Elm.Widget.theme_apply; Elm.Widget.theme_apply;
Elm.Widget.focus_direction_manager_is; Elm.Widget.focus_direction_manager_is;
Elm.Widget.focus_next_manager_is; Elm.Widget.focus_next_manager_is;
Elm.Widget.focus_next; Elm.Widget.focus_next;
Elm.Widget.sub_object_del; Elm.Widget.widget_sub_object_del;
Efl.Container.content_iterate; Efl.Container.content_iterate;
Efl.Container.content_count; Efl.Container.content_count;
Efl.Container.content_remove; Efl.Container.content_remove;

View File

@ -490,13 +490,13 @@ _efl_ui_layout_elm_widget_focus_next(Eo *obj, Efl_Ui_Layout_Data *sd, Elm_Focus_
} }
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_efl_ui_layout_elm_widget_sub_object_add(Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED, Evas_Object *sobj) _efl_ui_layout_elm_widget_widget_sub_object_add(Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED, Evas_Object *sobj)
{ {
Eina_Bool int_ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE;
if (evas_object_data_get(sobj, "elm-parent") == obj) return EINA_TRUE; if (evas_object_data_get(sobj, "elm-parent") == obj) return EINA_TRUE;
int_ret = elm_obj_widget_sub_object_add(efl_super(obj, MY_CLASS), sobj); int_ret = elm_widget_sub_object_add(efl_super(obj, MY_CLASS), sobj);
if (!int_ret) return EINA_FALSE; if (!int_ret) return EINA_FALSE;
evas_object_event_callback_add evas_object_event_callback_add
@ -507,7 +507,7 @@ _efl_ui_layout_elm_widget_sub_object_add(Eo *obj, Efl_Ui_Layout_Data *_pd EINA_U
} }
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_efl_ui_layout_elm_widget_sub_object_del(Eo *obj, Efl_Ui_Layout_Data *sd, Evas_Object *sobj) _efl_ui_layout_elm_widget_widget_sub_object_del(Eo *obj, Efl_Ui_Layout_Data *sd, Evas_Object *sobj)
{ {
Eina_List *l; Eina_List *l;
Efl_Ui_Layout_Sub_Object_Data *sub_d; Efl_Ui_Layout_Sub_Object_Data *sub_d;
@ -520,7 +520,7 @@ _efl_ui_layout_elm_widget_sub_object_del(Eo *obj, Efl_Ui_Layout_Data *sd, Evas_O
(sobj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, (sobj, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
_on_sub_object_size_hint_change, obj); _on_sub_object_size_hint_change, obj);
int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
if (!int_ret) return EINA_FALSE; if (!int_ret) return EINA_FALSE;
if (sd->destructed_is) return EINA_TRUE; if (sd->destructed_is) return EINA_TRUE;
@ -647,7 +647,7 @@ _sub_box_remove(Evas_Object *obj,
Efl_Ui_Layout_Sub_Object_Data *sub_d) Efl_Ui_Layout_Sub_Object_Data *sub_d)
{ {
Evas_Object *child = sub_d->obj; /* sub_d will die in Evas_Object *child = sub_d->obj; /* sub_d will die in
* _efl_ui_layout_smart_sub_object_del */ * _efl_ui_layout_smart_widget_sub_object_del */
if (sub_d->type == BOX_INSERT_BEFORE) if (sub_d->type == BOX_INSERT_BEFORE)
evas_object_event_callback_del_full evas_object_event_callback_del_full
@ -692,7 +692,7 @@ _sub_table_remove(Evas_Object *obj,
Evas_Object *child; Evas_Object *child;
ELM_WIDGET_DATA_GET_OR_RETURN(sd->obj, wd, NULL); ELM_WIDGET_DATA_GET_OR_RETURN(sd->obj, wd, NULL);
child = sub_d->obj; /* sub_d will die in _efl_ui_layout_smart_sub_object_del */ child = sub_d->obj; /* sub_d will die in _efl_ui_layout_smart_widget_sub_object_del */
edje_object_part_table_unpack edje_object_part_table_unpack
(wd->resize_obj, sub_d->part, child); (wd->resize_obj, sub_d->part, child);
@ -1088,7 +1088,7 @@ _efl_ui_layout_content_unset(Eo *obj, Efl_Ui_Layout_Data *sd, const char *part)
if (!sub_d->obj) return NULL; if (!sub_d->obj) return NULL;
content = sub_d->obj; /* sub_d will die in content = sub_d->obj; /* sub_d will die in
* _efl_ui_layout_smart_sub_object_del */ * _efl_ui_layout_smart_widget_sub_object_del */
if (!_elm_widget_sub_object_redirect_to_top(obj, content)) if (!_elm_widget_sub_object_redirect_to_top(obj, content))
{ {

View File

@ -59,13 +59,13 @@ class Efl.Ui.Layout (Elm.Widget, Efl.Part, Efl.Container, Efl.File,
Efl.Canvas.Layout_Group.group_size_min { get; } Efl.Canvas.Layout_Group.group_size_min { get; }
Efl.Canvas.Layout_Group.group_size_max { get; } Efl.Canvas.Layout_Group.group_size_max { get; }
Elm.Widget.focus_direction; Elm.Widget.focus_direction;
Elm.Widget.sub_object_add; Elm.Widget.widget_sub_object_add;
Elm.Widget.theme_apply; Elm.Widget.theme_apply;
Elm.Widget.focus_direction_manager_is; Elm.Widget.focus_direction_manager_is;
Elm.Widget.focus_next_manager_is; Elm.Widget.focus_next_manager_is;
Elm.Widget.focus_next; Elm.Widget.focus_next;
Elm.Widget.disable; Elm.Widget.disable;
Elm.Widget.sub_object_del; Elm.Widget.widget_sub_object_del;
Elm.Widget.on_focus; Elm.Widget.on_focus;
Efl.Container.content_count; Efl.Container.content_count;
Efl.Container.content_remove; Efl.Container.content_remove;

View File

@ -178,10 +178,10 @@ _icon_signal_emit(Evas_Object *obj)
* spot is elm.swallow.content, not elm.swallow.icon. Fix that * spot is elm.swallow.content, not elm.swallow.icon. Fix that
* whenever we can changed the theme API */ * whenever we can changed the theme API */
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_efl_ui_progressbar_elm_widget_sub_object_del(Eo *obj, Efl_Ui_Progressbar_Data *_pd EINA_UNUSED, Evas_Object *sobj) _efl_ui_progressbar_elm_widget_widget_sub_object_del(Eo *obj, Efl_Ui_Progressbar_Data *_pd EINA_UNUSED, Evas_Object *sobj)
{ {
Eina_Bool int_ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE;
int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
if (!int_ret) return EINA_FALSE; if (!int_ret) return EINA_FALSE;
_icon_signal_emit(obj); _icon_signal_emit(obj);

View File

@ -52,7 +52,7 @@ class Efl.Ui.Progressbar (Efl.Ui.Layout, Efl.Ui.Range, Efl.Ui.Direction)
Elm.Widget.theme_apply; Elm.Widget.theme_apply;
Elm.Widget.focus_next_manager_is; Elm.Widget.focus_next_manager_is;
Elm.Widget.focus_direction_manager_is; Elm.Widget.focus_direction_manager_is;
Elm.Widget.sub_object_del; Elm.Widget.widget_sub_object_del;
Efl.Ui.Range.span_size { get; set; } Efl.Ui.Range.span_size { get; set; }
Efl.Ui.Range.range_value { get; set; } Efl.Ui.Range.range_value { get; set; }
Efl.Ui.Range.range_unit_format { get; set; } Efl.Ui.Range.range_unit_format { get; set; }

View File

@ -1240,7 +1240,7 @@ _show_region_hook(void *data EINA_UNUSED, Evas_Object *obj, Eina_Rectangle r)
} }
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_efl_ui_text_elm_widget_sub_object_del(Eo *obj, Efl_Ui_Text_Data *_pd EINA_UNUSED, Evas_Object *sobj) _efl_ui_text_elm_widget_widget_sub_object_del(Eo *obj, Efl_Ui_Text_Data *_pd EINA_UNUSED, Evas_Object *sobj)
{ {
Eina_Bool ret = EINA_FALSE; Eina_Bool ret = EINA_FALSE;
/* unfortunately entry doesn't follow the signal pattern /* unfortunately entry doesn't follow the signal pattern
@ -1255,7 +1255,7 @@ _efl_ui_text_elm_widget_sub_object_del(Eo *obj, Efl_Ui_Text_Data *_pd EINA_UNUSE
elm_layout_signal_emit(obj, "elm,action,hide,end", "elm"); elm_layout_signal_emit(obj, "elm,action,hide,end", "elm");
} }
ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
if (!ret) return EINA_FALSE; if (!ret) return EINA_FALSE;
return EINA_TRUE; return EINA_TRUE;

View File

@ -413,7 +413,7 @@ class Efl.Ui.Text (Efl.Ui.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable,
Elm.Widget.on_focus; Elm.Widget.on_focus;
Elm.Widget.on_focus_region; Elm.Widget.on_focus_region;
Elm.Widget.disable; Elm.Widget.disable;
Elm.Widget.sub_object_del; Elm.Widget.widget_sub_object_del;
Elm.Widget.focus_next_manager_is; Elm.Widget.focus_next_manager_is;
Elm.Interface_Scrollable.policy { set; } Elm.Interface_Scrollable.policy { set; }
Elm.Interface_Scrollable.bounce_allow { set; } Elm.Interface_Scrollable.bounce_allow { set; }

View File

@ -599,12 +599,12 @@ _base_shift_by_arrow(Evas_Object *arrow,
} }
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_elm_ctxpopup_elm_widget_sub_object_add(Eo *obj, Elm_Ctxpopup_Data *_pd EINA_UNUSED, Evas_Object *sobj) _elm_ctxpopup_elm_widget_widget_sub_object_add(Eo *obj, Elm_Ctxpopup_Data *_pd EINA_UNUSED, Evas_Object *sobj)
{ {
/* Skipping elm_layout sub_object_add in order to ignore size hint changes. /* Skipping elm_layout widget_sub_object_add in order to ignore size hint changes.
* Note: It is not clear WHY we are doing this. Same reason as genlist? * Note: It is not clear WHY we are doing this. Same reason as genlist?
*/ */
return elm_obj_widget_sub_object_add(efl_cast(obj, ELM_WIDGET_CLASS), sobj); return elm_widget_sub_object_add(efl_cast(obj, ELM_WIDGET_CLASS), sobj);
} }
EOLIAN static void EOLIAN static void

View File

@ -511,12 +511,12 @@ _elm_popup_efl_canvas_layout_signal_signal_emit(Eo *obj EINA_UNUSED, Elm_Popup_D
} }
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_elm_popup_elm_widget_sub_object_del(Eo *obj, Elm_Popup_Data *sd, Evas_Object *sobj) _elm_popup_elm_widget_widget_sub_object_del(Eo *obj, Elm_Popup_Data *sd, Evas_Object *sobj)
{ {
Elm_Popup_Item_Data *it; Elm_Popup_Item_Data *it;
Eina_Bool int_ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE;
int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
if (!int_ret) return EINA_FALSE; if (!int_ret) return EINA_FALSE;
if (sobj == sd->title_icon) if (sobj == sd->title_icon)

View File

@ -154,11 +154,11 @@ _on_size_hints_changed(void *data,
} }
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_elm_box_elm_widget_sub_object_del(Eo *obj, Elm_Box_Data *_pd EINA_UNUSED, Evas_Object *child) _elm_box_elm_widget_widget_sub_object_del(Eo *obj, Elm_Box_Data *_pd EINA_UNUSED, Evas_Object *child)
{ {
Eina_Bool int_ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE;
int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), child); int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), child);
if (!int_ret) return EINA_FALSE; if (!int_ret) return EINA_FALSE;
_sizing_eval(obj); _sizing_eval(obj);

View File

@ -254,7 +254,7 @@ class Elm.Box (Elm.Widget)
Elm.Widget.focus_direction_manager_is; Elm.Widget.focus_direction_manager_is;
Elm.Widget.focus_next; Elm.Widget.focus_next;
Elm.Widget.theme_apply; Elm.Widget.theme_apply;
Elm.Widget.sub_object_del; Elm.Widget.widget_sub_object_del;
Elm.Widget.focus_register; Elm.Widget.focus_register;
} }
events { events {

View File

@ -207,7 +207,7 @@ class Elm.Ctxpopup (Efl.Ui.Layout, Elm.Interface.Atspi_Widget_Action,
Elm.Widget.focus_next_manager_is; Elm.Widget.focus_next_manager_is;
Elm.Widget.focus_next; Elm.Widget.focus_next;
Elm.Widget.disable; Elm.Widget.disable;
Elm.Widget.sub_object_add; Elm.Widget.widget_sub_object_add;
Elm.Widget.translate; Elm.Widget.translate;
Elm.Widget.theme_apply; Elm.Widget.theme_apply;
Elm.Widget.widget_event; Elm.Widget.widget_event;

View File

@ -873,14 +873,14 @@ _elm_diskselector_elm_widget_theme_apply(Eo *obj, Elm_Diskselector_Data *sd)
} }
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_elm_diskselector_elm_widget_sub_object_del(Eo *obj, Elm_Diskselector_Data *sd, Evas_Object *sobj) _elm_diskselector_elm_widget_widget_sub_object_del(Eo *obj, Elm_Diskselector_Data *sd, Evas_Object *sobj)
{ {
Eina_Bool int_ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE;
Elm_Diskselector_Item_Data *it; Elm_Diskselector_Item_Data *it;
const Eina_List *l; const Eina_List *l;
int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
if (!int_ret) return EINA_FALSE; if (!int_ret) return EINA_FALSE;
EINA_LIST_FOREACH(sd->items, l, it) EINA_LIST_FOREACH(sd->items, l, it)

View File

@ -207,7 +207,7 @@ class Elm.Diskselector (Elm.Widget, Elm.Interface_Scrollable,
Elm.Widget.theme_apply; Elm.Widget.theme_apply;
Elm.Widget.on_focus; Elm.Widget.on_focus;
Elm.Widget.translate; Elm.Widget.translate;
Elm.Widget.sub_object_del; Elm.Widget.widget_sub_object_del;
Elm.Widget.widget_event; Elm.Widget.widget_event;
Elm.Interface_Scrollable.policy { get; set; } Elm.Interface_Scrollable.policy { get; set; }
Elm.Interface.Atspi_Widget_Action.elm_actions { get; } Elm.Interface.Atspi_Widget_Action.elm_actions { get; }

View File

@ -1357,7 +1357,7 @@ _show_region_hook(void *data EINA_UNUSED, Evas_Object *obj, Eina_Rectangle r)
} }
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_elm_entry_elm_widget_sub_object_del(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, Evas_Object *sobj) _elm_entry_elm_widget_widget_sub_object_del(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, Evas_Object *sobj)
{ {
Eina_Bool ret = EINA_FALSE; Eina_Bool ret = EINA_FALSE;
/* unfortunately entry doesn't follow the signal pattern /* unfortunately entry doesn't follow the signal pattern
@ -1372,7 +1372,7 @@ _elm_entry_elm_widget_sub_object_del(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, E
elm_layout_signal_emit(obj, "elm,action,hide,end", "elm"); elm_layout_signal_emit(obj, "elm,action,hide,end", "elm");
} }
ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
if (!ret) return EINA_FALSE; if (!ret) return EINA_FALSE;
return EINA_TRUE; return EINA_TRUE;

View File

@ -963,7 +963,7 @@ class Elm.Entry (Efl.Ui.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable,
Elm.Widget.on_focus; Elm.Widget.on_focus;
Elm.Widget.on_focus_region; Elm.Widget.on_focus_region;
Elm.Widget.disable; Elm.Widget.disable;
Elm.Widget.sub_object_del; Elm.Widget.widget_sub_object_del;
Elm.Widget.focus_next_manager_is; Elm.Widget.focus_next_manager_is;
Elm.Interface_Scrollable.policy { set; } Elm.Interface_Scrollable.policy { set; }
Elm.Interface_Scrollable.bounce_allow { set; } Elm.Interface_Scrollable.bounce_allow { set; }

View File

@ -3197,7 +3197,7 @@ _key_action_escape(Evas_Object *obj, const char *params EINA_UNUSED)
} }
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_elm_genlist_elm_widget_sub_object_add(Eo *obj, Elm_Genlist_Data *_pd EINA_UNUSED, Evas_Object *sobj) _elm_genlist_elm_widget_widget_sub_object_add(Eo *obj, Elm_Genlist_Data *_pd EINA_UNUSED, Evas_Object *sobj)
{ {
/* skipping layout's code, which registers size hint changing /* skipping layout's code, which registers size hint changing
* callback on sub objects. this is here because items' * callback on sub objects. this is here because items'
@ -3205,11 +3205,11 @@ _elm_genlist_elm_widget_sub_object_add(Eo *obj, Elm_Genlist_Data *_pd EINA_UNUSE
* creation, thus issuing TOO MANY sizing_eval()'s here. they are * creation, thus issuing TOO MANY sizing_eval()'s here. they are
* not needed at here anyway, so let's skip listening to those * not needed at here anyway, so let's skip listening to those
* hints changes */ * hints changes */
return elm_obj_widget_sub_object_add(efl_cast(obj, ELM_WIDGET_CLASS), sobj); return elm_widget_sub_object_add(efl_cast(obj, ELM_WIDGET_CLASS), sobj);
} }
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_elm_genlist_elm_widget_sub_object_del(Eo *obj, Elm_Genlist_Data *sd, Evas_Object *sobj) _elm_genlist_elm_widget_widget_sub_object_del(Eo *obj, Elm_Genlist_Data *sd, Evas_Object *sobj)
{ {
Eina_Bool int_ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE;
@ -3218,7 +3218,7 @@ _elm_genlist_elm_widget_sub_object_del(Eo *obj, Elm_Genlist_Data *sd, Evas_Objec
* such) seem to issue a whole lot of deletions and Evas bitches * such) seem to issue a whole lot of deletions and Evas bitches
* about too many recalculations */ * about too many recalculations */
sd->on_sub_del = EINA_TRUE; sd->on_sub_del = EINA_TRUE;
int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
sd->on_sub_del = EINA_FALSE; sd->on_sub_del = EINA_FALSE;
return int_ret; return int_ret;
} }

View File

@ -534,13 +534,13 @@ class Elm.Genlist (Efl.Ui.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable,
Efl.Canvas.Group.group_member_add; Efl.Canvas.Group.group_member_add;
Elm.Widget.theme_apply; Elm.Widget.theme_apply;
Elm.Widget.focus_next_manager_is; Elm.Widget.focus_next_manager_is;
Elm.Widget.sub_object_add; Elm.Widget.widget_sub_object_add;
Elm.Widget.access; Elm.Widget.access;
Elm.Widget.focus_highlight_geometry_get; Elm.Widget.focus_highlight_geometry_get;
Elm.Widget.focus_next; Elm.Widget.focus_next;
Elm.Widget.on_focus; Elm.Widget.on_focus;
Elm.Widget.focus_direction_manager_is; Elm.Widget.focus_direction_manager_is;
Elm.Widget.sub_object_del; Elm.Widget.widget_sub_object_del;
Elm.Widget.widget_event; Elm.Widget.widget_event;
Elm.Widget.focused_item { get; } Elm.Widget.focused_item { get; }
Elm.Widget.item_loop_enabled { get; set; } Elm.Widget.item_loop_enabled { get; set; }

View File

@ -361,13 +361,13 @@ _on_smt_sub_changed(void *data,
} }
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_elm_hover_elm_widget_sub_object_add(Eo *obj, Elm_Hover_Data *sd, Evas_Object *sobj) _elm_hover_elm_widget_widget_sub_object_add(Eo *obj, Elm_Hover_Data *sd, Evas_Object *sobj)
{ {
Eina_Bool int_ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE;
if (evas_object_data_get(sobj, "elm-parent") == obj) return EINA_TRUE; if (evas_object_data_get(sobj, "elm-parent") == obj) return EINA_TRUE;
int_ret = elm_obj_widget_sub_object_add(efl_super(obj, MY_CLASS), sobj); int_ret = elm_widget_sub_object_add(efl_super(obj, MY_CLASS), sobj);
if (!int_ret) return EINA_FALSE; if (!int_ret) return EINA_FALSE;
if (sd->smt_sub && sd->smt_sub->obj == sobj) if (sd->smt_sub && sd->smt_sub->obj == sobj)
@ -378,11 +378,11 @@ _elm_hover_elm_widget_sub_object_add(Eo *obj, Elm_Hover_Data *sd, Evas_Object *s
} }
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_elm_hover_elm_widget_sub_object_del(Eo *obj, Elm_Hover_Data *sd, Evas_Object *sobj) _elm_hover_elm_widget_widget_sub_object_del(Eo *obj, Elm_Hover_Data *sd, Evas_Object *sobj)
{ {
Eina_Bool int_ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE;
int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
if (!int_ret) return EINA_FALSE; if (!int_ret) return EINA_FALSE;
if (sd->smt_sub && sd->smt_sub->obj == sobj) if (sd->smt_sub && sd->smt_sub->obj == sobj)

View File

@ -65,11 +65,11 @@ class Elm.Hover (Efl.Ui.Layout, Efl.Ui.Clickable, Elm.Interface.Atspi_Widget_Act
Efl.Gfx.position { set; } Efl.Gfx.position { set; }
Efl.Gfx.size { set; } Efl.Gfx.size { set; }
Elm.Widget.theme_apply; Elm.Widget.theme_apply;
Elm.Widget.sub_object_add; Elm.Widget.widget_sub_object_add;
Elm.Widget.widget_parent { get; set; } Elm.Widget.widget_parent { get; set; }
Elm.Widget.focus_direction_manager_is; Elm.Widget.focus_direction_manager_is;
Elm.Widget.focus_next_manager_is; Elm.Widget.focus_next_manager_is;
Elm.Widget.sub_object_del; Elm.Widget.widget_sub_object_del;
Elm.Widget.focus_manager_factory; Elm.Widget.focus_manager_factory;
Elm.Interface.Atspi_Widget_Action.elm_actions { get; } Elm.Interface.Atspi_Widget_Action.elm_actions { get; }
Efl.Part.part; Efl.Part.part;

View File

@ -1289,13 +1289,13 @@ _elm_list_elm_widget_on_focus(Eo *obj, Elm_List_Data *sd, Elm_Object_Item *item
} }
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_elm_list_elm_widget_sub_object_del(Eo *obj, Elm_List_Data *sd, Evas_Object *sobj) _elm_list_elm_widget_widget_sub_object_del(Eo *obj, Elm_List_Data *sd, Evas_Object *sobj)
{ {
const Eina_List *l; const Eina_List *l;
Elm_Object_Item *eo_it; Elm_Object_Item *eo_it;
Eina_Bool int_ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE;
int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
if (!int_ret) return EINA_FALSE; if (!int_ret) return EINA_FALSE;
if ((sobj == sd->box) || (sobj == obj)) goto end; if ((sobj == sd->box) || (sobj == obj)) goto end;

View File

@ -442,7 +442,7 @@ class Elm.List (Efl.Ui.Layout, Elm.Interface_Scrollable,
Elm.Widget.disable; Elm.Widget.disable;
Elm.Widget.on_focus; Elm.Widget.on_focus;
Elm.Widget.translate; Elm.Widget.translate;
Elm.Widget.sub_object_del; Elm.Widget.widget_sub_object_del;
Elm.Widget.widget_event; Elm.Widget.widget_event;
Elm.Widget.focused_item { get; } Elm.Widget.focused_item { get; }
Elm.Widget.item_loop_enabled { get; set; } Elm.Widget.item_loop_enabled { get; set; }

View File

@ -75,10 +75,10 @@ _elm_mapbuf_content_unset_internal(Elm_Mapbuf_Data *sd, Evas_Object *obj,
} }
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_elm_mapbuf_elm_widget_sub_object_del(Eo *obj, Elm_Mapbuf_Data *sd, Evas_Object *sobj) _elm_mapbuf_elm_widget_widget_sub_object_del(Eo *obj, Elm_Mapbuf_Data *sd, Evas_Object *sobj)
{ {
Eina_Bool int_ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE;
int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
if (!int_ret) return EINA_FALSE; if (!int_ret) return EINA_FALSE;
if (sobj == sd->content) if (sobj == sd->content)

View File

@ -120,7 +120,7 @@ class Elm.Mapbuf (Elm.Widget, Efl.Container, Efl.Part)
Efl.Gfx.position { set; } Efl.Gfx.position { set; }
Efl.Gfx.size { set; } Efl.Gfx.size { set; }
Elm.Widget.theme_apply; Elm.Widget.theme_apply;
Elm.Widget.sub_object_del; Elm.Widget.widget_sub_object_del;
Efl.Container.content { get; set; } Efl.Container.content { get; set; }
Efl.Container.content_unset; Efl.Container.content_unset;
Efl.Part.part; Efl.Part.part;

View File

@ -199,10 +199,10 @@ _changed_size_hints_cb(void *data,
} }
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_elm_notify_elm_widget_sub_object_del(Eo *obj, Elm_Notify_Data *sd, Evas_Object *sobj) _elm_notify_elm_widget_widget_sub_object_del(Eo *obj, Elm_Notify_Data *sd, Evas_Object *sobj)
{ {
Eina_Bool int_ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE;
int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
if (!int_ret) return EINA_FALSE; if (!int_ret) return EINA_FALSE;
if (sobj == sd->content) if (sobj == sd->content)

View File

@ -89,7 +89,7 @@ class Elm.Notify (Elm.Widget, Efl.Container, Efl.Part)
Elm.Widget.focus_direction_manager_is; Elm.Widget.focus_direction_manager_is;
Elm.Widget.focus_next_manager_is; Elm.Widget.focus_next_manager_is;
Elm.Widget.focus_next; Elm.Widget.focus_next;
Elm.Widget.sub_object_del; Elm.Widget.widget_sub_object_del;
Elm.Widget.part_text { get; set; } Elm.Widget.part_text { get; set; }
Efl.Container.content { get; set; } Efl.Container.content { get; set; }
Efl.Container.content_unset; Efl.Container.content_unset;

View File

@ -176,7 +176,7 @@ class Elm.Popup (Efl.Ui.Layout, Elm.Interface.Atspi_Widget_Action)
Elm.Widget.focus_next; Elm.Widget.focus_next;
Elm.Widget.widget_parent { set; } Elm.Widget.widget_parent { set; }
Elm.Widget.translate; Elm.Widget.translate;
Elm.Widget.sub_object_del; Elm.Widget.widget_sub_object_del;
Elm.Widget.widget_event; Elm.Widget.widget_event;
Efl.Canvas.Layout_Signal.signal_emit; Efl.Canvas.Layout_Signal.signal_emit;
Elm.Interface.Atspi_Widget_Action.elm_actions { get; } Elm.Interface.Atspi_Widget_Action.elm_actions { get; }

View File

@ -551,10 +551,10 @@ _changed_size_hints_cb(void *data,
} }
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_elm_scroller_elm_widget_sub_object_del(Eo *obj, Elm_Scroller_Data *sd, Evas_Object *sobj) _elm_scroller_elm_widget_widget_sub_object_del(Eo *obj, Elm_Scroller_Data *sd, Evas_Object *sobj)
{ {
Eina_Bool int_ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE;
int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
if (!int_ret) return EINA_FALSE; if (!int_ret) return EINA_FALSE;
if (sobj == sd->content) if (sobj == sd->content)

View File

@ -53,7 +53,7 @@ class Elm.Scroller (Efl.Ui.Layout, Elm.Interface_Scrollable,
Elm.Widget.focus_direction_manager_is; Elm.Widget.focus_direction_manager_is;
Elm.Widget.focus_next; Elm.Widget.focus_next;
Elm.Widget.focus_direction; Elm.Widget.focus_direction;
Elm.Widget.sub_object_del; Elm.Widget.widget_sub_object_del;
Elm.Widget.widget_event; Elm.Widget.widget_event;
Elm.Interface_Scrollable.page_size { set; } Elm.Interface_Scrollable.page_size { set; }
Elm.Interface_Scrollable.policy { set; } Elm.Interface_Scrollable.policy { set; }

View File

@ -148,11 +148,11 @@ _on_size_hints_changed(void *data,
} }
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_elm_table_elm_widget_sub_object_del(Eo *obj, void *_pd EINA_UNUSED, Evas_Object *child) _elm_table_elm_widget_widget_sub_object_del(Eo *obj, void *_pd EINA_UNUSED, Evas_Object *child)
{ {
Eina_Bool int_ret = EINA_FALSE; Eina_Bool int_ret = EINA_FALSE;
int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), child); int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), child);
if (!int_ret) return EINA_FALSE; if (!int_ret) return EINA_FALSE;
_sizing_eval(obj); _sizing_eval(obj);

View File

@ -126,7 +126,7 @@ class Elm.Table (Elm.Widget)
Elm.Widget.focus_next; Elm.Widget.focus_next;
Elm.Widget.focus_direction_manager_is; Elm.Widget.focus_direction_manager_is;
Elm.Widget.theme_apply; Elm.Widget.theme_apply;
Elm.Widget.sub_object_del; Elm.Widget.widget_sub_object_del;
Elm.Widget.focus_register; Elm.Widget.focus_register;
} }
} }

View File

@ -1376,7 +1376,7 @@ elm_widget_sub_object_parent_add(Evas_Object *sobj)
return EINA_FALSE; return EINA_FALSE;
} }
return elm_obj_widget_sub_object_add(parent, sobj); return elm_widget_sub_object_add(parent, sobj);
} }
/* /*
@ -1393,7 +1393,7 @@ elm_widget_sub_object_parent_add(Evas_Object *sobj)
* @see elm_widget_sub_object_parent_add() * @see elm_widget_sub_object_parent_add()
*/ */
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_elm_widget_sub_object_add(Eo *obj, Elm_Widget_Smart_Data *sd, Evas_Object *sobj) _elm_widget_widget_sub_object_add(Eo *obj, Elm_Widget_Smart_Data *sd, Evas_Object *sobj)
{ {
Eina_Bool mirrored, pmirrored = efl_ui_mirrored_get(obj); Eina_Bool mirrored, pmirrored = efl_ui_mirrored_get(obj);
@ -1515,7 +1515,7 @@ end:
} }
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_elm_widget_sub_object_del(Eo *obj, Elm_Widget_Smart_Data *sd, Evas_Object *sobj) _elm_widget_widget_sub_object_del(Eo *obj, Elm_Widget_Smart_Data *sd, Evas_Object *sobj)
{ {
Evas_Object *sobj_parent; Evas_Object *sobj_parent;

View File

@ -270,21 +270,6 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
} }
} }
sub_object_add {
[['Virtual' function handling sub objects being added.]]
return: bool; [[$true on success, $false otherwise]]
params {
@in sobj: Efl.Canvas.Object; [[Sub object]]
}
}
sub_object_del {
[['Virtual' function handling sub objects being removed.]]
return: bool; [[$true on success, $false otherwise]]
params {
@in sobj: Efl.Canvas.Object; [[Object to be deleted]]
}
}
/* Translation & Text API. */ /* Translation & Text API. */
translate @protected { translate @protected {
[[Virtual function handling language changes.]] [[Virtual function handling language changes.]]
@ -337,6 +322,34 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
} }
/* Internal hooks. */ /* Internal hooks. */
widget_sub_object_add @protected {
[[Virtual function handling sub objects being added.
Sub objects can be any canvas object, not necessarily widgets.
See also @.widget_parent.
]]
params {
@in sub_obj: Efl.Canvas.Object;
[[Sub object to be added. Not necessarily a widget itself.]]
}
return: bool; [[Indicates if the operation succeeded.]]
legacy: elm_widget_sub_object_add;
}
widget_sub_object_del @protected {
[[Virtual function handling sub objects being removed.
Sub objects can be any canvas object, not necessarily widgets.
See also @.widget_parent.
]]
params {
@in sub_obj: Efl.Canvas.Object;
[[Sub object to be removed. Should be a child of this widget.]]
}
return: bool; [[Indicates if the operation succeeded.]]
legacy: elm_widget_sub_object_del;
}
@property orientation { @property orientation {
[[Widget orientation]] [[Widget orientation]]
set { set {

View File

@ -361,10 +361,10 @@ typedef struct _Elm_Widget_Smart_Class
Elm_Object_Item **target_item, Elm_Object_Item **target_item,
double *weight); /**< 'Virtual' function handling passing focus to sub-objects <b>given a direction, in degrees</b> */ double *weight); /**< 'Virtual' function handling passing focus to sub-objects <b>given a direction, in degrees</b> */
Eina_Bool (*sub_object_add)(Evas_Object *obj, Eina_Bool (*widget_sub_object_add)(Evas_Object *obj,
Evas_Object *sobj); /**< 'Virtual' function handling sub objects being added */ Evas_Object *sobj); /**< 'Virtual' function handling sub objects being added */
Eina_Bool (*sub_object_del)(Evas_Object *obj, Eina_Bool (*widget_sub_object_del)(Evas_Object *obj,
Evas_Object *sobj); /**< 'Virtual' function handling sub objects being removed */ Evas_Object *sobj); /**< 'Virtual' function handling sub objects being removed */
void (*access)(Evas_Object *obj, void (*access)(Evas_Object *obj,
Eina_Bool is_access); /**< 'Virtual' function on the widget being set access */ Eina_Bool is_access); /**< 'Virtual' function on the widget being set access */