jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=3f9c239b277c5af10f33f262aabdd719e43dd99c

commit 3f9c239b277c5af10f33f262aabdd719e43dd99c
Author: Jean-Philippe Andre <jp.an...@samsung.com>
Date:   Wed Aug 23 20:41:37 2017 +0900

    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
---
 src/lib/elementary/efl_ui_box.c          |  4 +--
 src/lib/elementary/efl_ui_button.c       |  4 +--
 src/lib/elementary/efl_ui_button.eo      |  2 +-
 src/lib/elementary/efl_ui_check.c        |  4 +--
 src/lib/elementary/efl_ui_check.eo       |  2 +-
 src/lib/elementary/efl_ui_flip.c         |  8 +++---
 src/lib/elementary/efl_ui_flip.eo        |  4 +--
 src/lib/elementary/efl_ui_layout.c       | 14 +++++------
 src/lib/elementary/efl_ui_layout.eo      |  4 +--
 src/lib/elementary/efl_ui_progressbar.c  |  4 +--
 src/lib/elementary/efl_ui_progressbar.eo |  2 +-
 src/lib/elementary/efl_ui_text.c         |  4 +--
 src/lib/elementary/efl_ui_text.eo        |  2 +-
 src/lib/elementary/elc_ctxpopup.c        |  6 ++---
 src/lib/elementary/elc_popup.c           |  4 +--
 src/lib/elementary/elm_box.c             |  4 +--
 src/lib/elementary/elm_box.eo            |  2 +-
 src/lib/elementary/elm_ctxpopup.eo       |  2 +-
 src/lib/elementary/elm_diskselector.c    |  4 +--
 src/lib/elementary/elm_diskselector.eo   |  2 +-
 src/lib/elementary/elm_entry.c           |  4 +--
 src/lib/elementary/elm_entry.eo          |  2 +-
 src/lib/elementary/elm_genlist.c         |  8 +++---
 src/lib/elementary/elm_genlist.eo        |  4 +--
 src/lib/elementary/elm_hover.c           |  8 +++---
 src/lib/elementary/elm_hover.eo          |  4 +--
 src/lib/elementary/elm_list.c            |  4 +--
 src/lib/elementary/elm_list.eo           |  2 +-
 src/lib/elementary/elm_mapbuf.c          |  4 +--
 src/lib/elementary/elm_mapbuf.eo         |  2 +-
 src/lib/elementary/elm_notify.c          |  4 +--
 src/lib/elementary/elm_notify.eo         |  2 +-
 src/lib/elementary/elm_popup.eo          |  2 +-
 src/lib/elementary/elm_scroller.c        |  4 +--
 src/lib/elementary/elm_scroller.eo       |  2 +-
 src/lib/elementary/elm_table.c           |  4 +--
 src/lib/elementary/elm_table.eo          |  2 +-
 src/lib/elementary/elm_widget.c          |  6 ++---
 src/lib/elementary/elm_widget.eo         | 43 +++++++++++++++++++++-----------
 src/lib/elementary/elm_widget.h          |  4 +--
 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
 
    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;
      }
 
@@ -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))
      {
-        elm_obj_widget_sub_object_del(obj, subobj);
+        elm_widget_sub_object_del(obj, subobj);
         return EINA_FALSE;
      }
 
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
  * is elm.swallow.content, not elm.swallow.icon. Fix that whenever we
  * can changed the theme API */
 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;
 
-   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;
 
    _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
       Elm.Widget.focus_next_manager_is;
       Elm.Widget.focus_direction_manager_is;
       Elm.Widget.theme_apply;
-      Elm.Widget.sub_object_del;
+      Elm.Widget.widget_sub_object_del;
       Elm.Widget.widget_event;
       Elm.Interface.Atspi_Widget_Action.elm_actions { get; }
       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
  * is elm.swallow.content, not elm.swallow.icon. Fix that whenever we
  * can changed the theme API */
 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;
 
-   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;
 
    _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)
       Efl.Object.constructor;
       Elm.Widget.activate;
       Elm.Widget.theme_apply;
