summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2017-08-23 20:41:37 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2017-08-23 20:56:37 +0900
commit3f9c239b277c5af10f33f262aabdd719e43dd99c (patch)
tree7a5c0db56222851f2b5fb6853c3bbed30478b168
parentc071fd453b01809d4cf6adec4fa2b839e63ef32a (diff)
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
-rw-r--r--src/lib/elementary/efl_ui_box.c4
-rw-r--r--src/lib/elementary/efl_ui_button.c4
-rw-r--r--src/lib/elementary/efl_ui_button.eo2
-rw-r--r--src/lib/elementary/efl_ui_check.c4
-rw-r--r--src/lib/elementary/efl_ui_check.eo2
-rw-r--r--src/lib/elementary/efl_ui_flip.c8
-rw-r--r--src/lib/elementary/efl_ui_flip.eo4
-rw-r--r--src/lib/elementary/efl_ui_layout.c14
-rw-r--r--src/lib/elementary/efl_ui_layout.eo4
-rw-r--r--src/lib/elementary/efl_ui_progressbar.c4
-rw-r--r--src/lib/elementary/efl_ui_progressbar.eo2
-rw-r--r--src/lib/elementary/efl_ui_text.c4
-rw-r--r--src/lib/elementary/efl_ui_text.eo2
-rw-r--r--src/lib/elementary/elc_ctxpopup.c6
-rw-r--r--src/lib/elementary/elc_popup.c4
-rw-r--r--src/lib/elementary/elm_box.c4
-rw-r--r--src/lib/elementary/elm_box.eo2
-rw-r--r--src/lib/elementary/elm_ctxpopup.eo2
-rw-r--r--src/lib/elementary/elm_diskselector.c4
-rw-r--r--src/lib/elementary/elm_diskselector.eo2
-rw-r--r--src/lib/elementary/elm_entry.c4
-rw-r--r--src/lib/elementary/elm_entry.eo2
-rw-r--r--src/lib/elementary/elm_genlist.c8
-rw-r--r--src/lib/elementary/elm_genlist.eo4
-rw-r--r--src/lib/elementary/elm_hover.c8
-rw-r--r--src/lib/elementary/elm_hover.eo4
-rw-r--r--src/lib/elementary/elm_list.c4
-rw-r--r--src/lib/elementary/elm_list.eo2
-rw-r--r--src/lib/elementary/elm_mapbuf.c4
-rw-r--r--src/lib/elementary/elm_mapbuf.eo2
-rw-r--r--src/lib/elementary/elm_notify.c4
-rw-r--r--src/lib/elementary/elm_notify.eo2
-rw-r--r--src/lib/elementary/elm_popup.eo2
-rw-r--r--src/lib/elementary/elm_scroller.c4
-rw-r--r--src/lib/elementary/elm_scroller.eo2
-rw-r--r--src/lib/elementary/elm_table.c4
-rw-r--r--src/lib/elementary/elm_table.eo2
-rw-r--r--src/lib/elementary/elm_widget.c6
-rw-r--r--src/lib/elementary/elm_widget.eo43
-rw-r--r--src/lib/elementary/elm_widget.h4
40 files changed, 105 insertions, 92 deletions
diff --git a/src/lib/elementary/efl_ui_box.c b/src/lib/elementary/efl_ui_box.c
index 07e3a1bd81..c9e51d1714 100644
--- a/src/lib/elementary/efl_ui_box.c
+++ b/src/lib/elementary/efl_ui_box.c
@@ -344,7 +344,7 @@ _efl_ui_box_efl_pack_linear_pack_before(Eo *obj, Efl_Ui_Box_Data *_pd EINA_UNUSE
344 344
345 if (!evas_object_box_insert_before(wd->resize_obj, subobj, existing)) 345 if (!evas_object_box_insert_before(wd->resize_obj, subobj, existing))
346 { 346 {
347 elm_obj_widget_sub_object_del(obj, subobj); 347 elm_widget_sub_object_del(obj, subobj);
348 return EINA_FALSE; 348 return EINA_FALSE;
349 } 349 }
350 350
@@ -361,7 +361,7 @@ _efl_ui_box_efl_pack_linear_pack_after(Eo *obj, Efl_Ui_Box_Data *_pd EINA_UNUSED
361 361
362 if (!evas_object_box_insert_after(wd->resize_obj, subobj, existing)) 362 if (!evas_object_box_insert_after(wd->resize_obj, subobj, existing))
363 { 363 {
364 elm_obj_widget_sub_object_del(obj, subobj); 364 elm_widget_sub_object_del(obj, subobj);
365 return EINA_FALSE; 365 return EINA_FALSE;
366 } 366 }
367 367
diff --git a/src/lib/elementary/efl_ui_button.c b/src/lib/elementary/efl_ui_button.c
index ffbf086857..b3a5c5d53d 100644
--- a/src/lib/elementary/efl_ui_button.c
+++ b/src/lib/elementary/efl_ui_button.c
@@ -136,11 +136,11 @@ _efl_ui_button_elm_widget_theme_apply(Eo *obj, Efl_Ui_Button_Data *_pd EINA_UNUS
136 * is elm.swallow.content, not elm.swallow.icon. Fix that whenever we 136 * is elm.swallow.content, not elm.swallow.icon. Fix that whenever we
137 * can changed the theme API */ 137 * can changed the theme API */
138EOLIAN static Eina_Bool 138EOLIAN static Eina_Bool
139_efl_ui_button_elm_widget_sub_object_del(Eo *obj, Efl_Ui_Button_Data *_pd EINA_UNUSED, Evas_Object *sobj) 139_efl_ui_button_elm_widget_widget_sub_object_del(Eo *obj, Efl_Ui_Button_Data *_pd EINA_UNUSED, Evas_Object *sobj)
140{ 140{
141 Eina_Bool int_ret = EINA_FALSE; 141 Eina_Bool int_ret = EINA_FALSE;
142 142
143 int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); 143 int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
144 if (!int_ret) return EINA_FALSE; 144 if (!int_ret) return EINA_FALSE;
145 145
146 _icon_signal_emit(obj); 146 _icon_signal_emit(obj);
diff --git a/src/lib/elementary/efl_ui_button.eo b/src/lib/elementary/efl_ui_button.eo
index 5694a831f7..81fd2504f9 100644
--- a/src/lib/elementary/efl_ui_button.eo
+++ b/src/lib/elementary/efl_ui_button.eo
@@ -20,7 +20,7 @@ class Efl.Ui.Button (Efl.Ui.Layout, Efl.Ui.Clickable, Efl.Ui.Autorepeat, Efl.Tex
20 Elm.Widget.focus_next_manager_is; 20 Elm.Widget.focus_next_manager_is;
21 Elm.Widget.focus_direction_manager_is; 21 Elm.Widget.focus_direction_manager_is;
22 Elm.Widget.theme_apply; 22 Elm.Widget.theme_apply;
23 Elm.Widget.sub_object_del; 23 Elm.Widget.widget_sub_object_del;
24 Elm.Widget.widget_event; 24 Elm.Widget.widget_event;
25 Elm.Interface.Atspi_Widget_Action.elm_actions { get; } 25 Elm.Interface.Atspi_Widget_Action.elm_actions { get; }
26 Efl.Part.part; 26 Efl.Part.part;
diff --git a/src/lib/elementary/efl_ui_check.c b/src/lib/elementary/efl_ui_check.c
index fb7d1d297a..8359e085f5 100644
--- a/src/lib/elementary/efl_ui_check.c
+++ b/src/lib/elementary/efl_ui_check.c
@@ -117,11 +117,11 @@ _efl_ui_check_elm_interface_atspi_accessible_state_set_get(Eo *obj, Efl_Ui_Check
117 * is elm.swallow.content, not elm.swallow.icon. Fix that whenever we 117 * is elm.swallow.content, not elm.swallow.icon. Fix that whenever we
118 * can changed the theme API */ 118 * can changed the theme API */
119EOLIAN static Eina_Bool 119EOLIAN static Eina_Bool
120_efl_ui_check_elm_widget_sub_object_del(Eo *obj, Efl_Ui_Check_Data *_pd EINA_UNUSED, Evas_Object *sobj) 120_efl_ui_check_elm_widget_widget_sub_object_del(Eo *obj, Efl_Ui_Check_Data *_pd EINA_UNUSED, Evas_Object *sobj)
121{ 121{
122 Eina_Bool int_ret = EINA_FALSE; 122 Eina_Bool int_ret = EINA_FALSE;
123 123
124 int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); 124 int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
125 if (!int_ret) return EINA_FALSE; 125 if (!int_ret) return EINA_FALSE;
126 126
127 _icon_signal_emit(obj); 127 _icon_signal_emit(obj);
diff --git a/src/lib/elementary/efl_ui_check.eo b/src/lib/elementary/efl_ui_check.eo
index 756a7722e8..0dc5f1303e 100644
--- a/src/lib/elementary/efl_ui_check.eo
+++ b/src/lib/elementary/efl_ui_check.eo
@@ -25,7 +25,7 @@ class Efl.Ui.Check (Efl.Ui.Nstate, Elm.Interface.Atspi_Widget_Action)
25 Efl.Object.constructor; 25 Efl.Object.constructor;
26 Elm.Widget.activate; 26 Elm.Widget.activate;
27 Elm.Widget.theme_apply; 27 Elm.Widget.theme_apply;
28 Elm.Widget.sub_object_del; 28 Elm.Widget.widget_sub_object_del;
29 Elm.Widget.widget_event; 29 Elm.Widget.widget_event;
30 Efl.Ui.Nstate.count { set; } 30 Efl.Ui.Nstate.count { set; }
31 Efl.Ui.Nstate.value { set; } 31 Efl.Ui.Nstate.value { set; }
diff --git a/src/lib/elementary/efl_ui_flip.c b/src/lib/elementary/efl_ui_flip.c
index 0e11c8e2d8..3f72c53bb5 100644
--- a/src/lib/elementary/efl_ui_flip.c
+++ b/src/lib/elementary/efl_ui_flip.c
@@ -168,14 +168,14 @@ _changed_size_hints_cb(void *data,
168} 168}
169 169
170EOLIAN static Eina_Bool 170EOLIAN static Eina_Bool
171_efl_ui_flip_elm_widget_sub_object_add(Eo *obj, Efl_Ui_Flip_Data *_pd EINA_UNUSED, Evas_Object *sobj) 171_efl_ui_flip_elm_widget_widget_sub_object_add(Eo *obj, Efl_Ui_Flip_Data *_pd EINA_UNUSED, Evas_Object *sobj)
172{ 172{
173 Eina_Bool int_ret = EINA_FALSE; 173 Eina_Bool int_ret = EINA_FALSE;
174 174
175 if (evas_object_data_get(sobj, "elm-parent") == obj) 175 if (evas_object_data_get(sobj, "elm-parent") == obj)
176 return EINA_TRUE; 176 return EINA_TRUE;
177 177
178 int_ret = elm_obj_widget_sub_object_add(efl_super(obj, MY_CLASS), sobj); 178 int_ret = elm_widget_sub_object_add(efl_super(obj, MY_CLASS), sobj);
179 if (!int_ret) return EINA_FALSE; 179 if (!int_ret) return EINA_FALSE;
180 180
181 evas_object_data_set(sobj, "_elm_leaveme", sobj); 181 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
188} 188}
189 189
190EOLIAN static Eina_Bool 190EOLIAN static Eina_Bool
191_efl_ui_flip_elm_widget_sub_object_del(Eo *obj, Efl_Ui_Flip_Data *sd, Evas_Object *sobj) 191_efl_ui_flip_elm_widget_widget_sub_object_del(Eo *obj, Efl_Ui_Flip_Data *sd, Evas_Object *sobj)
192{ 192{
193 Eina_Bool int_ret = EINA_FALSE; 193 Eina_Bool int_ret = EINA_FALSE;
194 194
195 195
196 int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); 196 int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
197 if (!int_ret) return EINA_FALSE; 197 if (!int_ret) return EINA_FALSE;
198 198
199 if (sobj == sd->front.content) 199 if (sobj == sd->front.content)
diff --git a/src/lib/elementary/efl_ui_flip.eo b/src/lib/elementary/efl_ui_flip.eo
index d6af798780..8fac6ab300 100644
--- a/src/lib/elementary/efl_ui_flip.eo
+++ b/src/lib/elementary/efl_ui_flip.eo
@@ -230,12 +230,12 @@ class Efl.Ui.Flip (Elm.Widget, Efl.Pack.Linear, Efl.Part)
230 class.constructor; 230 class.constructor;
231 Efl.Object.constructor; 231 Efl.Object.constructor;
232 Elm.Widget.focus_direction; 232 Elm.Widget.focus_direction;
233 Elm.Widget.sub_object_add; 233 Elm.Widget.widget_sub_object_add;
234 Elm.Widget.theme_apply; 234 Elm.Widget.theme_apply;
235 Elm.Widget.focus_direction_manager_is; 235 Elm.Widget.focus_direction_manager_is;
236 Elm.Widget.focus_next_manager_is; 236 Elm.Widget.focus_next_manager_is;
237 Elm.Widget.focus_next; 237 Elm.Widget.focus_next;
238 Elm.Widget.sub_object_del; 238 Elm.Widget.widget_sub_object_del;
239 Efl.Container.content_iterate; 239 Efl.Container.content_iterate;
240 Efl.Container.content_count; 240 Efl.Container.content_count;
241 Efl.Container.content_remove; 241 Efl.Container.content_remove;
diff --git a/src/lib/elementary/efl_ui_layout.c b/src/lib/elementary/efl_ui_layout.c
index d64f873112..45996df5e4 100644
--- a/src/lib/elementary/efl_ui_layout.c
+++ b/src/lib/elementary/efl_ui_layout.c
@@ -490,13 +490,13 @@ _efl_ui_layout_elm_widget_focus_next(Eo *obj, Efl_Ui_Layout_Data *sd, Elm_Focus_
490} 490}
491 491
492EOLIAN static Eina_Bool 492EOLIAN static Eina_Bool
493_efl_ui_layout_elm_widget_sub_object_add(Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED, Evas_Object *sobj) 493_efl_ui_layout_elm_widget_widget_sub_object_add(Eo *obj, Efl_Ui_Layout_Data *_pd EINA_UNUSED, Evas_Object *sobj)
494{ 494{
495 Eina_Bool int_ret = EINA_FALSE; 495 Eina_Bool int_ret = EINA_FALSE;
496 496
497 if (evas_object_data_get(sobj, "elm-parent") == obj) return EINA_TRUE; 497 if (evas_object_data_get(sobj, "elm-parent") == obj) return EINA_TRUE;
498 498
499 int_ret = elm_obj_widget_sub_object_add(efl_super(obj, MY_CLASS), sobj); 499 int_ret = elm_widget_sub_object_add(efl_super(obj, MY_CLASS), sobj);
500 if (!int_ret) return EINA_FALSE; 500 if (!int_ret) return EINA_FALSE;
501 501
502 evas_object_event_callback_add 502 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
507} 507}
508 508
509EOLIAN static Eina_Bool 509EOLIAN static Eina_Bool
510_efl_ui_layout_elm_widget_sub_object_del(Eo *obj, Efl_Ui_Layout_Data *sd, Evas_Object *sobj) 510_efl_ui_layout_elm_widget_widget_sub_object_del(Eo *obj, Efl_Ui_Layout_Data *sd, Evas_Object *sobj)
511{ 511{
512 Eina_List *l; 512 Eina_List *l;
513 Efl_Ui_Layout_Sub_Object_Data *sub_d; 513 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
520 (sobj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, 520 (sobj, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
521 _on_sub_object_size_hint_change, obj); 521 _on_sub_object_size_hint_change, obj);
522 522
523 int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); 523 int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
524 if (!int_ret) return EINA_FALSE; 524 if (!int_ret) return EINA_FALSE;
525 if (sd->destructed_is) return EINA_TRUE; 525 if (sd->destructed_is) return EINA_TRUE;
526 526
@@ -647,7 +647,7 @@ _sub_box_remove(Evas_Object *obj,
647 Efl_Ui_Layout_Sub_Object_Data *sub_d) 647 Efl_Ui_Layout_Sub_Object_Data *sub_d)
648{ 648{
649 Evas_Object *child = sub_d->obj; /* sub_d will die in 649 Evas_Object *child = sub_d->obj; /* sub_d will die in
650 * _efl_ui_layout_smart_sub_object_del */ 650 * _efl_ui_layout_smart_widget_sub_object_del */
651 651
652 if (sub_d->type == BOX_INSERT_BEFORE) 652 if (sub_d->type == BOX_INSERT_BEFORE)
653 evas_object_event_callback_del_full 653 evas_object_event_callback_del_full
@@ -692,7 +692,7 @@ _sub_table_remove(Evas_Object *obj,
692 Evas_Object *child; 692 Evas_Object *child;
693 ELM_WIDGET_DATA_GET_OR_RETURN(sd->obj, wd, NULL); 693 ELM_WIDGET_DATA_GET_OR_RETURN(sd->obj, wd, NULL);
694 694
695 child = sub_d->obj; /* sub_d will die in _efl_ui_layout_smart_sub_object_del */ 695 child = sub_d->obj; /* sub_d will die in _efl_ui_layout_smart_widget_sub_object_del */
696 696
697 edje_object_part_table_unpack 697 edje_object_part_table_unpack
698 (wd->resize_obj, sub_d->part, child); 698 (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)
1088 if (!sub_d->obj) return NULL; 1088 if (!sub_d->obj) return NULL;
1089 1089
1090 content = sub_d->obj; /* sub_d will die in 1090 content = sub_d->obj; /* sub_d will die in
1091 * _efl_ui_layout_smart_sub_object_del */ 1091 * _efl_ui_layout_smart_widget_sub_object_del */
1092 1092
1093 if (!_elm_widget_sub_object_redirect_to_top(obj, content)) 1093 if (!_elm_widget_sub_object_redirect_to_top(obj, content))
1094 { 1094 {
diff --git a/src/lib/elementary/efl_ui_layout.eo b/src/lib/elementary/efl_ui_layout.eo
index 7c6519900f..828929ccdb 100644
--- a/src/lib/elementary/efl_ui_layout.eo
+++ b/src/lib/elementary/efl_ui_layout.eo
@@ -59,13 +59,13 @@ class Efl.Ui.Layout (Elm.Widget, Efl.Part, Efl.Container, Efl.File,
59 Efl.Canvas.Layout_Group.group_size_min { get; } 59 Efl.Canvas.Layout_Group.group_size_min { get; }
60 Efl.Canvas.Layout_Group.group_size_max { get; } 60 Efl.Canvas.Layout_Group.group_size_max { get; }
61 Elm.Widget.focus_direction; 61 Elm.Widget.focus_direction;
62 Elm.Widget.sub_object_add; 62 Elm.Widget.widget_sub_object_add;
63 Elm.Widget.theme_apply; 63 Elm.Widget.theme_apply;
64 Elm.Widget.focus_direction_manager_is; 64 Elm.Widget.focus_direction_manager_is;
65 Elm.Widget.focus_next_manager_is; 65 Elm.Widget.focus_next_manager_is;
66 Elm.Widget.focus_next; 66 Elm.Widget.focus_next;
67 Elm.Widget.disable; 67 Elm.Widget.disable;
68 Elm.Widget.sub_object_del; 68 Elm.Widget.widget_sub_object_del;
69 Elm.Widget.on_focus; 69 Elm.Widget.on_focus;
70 Efl.Container.content_count; 70 Efl.Container.content_count;
71 Efl.Container.content_remove; 71 Efl.Container.content_remove;
diff --git a/src/lib/elementary/efl_ui_progressbar.c b/src/lib/elementary/efl_ui_progressbar.c
index d8dfc2c6fb..8af271bbbd 100644
--- a/src/lib/elementary/efl_ui_progressbar.c
+++ b/src/lib/elementary/efl_ui_progressbar.c
@@ -178,10 +178,10 @@ _icon_signal_emit(Evas_Object *obj)
178 * spot is elm.swallow.content, not elm.swallow.icon. Fix that 178 * spot is elm.swallow.content, not elm.swallow.icon. Fix that
179 * whenever we can changed the theme API */ 179 * whenever we can changed the theme API */
180EOLIAN static Eina_Bool 180EOLIAN static Eina_Bool
181_efl_ui_progressbar_elm_widget_sub_object_del(Eo *obj, Efl_Ui_Progressbar_Data *_pd EINA_UNUSED, Evas_Object *sobj) 181_efl_ui_progressbar_elm_widget_widget_sub_object_del(Eo *obj, Efl_Ui_Progressbar_Data *_pd EINA_UNUSED, Evas_Object *sobj)
182{ 182{
183 Eina_Bool int_ret = EINA_FALSE; 183 Eina_Bool int_ret = EINA_FALSE;
184 int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); 184 int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
185 if (!int_ret) return EINA_FALSE; 185 if (!int_ret) return EINA_FALSE;
186 186
187 _icon_signal_emit(obj); 187 _icon_signal_emit(obj);
diff --git a/src/lib/elementary/efl_ui_progressbar.eo b/src/lib/elementary/efl_ui_progressbar.eo
index 536891e0a4..dcd7f2fda0 100644
--- a/src/lib/elementary/efl_ui_progressbar.eo
+++ b/src/lib/elementary/efl_ui_progressbar.eo
@@ -52,7 +52,7 @@ class Efl.Ui.Progressbar (Efl.Ui.Layout, Efl.Ui.Range, Efl.Ui.Direction)
52 Elm.Widget.theme_apply; 52 Elm.Widget.theme_apply;
53 Elm.Widget.focus_next_manager_is; 53 Elm.Widget.focus_next_manager_is;
54 Elm.Widget.focus_direction_manager_is; 54 Elm.Widget.focus_direction_manager_is;
55 Elm.Widget.sub_object_del; 55 Elm.Widget.widget_sub_object_del;
56 Efl.Ui.Range.span_size { get; set; } 56 Efl.Ui.Range.span_size { get; set; }
57 Efl.Ui.Range.range_value { get; set; } 57 Efl.Ui.Range.range_value { get; set; }
58 Efl.Ui.Range.range_unit_format { get; set; } 58 Efl.Ui.Range.range_unit_format { get; set; }
diff --git a/src/lib/elementary/efl_ui_text.c b/src/lib/elementary/efl_ui_text.c
index 42131b01b0..2d0bbaa9a4 100644
--- a/src/lib/elementary/efl_ui_text.c
+++ b/src/lib/elementary/efl_ui_text.c
@@ -1240,7 +1240,7 @@ _show_region_hook(void *data EINA_UNUSED, Evas_Object *obj, Eina_Rectangle r)
1240} 1240}
1241 1241
1242EOLIAN static Eina_Bool 1242EOLIAN static Eina_Bool
1243_efl_ui_text_elm_widget_sub_object_del(Eo *obj, Efl_Ui_Text_Data *_pd EINA_UNUSED, Evas_Object *sobj) 1243_efl_ui_text_elm_widget_widget_sub_object_del(Eo *obj, Efl_Ui_Text_Data *_pd EINA_UNUSED, Evas_Object *sobj)
1244{ 1244{
1245 Eina_Bool ret = EINA_FALSE; 1245 Eina_Bool ret = EINA_FALSE;
1246 /* unfortunately entry doesn't follow the signal pattern 1246 /* 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
1255 elm_layout_signal_emit(obj, "elm,action,hide,end", "elm"); 1255 elm_layout_signal_emit(obj, "elm,action,hide,end", "elm");
1256 } 1256 }
1257 1257
1258 ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); 1258 ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
1259 if (!ret) return EINA_FALSE; 1259 if (!ret) return EINA_FALSE;
1260 1260
1261 return EINA_TRUE; 1261 return EINA_TRUE;
diff --git a/src/lib/elementary/efl_ui_text.eo b/src/lib/elementary/efl_ui_text.eo
index fded57327e..0c3d5ad8e7 100644
--- a/src/lib/elementary/efl_ui_text.eo
+++ b/src/lib/elementary/efl_ui_text.eo
@@ -413,7 +413,7 @@ class Efl.Ui.Text (Efl.Ui.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable,
413 Elm.Widget.on_focus; 413 Elm.Widget.on_focus;
414 Elm.Widget.on_focus_region; 414 Elm.Widget.on_focus_region;
415 Elm.Widget.disable; 415 Elm.Widget.disable;
416 Elm.Widget.sub_object_del; 416 Elm.Widget.widget_sub_object_del;
417 Elm.Widget.focus_next_manager_is; 417 Elm.Widget.focus_next_manager_is;
418 Elm.Interface_Scrollable.policy { set; } 418 Elm.Interface_Scrollable.policy { set; }
419 Elm.Interface_Scrollable.bounce_allow { set; } 419 Elm.Interface_Scrollable.bounce_allow { set; }
diff --git a/src/lib/elementary/elc_ctxpopup.c b/src/lib/elementary/elc_ctxpopup.c
index 1c856065f0..eb2e14fe3c 100644
--- a/src/lib/elementary/elc_ctxpopup.c
+++ b/src/lib/elementary/elc_ctxpopup.c
@@ -599,12 +599,12 @@ _base_shift_by_arrow(Evas_Object *arrow,
599} 599}
600 600
601EOLIAN static Eina_Bool 601EOLIAN static Eina_Bool
602_elm_ctxpopup_elm_widget_sub_object_add(Eo *obj, Elm_Ctxpopup_Data *_pd EINA_UNUSED, Evas_Object *sobj) 602_elm_ctxpopup_elm_widget_widget_sub_object_add(Eo *obj, Elm_Ctxpopup_Data *_pd EINA_UNUSED, Evas_Object *sobj)
603{ 603{
604 /* Skipping elm_layout sub_object_add in order to ignore size hint changes. 604 /* Skipping elm_layout widget_sub_object_add in order to ignore size hint changes.
605 * Note: It is not clear WHY we are doing this. Same reason as genlist? 605 * Note: It is not clear WHY we are doing this. Same reason as genlist?
606 */ 606 */
607 return elm_obj_widget_sub_object_add(efl_cast(obj, ELM_WIDGET_CLASS), sobj); 607 return elm_widget_sub_object_add(efl_cast(obj, ELM_WIDGET_CLASS), sobj);
608} 608}
609 609
610EOLIAN static void 610EOLIAN static void
diff --git a/src/lib/elementary/elc_popup.c b/src/lib/elementary/elc_popup.c
index 9718ed42ca..8819df0f7c 100644
--- a/src/lib/elementary/elc_popup.c
+++ b/src/lib/elementary/elc_popup.c
@@ -511,12 +511,12 @@ _elm_popup_efl_canvas_layout_signal_signal_emit(Eo *obj EINA_UNUSED, Elm_Popup_D
511} 511}
512 512
513EOLIAN static Eina_Bool 513EOLIAN static Eina_Bool
514_elm_popup_elm_widget_sub_object_del(Eo *obj, Elm_Popup_Data *sd, Evas_Object *sobj) 514_elm_popup_elm_widget_widget_sub_object_del(Eo *obj, Elm_Popup_Data *sd, Evas_Object *sobj)
515{ 515{
516 Elm_Popup_Item_Data *it; 516 Elm_Popup_Item_Data *it;
517 Eina_Bool int_ret = EINA_FALSE; 517 Eina_Bool int_ret = EINA_FALSE;
518 518
519 int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); 519 int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
520 if (!int_ret) return EINA_FALSE; 520 if (!int_ret) return EINA_FALSE;
521 521
522 if (sobj == sd->title_icon) 522 if (sobj == sd->title_icon)
diff --git a/src/lib/elementary/elm_box.c b/src/lib/elementary/elm_box.c
index cda4c9eac4..fe45d074a1 100644
--- a/src/lib/elementary/elm_box.c
+++ b/src/lib/elementary/elm_box.c
@@ -154,11 +154,11 @@ _on_size_hints_changed(void *data,
154} 154}
155 155
156EOLIAN static Eina_Bool 156EOLIAN static Eina_Bool
157_elm_box_elm_widget_sub_object_del(Eo *obj, Elm_Box_Data *_pd EINA_UNUSED, Evas_Object *child) 157_elm_box_elm_widget_widget_sub_object_del(Eo *obj, Elm_Box_Data *_pd EINA_UNUSED, Evas_Object *child)
158{ 158{
159 Eina_Bool int_ret = EINA_FALSE; 159 Eina_Bool int_ret = EINA_FALSE;
160 160
161 int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), child); 161 int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), child);
162 if (!int_ret) return EINA_FALSE; 162 if (!int_ret) return EINA_FALSE;
163 163
164 _sizing_eval(obj); 164 _sizing_eval(obj);
diff --git a/src/lib/elementary/elm_box.eo b/src/lib/elementary/elm_box.eo
index 7463045ba7..efdb2e3838 100644
--- a/src/lib/elementary/elm_box.eo
+++ b/src/lib/elementary/elm_box.eo
@@ -254,7 +254,7 @@ class Elm.Box (Elm.Widget)
254 Elm.Widget.focus_direction_manager_is; 254 Elm.Widget.focus_direction_manager_is;
255 Elm.Widget.focus_next; 255 Elm.Widget.focus_next;
256 Elm.Widget.theme_apply; 256 Elm.Widget.theme_apply;
257 Elm.Widget.sub_object_del; 257 Elm.Widget.widget_sub_object_del;
258 Elm.Widget.focus_register; 258 Elm.Widget.focus_register;
259 } 259 }
260 events { 260 events {
diff --git a/src/lib/elementary/elm_ctxpopup.eo b/src/lib/elementary/elm_ctxpopup.eo
index 2f3740f8c7..bbf06b1469 100644
--- a/src/lib/elementary/elm_ctxpopup.eo
+++ b/src/lib/elementary/elm_ctxpopup.eo
@@ -207,7 +207,7 @@ class Elm.Ctxpopup (Efl.Ui.Layout, Elm.Interface.Atspi_Widget_Action,
207 Elm.Widget.focus_next_manager_is; 207 Elm.Widget.focus_next_manager_is;
208 Elm.Widget.focus_next; 208 Elm.Widget.focus_next;
209 Elm.Widget.disable; 209 Elm.Widget.disable;
210 Elm.Widget.sub_object_add; 210 Elm.Widget.widget_sub_object_add;
211 Elm.Widget.translate; 211 Elm.Widget.translate;
212 Elm.Widget.theme_apply; 212 Elm.Widget.theme_apply;
213 Elm.Widget.widget_event; 213 Elm.Widget.widget_event;
diff --git a/src/lib/elementary/elm_diskselector.c b/src/lib/elementary/elm_diskselector.c
index c31707e776..7563c05d8b 100644
--- a/src/lib/elementary/elm_diskselector.c
+++ b/src/lib/elementary/elm_diskselector.c
@@ -873,14 +873,14 @@ _elm_diskselector_elm_widget_theme_apply(Eo *obj, Elm_Diskselector_Data *sd)
873} 873}
874 874
875EOLIAN static Eina_Bool 875EOLIAN static Eina_Bool
876_elm_diskselector_elm_widget_sub_object_del(Eo *obj, Elm_Diskselector_Data *sd, Evas_Object *sobj) 876_elm_diskselector_elm_widget_widget_sub_object_del(Eo *obj, Elm_Diskselector_Data *sd, Evas_Object *sobj)
877{ 877{
878 Eina_Bool int_ret = EINA_FALSE; 878 Eina_Bool int_ret = EINA_FALSE;
879 879
880 Elm_Diskselector_Item_Data *it; 880 Elm_Diskselector_Item_Data *it;
881 const Eina_List *l; 881 const Eina_List *l;
882 882
883 int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); 883 int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
884 if (!int_ret) return EINA_FALSE; 884 if (!int_ret) return EINA_FALSE;
885 885
886 EINA_LIST_FOREACH(sd->items, l, it) 886 EINA_LIST_FOREACH(sd->items, l, it)
diff --git a/src/lib/elementary/elm_diskselector.eo b/src/lib/elementary/elm_diskselector.eo
index edc939b702..9cf2be91e1 100644
--- a/src/lib/elementary/elm_diskselector.eo
+++ b/src/lib/elementary/elm_diskselector.eo
@@ -207,7 +207,7 @@ class Elm.Diskselector (Elm.Widget, Elm.Interface_Scrollable,
207 Elm.Widget.theme_apply; 207 Elm.Widget.theme_apply;
208 Elm.Widget.on_focus; 208 Elm.Widget.on_focus;
209 Elm.Widget.translate; 209 Elm.Widget.translate;
210 Elm.Widget.sub_object_del; 210 Elm.Widget.widget_sub_object_del;
211 Elm.Widget.widget_event; 211 Elm.Widget.widget_event;
212 Elm.Interface_Scrollable.policy { get; set; } 212 Elm.Interface_Scrollable.policy { get; set; }
213 Elm.Interface.Atspi_Widget_Action.elm_actions { get; } 213 Elm.Interface.Atspi_Widget_Action.elm_actions { get; }
diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c
index a203d0d170..7862ffb9d9 100644
--- a/src/lib/elementary/elm_entry.c
+++ b/src/lib/elementary/elm_entry.c
@@ -1357,7 +1357,7 @@ _show_region_hook(void *data EINA_UNUSED, Evas_Object *obj, Eina_Rectangle r)
1357} 1357}
1358 1358
1359EOLIAN static Eina_Bool 1359EOLIAN static Eina_Bool
1360_elm_entry_elm_widget_sub_object_del(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, Evas_Object *sobj) 1360_elm_entry_elm_widget_widget_sub_object_del(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, Evas_Object *sobj)
1361{ 1361{
1362 Eina_Bool ret = EINA_FALSE; 1362 Eina_Bool ret = EINA_FALSE;
1363 /* unfortunately entry doesn't follow the signal pattern 1363 /* 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
1372 elm_layout_signal_emit(obj, "elm,action,hide,end", "elm"); 1372 elm_layout_signal_emit(obj, "elm,action,hide,end", "elm");
1373 } 1373 }
1374 1374
1375 ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); 1375 ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
1376 if (!ret) return EINA_FALSE; 1376 if (!ret) return EINA_FALSE;
1377 1377
1378 return EINA_TRUE; 1378 return EINA_TRUE;
diff --git a/src/lib/elementary/elm_entry.eo b/src/lib/elementary/elm_entry.eo
index 7fecf8f542..6fdc418e66 100644
--- a/src/lib/elementary/elm_entry.eo
+++ b/src/lib/elementary/elm_entry.eo
@@ -963,7 +963,7 @@ class Elm.Entry (Efl.Ui.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable,
963 Elm.Widget.on_focus; 963 Elm.Widget.on_focus;
964 Elm.Widget.on_focus_region; 964 Elm.Widget.on_focus_region;
965 Elm.Widget.disable; 965 Elm.Widget.disable;
966 Elm.Widget.sub_object_del; 966 Elm.Widget.widget_sub_object_del;
967 Elm.Widget.focus_next_manager_is; 967 Elm.Widget.focus_next_manager_is;
968 Elm.Interface_Scrollable.policy { set; } 968 Elm.Interface_Scrollable.policy { set; }
969 Elm.Interface_Scrollable.bounce_allow { set; } 969 Elm.Interface_Scrollable.bounce_allow { set; }
diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c
index 99d2b9a8ec..b6e708e058 100644
--- a/src/lib/elementary/elm_genlist.c
+++ b/src/lib/elementary/elm_genlist.c
@@ -3197,7 +3197,7 @@ _key_action_escape(Evas_Object *obj, const char *params EINA_UNUSED)
3197} 3197}
3198 3198
3199EOLIAN static Eina_Bool 3199EOLIAN static Eina_Bool
3200_elm_genlist_elm_widget_sub_object_add(Eo *obj, Elm_Genlist_Data *_pd EINA_UNUSED, Evas_Object *sobj) 3200_elm_genlist_elm_widget_widget_sub_object_add(Eo *obj, Elm_Genlist_Data *_pd EINA_UNUSED, Evas_Object *sobj)
3201{ 3201{
3202 /* skipping layout's code, which registers size hint changing 3202 /* skipping layout's code, which registers size hint changing
3203 * callback on sub objects. this is here because items' 3203 * 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
3205 * creation, thus issuing TOO MANY sizing_eval()'s here. they are 3205 * creation, thus issuing TOO MANY sizing_eval()'s here. they are
3206 * not needed at here anyway, so let's skip listening to those 3206 * not needed at here anyway, so let's skip listening to those
3207 * hints changes */ 3207 * hints changes */
3208 return elm_obj_widget_sub_object_add(efl_cast(obj, ELM_WIDGET_CLASS), sobj); 3208 return elm_widget_sub_object_add(efl_cast(obj, ELM_WIDGET_CLASS), sobj);
3209} 3209}
3210 3210
3211EOLIAN static Eina_Bool 3211EOLIAN static Eina_Bool
3212_elm_genlist_elm_widget_sub_object_del(Eo *obj, Elm_Genlist_Data *sd, Evas_Object *sobj) 3212_elm_genlist_elm_widget_widget_sub_object_del(Eo *obj, Elm_Genlist_Data *sd, Evas_Object *sobj)
3213{ 3213{
3214 Eina_Bool int_ret = EINA_FALSE; 3214 Eina_Bool int_ret = EINA_FALSE;
3215 3215
@@ -3218,7 +3218,7 @@ _elm_genlist_elm_widget_sub_object_del(Eo *obj, Elm_Genlist_Data *sd, Evas_Objec
3218 * such) seem to issue a whole lot of deletions and Evas bitches 3218 * such) seem to issue a whole lot of deletions and Evas bitches
3219 * about too many recalculations */ 3219 * about too many recalculations */
3220 sd->on_sub_del = EINA_TRUE; 3220 sd->on_sub_del = EINA_TRUE;
3221 int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); 3221 int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
3222 sd->on_sub_del = EINA_FALSE; 3222 sd->on_sub_del = EINA_FALSE;
3223 return int_ret; 3223 return int_ret;
3224} 3224}
diff --git a/src/lib/elementary/elm_genlist.eo b/src/lib/elementary/elm_genlist.eo
index 44bb787d15..9740f35a41 100644
--- a/src/lib/elementary/elm_genlist.eo
+++ b/src/lib/elementary/elm_genlist.eo
@@ -534,13 +534,13 @@ class Elm.Genlist (Efl.Ui.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable,
534 Efl.Canvas.Group.group_member_add; 534 Efl.Canvas.Group.group_member_add;
535 Elm.Widget.theme_apply; 535 Elm.Widget.theme_apply;
536 Elm.Widget.focus_next_manager_is; 536 Elm.Widget.focus_next_manager_is;
537 Elm.Widget.sub_object_add; 537 Elm.Widget.widget_sub_object_add;
538 Elm.Widget.access; 538 Elm.Widget.access;
539 Elm.Widget.focus_highlight_geometry_get; 539 Elm.Widget.focus_highlight_geometry_get;
540 Elm.Widget.focus_next; 540 Elm.Widget.focus_next;
541 Elm.Widget.on_focus; 541 Elm.Widget.on_focus;
542 Elm.Widget.focus_direction_manager_is; 542 Elm.Widget.focus_direction_manager_is;
543 Elm.Widget.sub_object_del; 543 Elm.Widget.widget_sub_object_del;
544 Elm.Widget.widget_event; 544 Elm.Widget.widget_event;
545 Elm.Widget.focused_item { get; } 545 Elm.Widget.focused_item { get; }
546 Elm.Widget.item_loop_enabled { get; set; } 546 Elm.Widget.item_loop_enabled { get; set; }
diff --git a/src/lib/elementary/elm_hover.c b/src/lib/elementary/elm_hover.c
index ccec32ecee..22c802f242 100644
--- a/src/lib/elementary/elm_hover.c
+++ b/src/lib/elementary/elm_hover.c
@@ -361,13 +361,13 @@ _on_smt_sub_changed(void *data,
361} 361}
362 362
363EOLIAN static Eina_Bool 363EOLIAN static Eina_Bool
364_elm_hover_elm_widget_sub_object_add(Eo *obj, Elm_Hover_Data *sd, Evas_Object *sobj) 364_elm_hover_elm_widget_widget_sub_object_add(Eo *obj, Elm_Hover_Data *sd, Evas_Object *sobj)
365{ 365{
366 Eina_Bool int_ret = EINA_FALSE; 366 Eina_Bool int_ret = EINA_FALSE;
367 367
368 if (evas_object_data_get(sobj, "elm-parent") == obj) return EINA_TRUE; 368 if (evas_object_data_get(sobj, "elm-parent") == obj) return EINA_TRUE;
369 369
370 int_ret = elm_obj_widget_sub_object_add(efl_super(obj, MY_CLASS), sobj); 370 int_ret = elm_widget_sub_object_add(efl_super(obj, MY_CLASS), sobj);
371 if (!int_ret) return EINA_FALSE; 371 if (!int_ret) return EINA_FALSE;
372 372
373 if (sd->smt_sub && sd->smt_sub->obj == sobj) 373 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
378} 378}
379 379
380EOLIAN static Eina_Bool 380EOLIAN static Eina_Bool
381_elm_hover_elm_widget_sub_object_del(Eo *obj, Elm_Hover_Data *sd, Evas_Object *sobj) 381_elm_hover_elm_widget_widget_sub_object_del(Eo *obj, Elm_Hover_Data *sd, Evas_Object *sobj)
382{ 382{
383 Eina_Bool int_ret = EINA_FALSE; 383 Eina_Bool int_ret = EINA_FALSE;
384 384
385 int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); 385 int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
386 if (!int_ret) return EINA_FALSE; 386 if (!int_ret) return EINA_FALSE;
387 387
388 if (sd->smt_sub && sd->smt_sub->obj == sobj) 388 if (sd->smt_sub && sd->smt_sub->obj == sobj)
diff --git a/src/lib/elementary/elm_hover.eo b/src/lib/elementary/elm_hover.eo
index b919a5392e..335c7c6006 100644
--- a/src/lib/elementary/elm_hover.eo
+++ b/src/lib/elementary/elm_hover.eo
@@ -65,11 +65,11 @@ class Elm.Hover (Efl.Ui.Layout, Efl.Ui.Clickable, Elm.Interface.Atspi_Widget_Act
65 Efl.Gfx.position { set; } 65 Efl.Gfx.position { set; }
66 Efl.Gfx.size { set; } 66 Efl.Gfx.size { set; }
67 Elm.Widget.theme_apply; 67 Elm.Widget.theme_apply;
68 Elm.Widget.sub_object_add; 68 Elm.Widget.widget_sub_object_add;
69 Elm.Widget.widget_parent { get; set; } 69 Elm.Widget.widget_parent { get; set; }
70 Elm.Widget.focus_direction_manager_is; 70 Elm.Widget.focus_direction_manager_is;
71 Elm.Widget.focus_next_manager_is; 71 Elm.Widget.focus_next_manager_is;
72 Elm.Widget.sub_object_del; 72 Elm.Widget.widget_sub_object_del;
73 Elm.Widget.focus_manager_factory; 73 Elm.Widget.focus_manager_factory;
74 Elm.Interface.Atspi_Widget_Action.elm_actions { get; } 74 Elm.Interface.Atspi_Widget_Action.elm_actions { get; }
75 Efl.Part.part; 75 Efl.Part.part;
diff --git a/src/lib/elementary/elm_list.c b/src/lib/elementary/elm_list.c
index 789a025918..fa56185702 100644
--- a/src/lib/elementary/elm_list.c
+++ b/src/lib/elementary/elm_list.c
@@ -1289,13 +1289,13 @@ _elm_list_elm_widget_on_focus(Eo *obj, Elm_List_Data *sd, Elm_Object_Item *item
1289} 1289}
1290 1290
1291EOLIAN static Eina_Bool 1291EOLIAN static Eina_Bool
1292_elm_list_elm_widget_sub_object_del(Eo *obj, Elm_List_Data *sd, Evas_Object *sobj) 1292_elm_list_elm_widget_widget_sub_object_del(Eo *obj, Elm_List_Data *sd, Evas_Object *sobj)
1293{ 1293{
1294 const Eina_List *l; 1294 const Eina_List *l;
1295 Elm_Object_Item *eo_it; 1295 Elm_Object_Item *eo_it;
1296 1296
1297 Eina_Bool int_ret = EINA_FALSE; 1297 Eina_Bool int_ret = EINA_FALSE;
1298 int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); 1298 int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
1299 if (!int_ret) return EINA_FALSE; 1299 if (!int_ret) return EINA_FALSE;
1300 1300
1301 if ((sobj == sd->box) || (sobj == obj)) goto end; 1301 if ((sobj == sd->box) || (sobj == obj)) goto end;
diff --git a/src/lib/elementary/elm_list.eo b/src/lib/elementary/elm_list.eo
index 646cbdd3bd..36edc572d8 100644
--- a/src/lib/elementary/elm_list.eo
+++ b/src/lib/elementary/elm_list.eo
@@ -442,7 +442,7 @@ class Elm.List (Efl.Ui.Layout, Elm.Interface_Scrollable,
442 Elm.Widget.disable; 442 Elm.Widget.disable;
443 Elm.Widget.on_focus; 443 Elm.Widget.on_focus;
444 Elm.Widget.translate; 444 Elm.Widget.translate;
445 Elm.Widget.sub_object_del; 445 Elm.Widget.widget_sub_object_del;
446 Elm.Widget.widget_event; 446 Elm.Widget.widget_event;
447 Elm.Widget.focused_item { get; } 447 Elm.Widget.focused_item { get; }
448 Elm.Widget.item_loop_enabled { get; set; } 448 Elm.Widget.item_loop_enabled { get; set; }
diff --git a/src/lib/elementary/elm_mapbuf.c b/src/lib/elementary/elm_mapbuf.c
index 352b0df59a..f3f9302f19 100644
--- a/src/lib/elementary/elm_mapbuf.c
+++ b/src/lib/elementary/elm_mapbuf.c
@@ -75,10 +75,10 @@ _elm_mapbuf_content_unset_internal(Elm_Mapbuf_Data *sd, Evas_Object *obj,
75} 75}
76 76
77EOLIAN static Eina_Bool 77EOLIAN static Eina_Bool
78_elm_mapbuf_elm_widget_sub_object_del(Eo *obj, Elm_Mapbuf_Data *sd, Evas_Object *sobj) 78_elm_mapbuf_elm_widget_widget_sub_object_del(Eo *obj, Elm_Mapbuf_Data *sd, Evas_Object *sobj)
79{ 79{
80 Eina_Bool int_ret = EINA_FALSE; 80 Eina_Bool int_ret = EINA_FALSE;
81 int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); 81 int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
82 if (!int_ret) return EINA_FALSE; 82 if (!int_ret) return EINA_FALSE;
83 83
84 if (sobj == sd->content) 84 if (sobj == sd->content)
diff --git a/src/lib/elementary/elm_mapbuf.eo b/src/lib/elementary/elm_mapbuf.eo
index 7c444bb0a9..4f9966dac2 100644
--- a/src/lib/elementary/elm_mapbuf.eo
+++ b/src/lib/elementary/elm_mapbuf.eo
@@ -120,7 +120,7 @@ class Elm.Mapbuf (Elm.Widget, Efl.Container, Efl.Part)
120 Efl.Gfx.position { set; } 120 Efl.Gfx.position { set; }
121 Efl.Gfx.size { set; } 121 Efl.Gfx.size { set; }
122 Elm.Widget.theme_apply; 122 Elm.Widget.theme_apply;
123 Elm.Widget.sub_object_del; 123 Elm.Widget.widget_sub_object_del;
124 Efl.Container.content { get; set; } 124 Efl.Container.content { get; set; }
125 Efl.Container.content_unset; 125 Efl.Container.content_unset;
126 Efl.Part.part; 126 Efl.Part.part;
diff --git a/src/lib/elementary/elm_notify.c b/src/lib/elementary/elm_notify.c
index 0e178a1297..8c4958b4c7 100644
--- a/src/lib/elementary/elm_notify.c
+++ b/src/lib/elementary/elm_notify.c
@@ -199,10 +199,10 @@ _changed_size_hints_cb(void *data,
199} 199}
200 200
201EOLIAN static Eina_Bool 201EOLIAN static Eina_Bool
202_elm_notify_elm_widget_sub_object_del(Eo *obj, Elm_Notify_Data *sd, Evas_Object *sobj) 202_elm_notify_elm_widget_widget_sub_object_del(Eo *obj, Elm_Notify_Data *sd, Evas_Object *sobj)
203{ 203{
204 Eina_Bool int_ret = EINA_FALSE; 204 Eina_Bool int_ret = EINA_FALSE;
205 int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); 205 int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
206 if (!int_ret) return EINA_FALSE; 206 if (!int_ret) return EINA_FALSE;
207 207
208 if (sobj == sd->content) 208 if (sobj == sd->content)
diff --git a/src/lib/elementary/elm_notify.eo b/src/lib/elementary/elm_notify.eo
index dbf849b8c0..c95468b5bc 100644
--- a/src/lib/elementary/elm_notify.eo
+++ b/src/lib/elementary/elm_notify.eo
@@ -89,7 +89,7 @@ class Elm.Notify (Elm.Widget, Efl.Container, Efl.Part)
89 Elm.Widget.focus_direction_manager_is; 89 Elm.Widget.focus_direction_manager_is;
90 Elm.Widget.focus_next_manager_is; 90 Elm.Widget.focus_next_manager_is;
91 Elm.Widget.focus_next; 91 Elm.Widget.focus_next;
92 Elm.Widget.sub_object_del; 92 Elm.Widget.widget_sub_object_del;
93 Elm.Widget.part_text { get; set; } 93 Elm.Widget.part_text { get; set; }
94 Efl.Container.content { get; set; } 94 Efl.Container.content { get; set; }
95 Efl.Container.content_unset; 95 Efl.Container.content_unset;
diff --git a/src/lib/elementary/elm_popup.eo b/src/lib/elementary/elm_popup.eo
index 2700cd8cce..8592d8cde3 100644
--- a/src/lib/elementary/elm_popup.eo
+++ b/src/lib/elementary/elm_popup.eo
@@ -176,7 +176,7 @@ class Elm.Popup (Efl.Ui.Layout, Elm.Interface.Atspi_Widget_Action)
176 Elm.Widget.focus_next; 176 Elm.Widget.focus_next;
177 Elm.Widget.widget_parent { set; } 177 Elm.Widget.widget_parent { set; }
178 Elm.Widget.translate; 178 Elm.Widget.translate;
179 Elm.Widget.sub_object_del; 179 Elm.Widget.widget_sub_object_del;
180 Elm.Widget.widget_event; 180 Elm.Widget.widget_event;
181 Efl.Canvas.Layout_Signal.signal_emit; 181 Efl.Canvas.Layout_Signal.signal_emit;
182 Elm.Interface.Atspi_Widget_Action.elm_actions { get; } 182 Elm.Interface.Atspi_Widget_Action.elm_actions { get; }
diff --git a/src/lib/elementary/elm_scroller.c b/src/lib/elementary/elm_scroller.c
index 7c17b40c60..02c79bd8b2 100644
--- a/src/lib/elementary/elm_scroller.c
+++ b/src/lib/elementary/elm_scroller.c
@@ -551,10 +551,10 @@ _changed_size_hints_cb(void *data,
551} 551}
552 552
553EOLIAN static Eina_Bool 553EOLIAN static Eina_Bool
554_elm_scroller_elm_widget_sub_object_del(Eo *obj, Elm_Scroller_Data *sd, Evas_Object *sobj) 554_elm_scroller_elm_widget_widget_sub_object_del(Eo *obj, Elm_Scroller_Data *sd, Evas_Object *sobj)
555{ 555{
556 Eina_Bool int_ret = EINA_FALSE; 556 Eina_Bool int_ret = EINA_FALSE;
557 int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj); 557 int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
558 if (!int_ret) return EINA_FALSE; 558 if (!int_ret) return EINA_FALSE;
559 559
560 if (sobj == sd->content) 560 if (sobj == sd->content)
diff --git a/src/lib/elementary/elm_scroller.eo b/src/lib/elementary/elm_scroller.eo
index ad39dc6640..430b4cf148 100644
--- a/src/lib/elementary/elm_scroller.eo
+++ b/src/lib/elementary/elm_scroller.eo
@@ -53,7 +53,7 @@ class Elm.Scroller (Efl.Ui.Layout, Elm.Interface_Scrollable,
53 Elm.Widget.focus_direction_manager_is; 53 Elm.Widget.focus_direction_manager_is;
54 Elm.Widget.focus_next; 54 Elm.Widget.focus_next;
55 Elm.Widget.focus_direction; 55 Elm.Widget.focus_direction;
56 Elm.Widget.sub_object_del; 56 Elm.Widget.widget_sub_object_del;
57 Elm.Widget.widget_event; 57 Elm.Widget.widget_event;
58 Elm.Interface_Scrollable.page_size { set; } 58 Elm.Interface_Scrollable.page_size { set; }
59 Elm.Interface_Scrollable.policy { set; } 59 Elm.Interface_Scrollable.policy { set; }
diff --git a/src/lib/elementary/elm_table.c b/src/lib/elementary/elm_table.c
index 7c54b94e1a..fe71dbd7a3 100644
--- a/src/lib/elementary/elm_table.c
+++ b/src/lib/elementary/elm_table.c
@@ -148,11 +148,11 @@ _on_size_hints_changed(void *data,
148} 148}
149 149
150EOLIAN static Eina_Bool 150EOLIAN static Eina_Bool
151_elm_table_elm_widget_sub_object_del(Eo *obj, void *_pd EINA_UNUSED, Evas_Object *child) 151_elm_table_elm_widget_widget_sub_object_del(Eo *obj, void *_pd EINA_UNUSED, Evas_Object *child)
152{ 152{
153 Eina_Bool int_ret = EINA_FALSE; 153 Eina_Bool int_ret = EINA_FALSE;
154 154
155 int_ret = elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), child); 155 int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), child);
156 if (!int_ret) return EINA_FALSE; 156 if (!int_ret) return EINA_FALSE;
157 157
158 _sizing_eval(obj); 158 _sizing_eval(obj);
diff --git a/src/lib/elementary/elm_table.eo b/src/lib/elementary/elm_table.eo
index 775cf92226..9354068630 100644
--- a/src/lib/elementary/elm_table.eo
+++ b/src/lib/elementary/elm_table.eo
@@ -126,7 +126,7 @@ class Elm.Table (Elm.Widget)
126 Elm.Widget.focus_next; 126 Elm.Widget.focus_next;
127 Elm.Widget.focus_direction_manager_is; 127 Elm.Widget.focus_direction_manager_is;
128 Elm.Widget.theme_apply; 128 Elm.Widget.theme_apply;
129 Elm.Widget.sub_object_del; 129 Elm.Widget.widget_sub_object_del;
130 Elm.Widget.focus_register; 130 Elm.Widget.focus_register;
131 } 131 }
132} 132}
diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c
index 7911e5bc24..50a2e463a1 100644
--- a/src/lib/elementary/elm_widget.c
+++ b/src/lib/elementary/elm_widget.c
@@ -1376,7 +1376,7 @@ elm_widget_sub_object_parent_add(Evas_Object *sobj)
1376 return EINA_FALSE; 1376 return EINA_FALSE;
1377 } 1377 }
1378 1378
1379 return elm_obj_widget_sub_object_add(parent, sobj); 1379 return elm_widget_sub_object_add(parent, sobj);
1380} 1380}
1381 1381
1382/* 1382/*
@@ -1393,7 +1393,7 @@ elm_widget_sub_object_parent_add(Evas_Object *sobj)
1393 * @see elm_widget_sub_object_parent_add() 1393 * @see elm_widget_sub_object_parent_add()
1394 */ 1394 */
1395EOLIAN static Eina_Bool 1395EOLIAN static Eina_Bool
1396_elm_widget_sub_object_add(Eo *obj, Elm_Widget_Smart_Data *sd, Evas_Object *sobj) 1396_elm_widget_widget_sub_object_add(Eo *obj, Elm_Widget_Smart_Data *sd, Evas_Object *sobj)
1397{ 1397{
1398 Eina_Bool mirrored, pmirrored = efl_ui_mirrored_get(obj); 1398 Eina_Bool mirrored, pmirrored = efl_ui_mirrored_get(obj);
1399 1399
@@ -1515,7 +1515,7 @@ end:
1515} 1515}
1516 1516
1517EOLIAN static Eina_Bool 1517EOLIAN static Eina_Bool
1518_elm_widget_sub_object_del(Eo *obj, Elm_Widget_Smart_Data *sd, Evas_Object *sobj) 1518_elm_widget_widget_sub_object_del(Eo *obj, Elm_Widget_Smart_Data *sd, Evas_Object *sobj)
1519{ 1519{
1520 Evas_Object *sobj_parent; 1520 Evas_Object *sobj_parent;
1521 1521
diff --git a/src/lib/elementary/elm_widget.eo b/src/lib/elementary/elm_widget.eo
index 729530223b..a75706b5ad 100644
--- a/src/lib/elementary/elm_widget.eo
+++ b/src/lib/elementary/elm_widget.eo
@@ -270,21 +270,6 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
270 } 270 }
271 } 271 }
272 272
273 sub_object_add {
274 [['Virtual' function handling sub objects being added.]]
275 return: bool; [[$true on success, $false otherwise]]
276 params {
277 @in sobj: Efl.Canvas.Object; [[Sub object]]
278 }
279 }
280 sub_object_del {
281 [['Virtual' function handling sub objects being removed.]]
282 return: bool; [[$true on success, $false otherwise]]
283 params {
284 @in sobj: Efl.Canvas.Object; [[Object to be deleted]]
285 }
286 }
287
288 /* Translation & Text API. */ 273 /* Translation & Text API. */
289 translate @protected { 274 translate @protected {
290 [[Virtual function handling language changes.]] 275 [[Virtual function handling language changes.]]
@@ -337,6 +322,34 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
337 } 322 }
338 323
339 /* Internal hooks. */ 324 /* Internal hooks. */
325 widget_sub_object_add @protected {
326 [[Virtual function handling sub objects being added.
327
328 Sub objects can be any canvas object, not necessarily widgets.
329
330 See also @.widget_parent.
331 ]]
332 params {
333 @in sub_obj: Efl.Canvas.Object;
334 [[Sub object to be added. Not necessarily a widget itself.]]
335 }
336 return: bool; [[Indicates if the operation succeeded.]]
337 legacy: elm_widget_sub_object_add;
338 }
339 widget_sub_object_del @protected {
340 [[Virtual function handling sub objects being removed.
341
342 Sub objects can be any canvas object, not necessarily widgets.
343
344 See also @.widget_parent.
345 ]]
346 params {
347 @in sub_obj: Efl.Canvas.Object;
348 [[Sub object to be removed. Should be a child of this widget.]]
349 }
350 return: bool; [[Indicates if the operation succeeded.]]
351 legacy: elm_widget_sub_object_del;
352 }
340 @property orientation { 353 @property orientation {
341 [[Widget orientation]] 354 [[Widget orientation]]
342 set { 355 set {
diff --git a/src/lib/elementary/elm_widget.h b/src/lib/elementary/elm_widget.h
index db7bff407d..dd27716dfa 100644
--- a/src/lib/elementary/elm_widget.h
+++ b/src/lib/elementary/elm_widget.h
@@ -361,10 +361,10 @@ typedef struct _Elm_Widget_Smart_Class
361 Elm_Object_Item **target_item, 361 Elm_Object_Item **target_item,
362 double *weight); /**< 'Virtual' function handling passing focus to sub-objects <b>given a direction, in degrees</b> */ 362 double *weight); /**< 'Virtual' function handling passing focus to sub-objects <b>given a direction, in degrees</b> */
363 363
364 Eina_Bool (*sub_object_add)(Evas_Object *obj, 364 Eina_Bool (*widget_sub_object_add)(Evas_Object *obj,
365 Evas_Object *sobj); /**< 'Virtual' function handling sub objects being added */ 365 Evas_Object *sobj); /**< 'Virtual' function handling sub objects being added */
366 366
367 Eina_Bool (*sub_object_del)(Evas_Object *obj, 367 Eina_Bool (*widget_sub_object_del)(Evas_Object *obj,
368 Evas_Object *sobj); /**< 'Virtual' function handling sub objects being removed */ 368 Evas_Object *sobj); /**< 'Virtual' function handling sub objects being removed */
369 void (*access)(Evas_Object *obj, 369 void (*access)(Evas_Object *obj,
370 Eina_Bool is_access); /**< 'Virtual' function on the widget being set access */ 370 Eina_Bool is_access); /**< 'Virtual' function on the widget being set access */