-      Elm.Widget.sub_object_del;
+      Elm.Widget.widget_sub_object_del;
       Elm.Widget.widget_event;
       Efl.Ui.Nstate.count { set; }
       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,
 }
 
 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;
 
    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;
 
    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
-_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;
 
 
-   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 (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)
       class.constructor;
       Efl.Object.constructor;
       Elm.Widget.focus_direction;
-      Elm.Widget.sub_object_add;
+      Elm.Widget.widget_sub_object_add;
       Elm.Widget.theme_apply;
       Elm.Widget.focus_direction_manager_is;
       Elm.Widget.focus_next_manager_is;
       Elm.Widget.focus_next;
-      Elm.Widget.sub_object_del;
+      Elm.Widget.widget_sub_object_del;
       Efl.Container.content_iterate;
       Efl.Container.content_count;
       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_
 }
 
 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;
 
    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;
 
    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
-_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;
    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,
      _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 (sd->destructed_is) return EINA_TRUE;
 
@@ -647,7 +647,7 @@ _sub_box_remove(Evas_Object *obj,
                 Efl_Ui_Layout_Sub_Object_Data *sub_d)
 {
    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)
      evas_object_event_callback_del_full
@@ -692,7 +692,7 @@ _sub_table_remove(Evas_Object *obj,
    Evas_Object *child;
    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
      (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;
 
              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))
                {
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,
       Efl.Canvas.Layout_Group.group_size_min { get; }
       Efl.Canvas.Layout_Group.group_size_max { get; }
       Elm.Widget.focus_direction;
-      Elm.Widget.sub_object_add;
+      Elm.Widget.widget_sub_object_add;
       Elm.Widget.theme_apply;
       Elm.Widget.focus_direction_manager_is;
       Elm.Widget.focus_next_manager_is;
       Elm.Widget.focus_next;
       Elm.Widget.disable;
-      Elm.Widget.sub_object_del;
+      Elm.Widget.widget_sub_object_del;
       Elm.Widget.on_focus;
       Efl.Container.content_count;
       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)
  * spot is elm.swallow.content, not elm.swallow.icon. Fix that
  * whenever we can changed the theme API */
 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;
-   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;
 
    _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)
       Elm.Widget.theme_apply;
       Elm.Widget.focus_next_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.range_value { get; set; }
       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)
 }
 
 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;
    /* 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");
      }
 
-   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;
 
    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,
       Elm.Widget.on_focus;
       Elm.Widget.on_focus_region;
       Elm.Widget.disable;
-      Elm.Widget.sub_object_del;
+      Elm.Widget.widget_sub_object_del;
       Elm.Widget.focus_next_manager_is;
       Elm.Interface_Scrollable.policy { set; }
       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,
 }
 
 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?
     */
-   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
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
 }
 
 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;
    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 (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,
 }
 
 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;
 
-   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;
 
    _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)
       Elm.Widget.focus_direction_manager_is;
       Elm.Widget.focus_next;
       Elm.Widget.theme_apply;
-      Elm.Widget.sub_object_del;
+      Elm.Widget.widget_sub_object_del;
       Elm.Widget.focus_register;
    }
    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,
       Elm.Widget.focus_next_manager_is;
       Elm.Widget.focus_next;
       Elm.Widget.disable;
-      Elm.Widget.sub_object_add;
+      Elm.Widget.widget_sub_object_add;
       Elm.Widget.translate;
       Elm.Widget.theme_apply;
       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)
 }
 
 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;
 
    Elm_Diskselector_Item_Data *it;
    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;
 
    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,
       Elm.Widget.theme_apply;
       Elm.Widget.on_focus;
       Elm.Widget.translate;
-      Elm.Widget.sub_object_del;
+      Elm.Widget.widget_sub_object_del;
       Elm.Widget.widget_event;
       Elm.Interface_Scrollable.policy { get; set; }
       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)
 }
 
 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;
    /* 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");
      }
 
-   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;
 
    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,
       Elm.Widget.on_focus;
       Elm.Widget.on_focus_region;
       Elm.Widget.disable;
-      Elm.Widget.sub_object_del;
+      Elm.Widget.widget_sub_object_del;
       Elm.Widget.focus_next_manager_is;
       Elm.Interface_Scrollable.policy { set; }
       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)
 }
 
 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
     * 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
     * not needed at here anyway, so let's skip listening to those
     * 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
-_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;
 
@@ -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
     * about too many recalculations */
    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;
    return int_ret;
 }
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,
       Efl.Canvas.Group.group_member_add;
       Elm.Widget.theme_apply;
       Elm.Widget.focus_next_manager_is;
-      Elm.Widget.sub_object_add;
+      Elm.Widget.widget_sub_object_add;
       Elm.Widget.access;
       Elm.Widget.focus_highlight_geometry_get;
       Elm.Widget.focus_next;
       Elm.Widget.on_focus;
       Elm.Widget.focus_direction_manager_is;
-      Elm.Widget.sub_object_del;
+      Elm.Widget.widget_sub_object_del;
       Elm.Widget.widget_event;
       Elm.Widget.focused_item { get; }
       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,
 }
 
 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;
 
    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 (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
-_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;
 
-   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 (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
       Efl.Gfx.position { set; }
       Efl.Gfx.size { set; }
       Elm.Widget.theme_apply;
-      Elm.Widget.sub_object_add;
+      Elm.Widget.widget_sub_object_add;
       Elm.Widget.widget_parent { get; set; }
       Elm.Widget.focus_direction_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.Interface.Atspi_Widget_Action.elm_actions { get; }
       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
 }
 
 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;
    Elm_Object_Item *eo_it;
 
    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 ((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,
       Elm.Widget.disable;
       Elm.Widget.on_focus;
       Elm.Widget.translate;
-      Elm.Widget.sub_object_del;
+      Elm.Widget.widget_sub_object_del;
       Elm.Widget.widget_event;
       Elm.Widget.focused_item { get; }
       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,
 }
 
 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;
-   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 (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)
       Efl.Gfx.position { set; }
       Efl.Gfx.size { set; }
       Elm.Widget.theme_apply;
-      Elm.Widget.sub_object_del;
+      Elm.Widget.widget_sub_object_del;
       Efl.Container.content { get; set; }
       Efl.Container.content_unset;
       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,
 }
 
 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;
-   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 (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)
       Elm.Widget.focus_direction_manager_is;
       Elm.Widget.focus_next_manager_is;
       Elm.Widget.focus_next;
-      Elm.Widget.sub_object_del;
+      Elm.Widget.widget_sub_object_del;
       Elm.Widget.part_text { get; set; }
       Efl.Container.content { get; set; }
       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)
       Elm.Widget.focus_next;
       Elm.Widget.widget_parent { set; }
       Elm.Widget.translate;
-      Elm.Widget.sub_object_del;
+      Elm.Widget.widget_sub_object_del;
       Elm.Widget.widget_event;
       Efl.Canvas.Layout_Signal.signal_emit;
       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,
 }
 
 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;
-   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 (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,
       Elm.Widget.focus_direction_manager_is;
       Elm.Widget.focus_next;
       Elm.Widget.focus_direction;
-      Elm.Widget.sub_object_del;
+      Elm.Widget.widget_sub_object_del;
       Elm.Widget.widget_event;
       Elm.Interface_Scrollable.page_size { set; }
       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,
 }
 
 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;
 
-   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;
 
    _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)
       Elm.Widget.focus_next;
       Elm.Widget.focus_direction_manager_is;
       Elm.Widget.theme_apply;
-      Elm.Widget.sub_object_del;
+      Elm.Widget.widget_sub_object_del;
       Elm.Widget.focus_register;
    }
 }
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)
         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()
  */
 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);
 
@@ -1515,7 +1515,7 @@ end:
 }
 
 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;
 
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,
          }
       }
 
-      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. */
       translate @protected {
          [[Virtual function handling language changes.]]
@@ -337,6 +322,34 @@ abstract Elm.Widget (Efl.Canvas.Group, 
Elm.Interface.Atspi_Accessible,
       }
 
       /* 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 {
          [[Widget orientation]]
          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
                                        Elm_Object_Item **target_item,
                                        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 */
 
-   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 */
    void             (*access)(Evas_Object *obj,
                               Eina_Bool is_access); /**< 'Virtual' function on 
the widget being set access */

-- 


Reply via email to