[elm] New elm_widget_add() usage spread.
authorGustavo Lima Chaves <glima@profusion.mobi>
Wed, 18 Jul 2012 21:03:39 +0000 (21:03 +0000)
committerGustavo Lima Chaves <glima@profusion.mobi>
Wed, 18 Jul 2012 21:03:39 +0000 (21:03 +0000)
SVN revision: 74148

54 files changed:
src/lib/elc_fileselector.c
src/lib/elc_fileselector_button.c
src/lib/elc_hoversel.c
src/lib/elc_naviframe.c
src/lib/elc_player.c
src/lib/elm_access.c
src/lib/elm_actionslider.c
src/lib/elm_bg.c
src/lib/elm_box.c
src/lib/elm_bubble.c
src/lib/elm_button.c
src/lib/elm_calendar.c
src/lib/elm_check.c
src/lib/elm_clock.c
src/lib/elm_colorselector.c
src/lib/elm_conform.c
src/lib/elm_datetime.c
src/lib/elm_dayselector.c
src/lib/elm_diskselector.c
src/lib/elm_flip.c
src/lib/elm_flipselector.c
src/lib/elm_frame.c
src/lib/elm_gengrid.c
src/lib/elm_genlist.c
src/lib/elm_gesture_layer.c
src/lib/elm_glview.c
src/lib/elm_grid.c
src/lib/elm_hover.c
src/lib/elm_icon.c
src/lib/elm_image.c
src/lib/elm_index.c
src/lib/elm_inwin.c
src/lib/elm_label.c
src/lib/elm_layout.c
src/lib/elm_list.c
src/lib/elm_mapbuf.c
src/lib/elm_menu.c
src/lib/elm_notify.c
src/lib/elm_panes.c
src/lib/elm_photo.c
src/lib/elm_photocam.c
src/lib/elm_plug.c
src/lib/elm_progressbar.c
src/lib/elm_radio.c
src/lib/elm_route.c
src/lib/elm_segment_control.c
src/lib/elm_separator.c
src/lib/elm_slider.c
src/lib/elm_slideshow.c
src/lib/elm_spinner.c
src/lib/elm_table.c
src/lib/elm_thumb.c
src/lib/elm_video.c
src/lib/elm_web.c

index d94d60e..14a3ca1 100644 (file)
@@ -985,15 +985,12 @@ _elm_fileselector_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_fileselector_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_fileselector_smart_class_new());
+   obj = elm_widget_add(_elm_fileselector_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index d06a8d8..d75ef4b 100644 (file)
@@ -250,15 +250,12 @@ _elm_fileselector_button_smart_set_user(Elm_Button_Smart_Class *sc)
 EAPI Evas_Object *
 elm_fileselector_button_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_fileselector_button_smart_class_new());
+   obj = elm_widget_add(_elm_fileselector_button_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index cc6c3aa..0454b36 100644 (file)
@@ -293,11 +293,19 @@ _elm_hoversel_smart_del(Evas_Object *obj)
 }
 
 static void
+_elm_hoversel_smart_parent_set(Evas_Object *obj,
+                               Evas_Object *parent)
+{
+   elm_hoversel_hover_parent_set(obj, parent);
+}
+
+static void
 _elm_hoversel_smart_set_user(Elm_Button_Smart_Class *sc)
 {
    ELM_WIDGET_CLASS(sc)->base.add = _elm_hoversel_smart_add;
    ELM_WIDGET_CLASS(sc)->base.del = _elm_hoversel_smart_del;
 
+   ELM_WIDGET_CLASS(sc)->parent_set = _elm_hoversel_smart_parent_set;
    ELM_WIDGET_CLASS(sc)->theme = _elm_hoversel_smart_theme;
 
    sc->admits_autorepeat = EINA_FALSE;
@@ -306,21 +314,16 @@ _elm_hoversel_smart_set_user(Elm_Button_Smart_Class *sc)
 EAPI Evas_Object *
 elm_hoversel_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_hoversel_smart_class_new());
+   obj = elm_widget_add(_elm_hoversel_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
 
-   elm_hoversel_hover_parent_set(obj, parent);
-
    return obj;
 }
 
index 9a51962..2e28a0c 100644 (file)
@@ -919,15 +919,12 @@ _elm_naviframe_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_naviframe_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_naviframe_smart_class_new());
+   obj = elm_widget_add(_elm_naviframe_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 0ce00df..7ec67c0 100644 (file)
@@ -561,15 +561,12 @@ EAPI Evas_Object *
 elm_player_add(Evas_Object *parent)
 {
 #ifdef HAVE_EMOTION
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_player_smart_class_new());
+   obj = elm_widget_add(_elm_player_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 533fa07..fe8946c 100644 (file)
@@ -705,15 +705,12 @@ _elm_access_2nd_click_timeout(Evas_Object *obj)
 static Evas_Object *
 _elm_access_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_access_smart_class_new());
+   obj = elm_widget_add(_elm_access_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 68b336c..c916f21 100644 (file)
@@ -464,15 +464,12 @@ _elm_actionslider_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_actionslider_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_actionslider_smart_class_new());
+   obj = elm_widget_add(_elm_actionslider_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 41db770..681fa79 100644 (file)
@@ -173,15 +173,12 @@ _elm_bg_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_bg_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_bg_smart_class_new());
+   obj = elm_widget_add(_elm_bg_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 9b953b3..524c73d 100644 (file)
@@ -494,15 +494,12 @@ _elm_box_smart_set_user(Elm_Widget_Smart_Class *sc)
 EAPI Evas_Object *
 elm_box_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_box_smart_class_new());
+   obj = elm_widget_add(_elm_box_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 16d9c19..c088b4b 100644 (file)
@@ -195,15 +195,12 @@ _elm_bubble_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_bubble_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_bubble_smart_class_new());
+   obj = elm_widget_add(_elm_bubble_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 7dbae8a..ed5217a 100644 (file)
@@ -370,15 +370,12 @@ _elm_button_widget_smart_set_user(Elm_Button_Smart_Class *sc __UNUSED__)
 EAPI Evas_Object *
 elm_button_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_button_widget_smart_class_new());
+   obj = elm_widget_add(_elm_button_widget_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index de957d3..0820bb6 100644 (file)
@@ -854,15 +854,12 @@ _elm_calendar_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_calendar_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_calendar_smart_class_new());
+   obj = elm_widget_add(_elm_calendar_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index e85da28..86abeb4 100644 (file)
@@ -363,15 +363,12 @@ _elm_check_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_check_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_check_smart_class_new());
+   obj = elm_widget_add(_elm_check_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 1c2c358..af3eaa1 100644 (file)
@@ -545,15 +545,12 @@ _elm_clock_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_clock_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_clock_smart_class_new());
+   obj = elm_widget_add(_elm_clock_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index ad5260e..cd81d48 100644 (file)
@@ -1297,15 +1297,12 @@ _elm_colorselector_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_colorselector_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_colorselector_smart_class_new());
+   obj = elm_widget_add(_elm_colorselector_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 6935b6a..c80b8c2 100644 (file)
@@ -576,11 +576,32 @@ _elm_conformant_smart_del(Evas_Object *obj)
 }
 
 static void
+_elm_conformant_smart_parent_set(Evas_Object *obj,
+                                 Evas_Object *parent)
+{
+#ifdef HAVE_ELEMENTARY_X
+   Evas_Object *top = elm_widget_top_get(parent);
+   Ecore_X_Window xwin = elm_win_xwindow_get(parent);
+
+   if ((xwin) && (!elm_win_inlined_image_object_get(top)))
+     {
+        ELM_CONFORMANT_DATA_GET(obj, sd);
+
+        sd->prop_hdl = ecore_event_handler_add
+            (ECORE_X_EVENT_WINDOW_PROPERTY, _on_prop_change, obj);
+        sd->vkb_state = ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF;
+     }
+   // FIXME: get kbd region prop
+#endif
+}
+
+static void
 _elm_conformant_smart_set_user(Elm_Layout_Smart_Class *sc)
 {
    ELM_WIDGET_CLASS(sc)->base.add = _elm_conformant_smart_add;
    ELM_WIDGET_CLASS(sc)->base.del = _elm_conformant_smart_del;
 
+   ELM_WIDGET_CLASS(sc)->parent_set = _elm_conformant_smart_parent_set;
    ELM_WIDGET_CLASS(sc)->theme = _elm_conformant_smart_theme;
 
    /* not a 'focus chain manager' */
@@ -593,34 +614,15 @@ _elm_conformant_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_conformant_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_conformant_smart_class_new());
+   obj = elm_widget_add(_elm_conformant_smart_class_new(), parent);
+   if (!obj) return NULL;
 
-   /* NB: we got to sub-object-add before we probe for the top widget */
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
 
-#ifdef HAVE_ELEMENTARY_X
-   Evas_Object *top = elm_widget_top_get(obj);
-   Ecore_X_Window xwin = elm_win_xwindow_get(top);
-
-   if ((xwin) && (!elm_win_inlined_image_object_get(top)))
-     {
-        ELM_CONFORMANT_DATA_GET(obj, sd);
-
-        sd->prop_hdl = ecore_event_handler_add
-            (ECORE_X_EVENT_WINDOW_PROPERTY, _on_prop_change, obj);
-        sd->vkb_state = ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF;
-     }
-   // FIXME: get kbd region prop
-#endif
-
    return obj;
 }
index 77c807d..3880a81 100644 (file)
@@ -854,15 +854,12 @@ _elm_datetime_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_datetime_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_datetime_smart_class_new());
+   obj = elm_widget_add(_elm_datetime_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 434ff68..2dc0d17 100644 (file)
@@ -523,15 +523,12 @@ _elm_dayselector_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_dayselector_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_dayselector_smart_class_new());
+   obj = elm_widget_add(_elm_dayselector_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index fd61cd3..5cecf9b 100644 (file)
@@ -1288,18 +1288,16 @@ _elm_diskselector_smart_set_user(Elm_Widget_Smart_Class *sc)
 EAPI Evas_Object *
 elm_diskselector_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_diskselector_smart_class_new());
+   obj = elm_widget_add(_elm_diskselector_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
+
    return obj;
 }
 
index e7ced25..0a9c153 100644 (file)
@@ -1906,15 +1906,12 @@ _elm_flip_smart_set_user(Elm_Container_Smart_Class *sc)
 EAPI Evas_Object *
 elm_flip_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_flip_smart_class_new());
+   obj = elm_widget_add(_elm_flip_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 0d9ca60..3249e0d 100644 (file)
@@ -661,15 +661,12 @@ _elm_flipselector_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_flipselector_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_flipselector_smart_class_new());
+   obj = elm_widget_add(_elm_flipselector_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index aa0d38e..e4d78cb 100644 (file)
@@ -208,15 +208,12 @@ _elm_frame_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_frame_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_frame_smart_class_new());
+   obj = elm_widget_add(_elm_frame_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index c19db81..cfca448 100644 (file)
@@ -2432,18 +2432,16 @@ _elm_gengrid_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_gengrid_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_gengrid_smart_class_new());
+   obj = elm_widget_add(_elm_gengrid_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
+
    return obj;
 }
 
index eaad8f0..f1da85b 100644 (file)
@@ -4679,6 +4679,9 @@ _decorate_item_unset(Elm_Genlist_Smart_Data *sd)
 static void
 _elm_genlist_smart_add(Evas_Object *obj)
 {
+   Evas_Coord minw, minh;
+   Elm_Genlist_Pan_Smart_Data *pan_data;
+
    EVAS_SMART_DATA_ALLOC(obj, Elm_Genlist_Smart_Data);
 
    ELM_WIDGET_CLASS(_elm_genlist_parent_sc)->base.add(obj);
@@ -4687,11 +4690,57 @@ _elm_genlist_smart_add(Evas_Object *obj)
    evas_object_smart_member_add(priv->hit_rect, obj);
    elm_widget_sub_object_add(obj, priv->hit_rect);
 
-   /* common scroller hit rectangle setup -- it has to take place
-    * AFTER smart_member_add() */
+   /* common scroller hit rectangle setup */
    evas_object_color_set(priv->hit_rect, 0, 0, 0, 0);
    evas_object_show(priv->hit_rect);
    evas_object_repeat_events_set(priv->hit_rect, EINA_TRUE);
+
+   elm_widget_can_focus_set(obj, EINA_TRUE);
+   elm_widget_on_show_region_hook_set(obj, _show_region_hook, obj);
+
+   priv->generation = 1;
+
+   elm_layout_theme_set(obj, "genlist", "base", elm_widget_style_get(obj));
+
+   /* interface's add() routine issued AFTER the object's smart_add() */
+   priv->s_iface = evas_object_smart_interface_get
+       (obj, ELM_SCROLLABLE_IFACE_NAME);
+
+   priv->s_iface->objects_set
+     (obj, ELM_WIDGET_DATA(priv)->resize_obj, priv->hit_rect);
+
+   priv->s_iface->bounce_allow_set
+     (obj, EINA_FALSE, _elm_config->thumbscroll_bounce_enable);
+   priv->v_bounce = _elm_config->thumbscroll_bounce_enable;
+
+   priv->s_iface->animate_start_cb_set(obj, _scroll_animate_start_cb);
+   priv->s_iface->animate_stop_cb_set(obj, _scroll_animate_stop_cb);
+   priv->s_iface->drag_start_cb_set(obj, _scroll_drag_start_cb);
+   priv->s_iface->drag_stop_cb_set(obj, _scroll_drag_stop_cb);
+   priv->s_iface->edge_left_cb_set(obj, _edge_left_cb);
+   priv->s_iface->edge_right_cb_set(obj, _edge_right_cb);
+   priv->s_iface->edge_top_cb_set(obj, _edge_top_cb);
+   priv->s_iface->edge_bottom_cb_set(obj, _edge_bottom_cb);
+
+   priv->mode = ELM_LIST_SCROLL;
+   priv->max_items_per_block = MAX_ITEMS_PER_BLOCK;
+   priv->item_cache_max = priv->max_items_per_block * 2;
+   priv->longpress_timeout = _elm_config->longpress_timeout;
+   priv->highlight = EINA_TRUE;
+
+   priv->pan_obj = evas_object_smart_add
+       (evas_object_evas_get(obj), _elm_genlist_pan_smart_class_new());
+   pan_data = evas_object_smart_data_get(priv->pan_obj);
+   pan_data->wsd = priv;
+
+   priv->s_iface->extern_pan_set(obj, priv->pan_obj);
+
+   edje_object_size_min_calc(ELM_WIDGET_DATA(priv)->resize_obj, &minw, &minh);
+   evas_object_size_hint_min_set(obj, minw, minh);
+
+   _mirrored_set(obj, elm_widget_mirrored_get(obj));
+
+   elm_layout_sizing_eval(obj);
 }
 
 static void
@@ -4776,70 +4825,16 @@ _elm_genlist_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_genlist_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
-   Evas_Coord minw, minh;
-   Elm_Genlist_Pan_Smart_Data *pan_data;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_genlist_smart_class_new());
+   obj = elm_widget_add(_elm_genlist_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
 
-   ELM_GENLIST_DATA_GET(obj, sd);
-
-   elm_widget_can_focus_set(obj, EINA_TRUE);
-   elm_widget_on_show_region_hook_set(obj, _show_region_hook, obj);
-
-   sd->generation = 1;
-
-   elm_layout_theme_set(obj, "genlist", "base", elm_widget_style_get(obj));
-
-   /* interface's add() routine issued AFTER the object's smart_add() */
-   sd->s_iface = evas_object_smart_interface_get
-       (obj, ELM_SCROLLABLE_IFACE_NAME);
-
-   sd->s_iface->objects_set
-     (obj, ELM_WIDGET_DATA(sd)->resize_obj, sd->hit_rect);
-
-   sd->s_iface->bounce_allow_set
-     (obj, EINA_FALSE, _elm_config->thumbscroll_bounce_enable);
-   sd->v_bounce = _elm_config->thumbscroll_bounce_enable;
-
-   sd->s_iface->animate_start_cb_set(obj, _scroll_animate_start_cb);
-   sd->s_iface->animate_stop_cb_set(obj, _scroll_animate_stop_cb);
-   sd->s_iface->drag_start_cb_set(obj, _scroll_drag_start_cb);
-   sd->s_iface->drag_stop_cb_set(obj, _scroll_drag_stop_cb);
-   sd->s_iface->edge_left_cb_set(obj, _edge_left_cb);
-   sd->s_iface->edge_right_cb_set(obj, _edge_right_cb);
-   sd->s_iface->edge_top_cb_set(obj, _edge_top_cb);
-   sd->s_iface->edge_bottom_cb_set(obj, _edge_bottom_cb);
-
-   sd->mode = ELM_LIST_SCROLL;
-   sd->max_items_per_block = MAX_ITEMS_PER_BLOCK;
-   sd->item_cache_max = sd->max_items_per_block * 2;
-   sd->longpress_timeout = _elm_config->longpress_timeout;
-   sd->highlight = EINA_TRUE;
-
-   sd->pan_obj = evas_object_smart_add
-       (evas_object_evas_get(obj), _elm_genlist_pan_smart_class_new());
-   pan_data = evas_object_smart_data_get(sd->pan_obj);
-   pan_data->wsd = sd;
-
-   sd->s_iface->extern_pan_set(obj, sd->pan_obj);
-
-   edje_object_size_min_calc(ELM_WIDGET_DATA(sd)->resize_obj, &minw, &minh);
-   evas_object_size_hint_min_set(obj, minw, minh);
-
-   _mirrored_set(obj, elm_widget_mirrored_get(obj));
-
-   elm_layout_sizing_eval(obj);
-
    return obj;
 }
 
index f43f65a..08abba3 100644 (file)
@@ -3655,15 +3655,12 @@ _elm_gesture_layer_smart_set_user(Elm_Widget_Smart_Class *sc)
 EAPI Evas_Object *
 elm_gesture_layer_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_gesture_layer_smart_class_new());
+   obj = elm_widget_add(_elm_gesture_layer_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index adbc3a5..d505b1f 100644 (file)
@@ -332,17 +332,15 @@ _elm_glview_smart_set_user(Elm_Widget_Smart_Class *sc)
 EAPI Evas_Object *
 elm_glview_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_glview_smart_class_new());
+   obj = elm_widget_add(_elm_glview_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    ELM_GLVIEW_DATA_GET(obj, sd);
+
    if (!sd->evasgl)
      return NULL;
 
index 0e6c0c8..2d2d38f 100644 (file)
@@ -176,15 +176,12 @@ _elm_grid_smart_set_user(Elm_Widget_Smart_Class *sc)
 EAPI Evas_Object *
 elm_grid_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_grid_smart_class_new());
+   obj = elm_widget_add(_elm_grid_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index fd98353..80221ac 100644 (file)
@@ -659,6 +659,15 @@ _elm_hover_smart_hide(Evas_Object *obj)
 }
 
 static void
+_elm_hover_smart_parent_set(Evas_Object *obj,
+                            Evas_Object *parent)
+{
+   elm_hover_parent_set(obj, parent);
+
+   elm_layout_sizing_eval(obj);
+}
+
+static void
 _elm_hover_smart_set_user(Elm_Layout_Smart_Class *sc)
 {
    ELM_WIDGET_CLASS(sc)->base.add = _elm_hover_smart_add;
@@ -668,6 +677,7 @@ _elm_hover_smart_set_user(Elm_Layout_Smart_Class *sc)
    ELM_WIDGET_CLASS(sc)->base.show = _elm_hover_smart_show;
    ELM_WIDGET_CLASS(sc)->base.hide = _elm_hover_smart_hide;
 
+   ELM_WIDGET_CLASS(sc)->parent_set = _elm_hover_smart_parent_set;
    ELM_WIDGET_CLASS(sc)->sub_object_add = _elm_hover_smart_sub_object_add;
    ELM_WIDGET_CLASS(sc)->sub_object_del = _elm_hover_smart_sub_object_del;
    ELM_WIDGET_CLASS(sc)->theme = _elm_hover_smart_theme;
@@ -688,22 +698,16 @@ _elm_hover_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_hover_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_hover_smart_class_new());
+   obj = elm_widget_add(_elm_hover_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
 
-   elm_hover_parent_set(obj, parent);
-   elm_layout_sizing_eval(obj);
-
    return obj;
 }
 
index 012bb8d..57ac5c9 100644 (file)
@@ -807,15 +807,12 @@ _elm_icon_smart_set_user(Elm_Image_Smart_Class *sc)
 EAPI Evas_Object *
 elm_icon_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_icon_smart_class_new());
+   obj = elm_widget_add(_elm_icon_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 3c5d098..fcb99bf 100644 (file)
@@ -1077,15 +1077,12 @@ elm_image_smart_class_get(void)
 EAPI Evas_Object *
 elm_image_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_image_smart_class_new());
+   obj = elm_widget_add(_elm_image_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 7429d38..4cce1be 100644 (file)
@@ -713,15 +713,12 @@ _elm_index_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_index_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_index_smart_class_new());
+   obj = elm_widget_add(_elm_index_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index c6c0e8a..fe363dc 100644 (file)
@@ -90,6 +90,19 @@ _elm_inwin_smart_add(Evas_Object *obj)
 
    elm_widget_can_focus_set(obj, EINA_FALSE);
    elm_widget_highlight_ignore_set(obj, EINA_TRUE);
+
+   evas_object_size_hint_weight_set(obj, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(obj, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_layout_theme_set(obj, "win", "inwin", elm_object_style_get(obj));
+}
+
+static void
+_elm_inwin_smart_parent_set(Evas_Object *obj,
+                            Evas_Object *parent)
+{
+   elm_win_resize_object_add(parent, obj);
+
+   elm_layout_sizing_eval(obj);
 }
 
 static void
@@ -98,6 +111,7 @@ _elm_inwin_smart_set_user(Elm_Layout_Smart_Class *sc)
    ELM_WIDGET_CLASS(sc)->base.add = _elm_inwin_smart_add;
 
    ELM_WIDGET_CLASS(sc)->focus_next = _elm_inwin_smart_focus_next;
+   ELM_WIDGET_CLASS(sc)->parent_set = _elm_inwin_smart_parent_set;
 
    sc->sizing_eval = _elm_inwin_smart_sizing_eval;
 
@@ -107,28 +121,17 @@ _elm_inwin_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_win_inwin_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    if (!parent || !elm_widget_type_check((parent), "elm_win", __func__))
      return NULL;  /* *has* to have a parent window */
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_inwin_smart_class_new());
+   obj = elm_widget_add(_elm_inwin_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
 
-   evas_object_size_hint_weight_set(obj, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-   evas_object_size_hint_align_set(obj, EVAS_HINT_FILL, EVAS_HINT_FILL);
-   elm_win_resize_object_add(parent, obj);
-
-   elm_layout_theme_set(obj, "win", "inwin", elm_object_style_get(obj));
-
-   elm_layout_sizing_eval(obj);
-
    return obj;
 }
 
index c0833da..0eba7e2 100644 (file)
@@ -398,15 +398,12 @@ _elm_label_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_label_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_label_smart_class_new());
+   obj = elm_widget_add(_elm_label_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 61695a6..9d661e1 100644 (file)
@@ -1802,15 +1802,12 @@ elm_layout_edje_object_can_access_get(Evas_Object *obj)
 EAPI Evas_Object *
 elm_layout_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_layout_widget_smart_class_new());
+   obj = elm_widget_add(_elm_layout_widget_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 3b7b0d5..4f4b564 100644 (file)
@@ -1740,15 +1740,12 @@ _elm_list_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_list_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_list_smart_class_new());
+   obj = elm_widget_add(_elm_list_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index ec9555e..3365b69 100644 (file)
@@ -289,15 +289,12 @@ _elm_mapbuf_smart_set_user(Elm_Container_Smart_Class *sc)
 EAPI Evas_Object *
 elm_mapbuf_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_mapbuf_smart_class_new());
+   obj = elm_widget_add(_elm_mapbuf_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 66468ba..19a117c 100644 (file)
@@ -632,6 +632,21 @@ _elm_menu_smart_del(Evas_Object *obj)
 }
 
 static void
+_elm_menu_smart_parent_set(Evas_Object *obj,
+                           Evas_Object *parent)
+{
+   ELM_MENU_DATA_GET(obj, sd);
+
+   elm_menu_parent_set(obj, parent);
+   elm_hover_target_set(sd->hv, sd->location);
+   elm_layout_content_set
+     (sd->hv, elm_hover_best_content_location_get
+       (sd->hv, ELM_HOVER_AXIS_VERTICAL), sd->bx);
+
+   _sizing_eval(obj);
+}
+
+static void
 _elm_menu_smart_set_user(Elm_Widget_Smart_Class *sc)
 {
    sc->base.add = _elm_menu_smart_add;
@@ -642,35 +657,23 @@ _elm_menu_smart_set_user(Elm_Widget_Smart_Class *sc)
    sc->focus_next = NULL;
    sc->focus_direction = NULL;
 
+   sc->parent_set = _elm_menu_smart_parent_set;
    sc->theme = _elm_menu_smart_theme;
 }
 
 EAPI Evas_Object *
 elm_menu_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_menu_smart_class_new());
+   obj = elm_widget_add(_elm_menu_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
 
-   ELM_MENU_DATA_GET(obj, sd);
-
-   elm_menu_parent_set(obj, parent);
-   elm_hover_target_set(sd->hv, sd->location);
-   elm_layout_content_set
-     (sd->hv, elm_hover_best_content_location_get
-       (sd->hv, ELM_HOVER_AXIS_VERTICAL), sd->bx);
-
-   _sizing_eval(obj);
-
    return obj;
 }
 
index 40245b3..d8446fa 100644 (file)
@@ -578,6 +578,7 @@ _elm_notify_smart_add(Evas_Object *obj)
      (obj, EVAS_CALLBACK_RESTACK, _restack_cb, obj);
 
    elm_widget_can_focus_set(obj, EINA_FALSE);
+   elm_notify_orient_set(obj, ELM_NOTIFY_ORIENT_TOP);
 }
 
 static void
@@ -597,6 +598,15 @@ _elm_notify_smart_del(Evas_Object *obj)
 }
 
 static void
+_elm_notify_smart_parent_set(Evas_Object *obj,
+                             Evas_Object *parent)
+{
+   elm_notify_parent_set(obj, parent);
+
+   _sizing_eval(obj);
+}
+
+static void
 _elm_notify_smart_set_user(Elm_Container_Smart_Class *sc)
 {
    ELM_WIDGET_CLASS(sc)->base.add = _elm_notify_smart_add;
@@ -607,6 +617,7 @@ _elm_notify_smart_set_user(Elm_Container_Smart_Class *sc)
    ELM_WIDGET_CLASS(sc)->base.show = _elm_notify_smart_show;
    ELM_WIDGET_CLASS(sc)->base.hide = _elm_notify_smart_hide;
 
+   ELM_WIDGET_CLASS(sc)->parent_set = _elm_notify_smart_parent_set;
    ELM_WIDGET_CLASS(sc)->theme = _elm_notify_smart_theme;
    ELM_WIDGET_CLASS(sc)->focus_next = _elm_notify_smart_focus_next;
    ELM_WIDGET_CLASS(sc)->focus_direction = _elm_notify_smart_focus_direction;
@@ -621,24 +632,16 @@ _elm_notify_smart_set_user(Elm_Container_Smart_Class *sc)
 EAPI Evas_Object *
 elm_notify_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_notify_smart_class_new());
+   obj = elm_widget_add(_elm_notify_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
 
-   elm_notify_orient_set(obj, ELM_NOTIFY_ORIENT_TOP);
-   elm_notify_parent_set(obj, parent);
-
-   _sizing_eval(obj);
-
    return obj;
 }
 
index 3979915..0b1e6f9 100644 (file)
@@ -242,15 +242,12 @@ _elm_panes_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_panes_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_panes_smart_class_new());
+   obj = elm_widget_add(_elm_panes_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 9bf9799..c0313bc 100644 (file)
@@ -349,15 +349,12 @@ _elm_photo_smart_set_user(Elm_Widget_Smart_Class *sc)
 EAPI Evas_Object *
 elm_photo_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_photo_smart_class_new());
+   obj = elm_widget_add(_elm_photo_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index d66b8e8..0fefed5 100644 (file)
@@ -1569,18 +1569,16 @@ _elm_photocam_smart_set_user(Elm_Widget_Smart_Class *sc)
 EAPI Evas_Object *
 elm_photocam_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_photocam_smart_class_new());
+   obj = elm_widget_add(_elm_photocam_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
+
    return obj;
 }
 
index 9e96558..0a065fe 100644 (file)
@@ -114,15 +114,12 @@ _elm_plug_smart_set_user(Elm_Widget_Smart_Class *sc)
 EAPI Evas_Object *
 elm_plug_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_plug_smart_class_new());
+   obj = elm_widget_add(_elm_plug_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    ELM_PLUG_DATA_GET(obj, sd);
    if (!ELM_WIDGET_DATA(sd)->resize_obj) return NULL;
index db531bf..0497b46 100644 (file)
@@ -300,15 +300,12 @@ _elm_progressbar_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_progressbar_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_progressbar_smart_class_new());
+   obj = elm_widget_add(_elm_progressbar_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 9df4381..03f84cd 100644 (file)
@@ -359,15 +359,12 @@ _elm_radio_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_radio_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_radio_smart_class_new());
+   obj = elm_widget_add(_elm_radio_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index b0c055a..b30aeda 100644 (file)
@@ -244,15 +244,12 @@ _elm_route_smart_set_user(Elm_Widget_Smart_Class *sc)
 EAPI Evas_Object *
 elm_route_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_route_smart_class_new());
+   obj = elm_widget_add(_elm_route_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 5405232..2c3f23b 100644 (file)
@@ -596,15 +596,12 @@ _elm_segment_control_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_segment_control_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_segment_control_smart_class_new());
+   obj = elm_widget_add(_elm_segment_control_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 08e24ca..895b665 100644 (file)
@@ -106,15 +106,12 @@ _elm_separator_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_separator_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_separator_smart_class_new());
+   obj = elm_widget_add(_elm_separator_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 81b6811..bc3e0d4 100644 (file)
@@ -801,15 +801,12 @@ _elm_slider_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_slider_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_slider_smart_class_new());
+   obj = elm_widget_add(_elm_slider_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index a9e8964..a784416 100644 (file)
@@ -446,15 +446,12 @@ _elm_slideshow_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_slideshow_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_slideshow_smart_class_new());
+   obj = elm_widget_add(_elm_slideshow_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 81f6061..3c276ab 100644 (file)
@@ -602,15 +602,12 @@ _elm_spinner_smart_set_user(Elm_Layout_Smart_Class *sc)
 EAPI Evas_Object *
 elm_spinner_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_spinner_smart_class_new());
+   obj = elm_widget_add(_elm_spinner_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 45d0fb1..9dae049 100644 (file)
@@ -224,15 +224,12 @@ _elm_table_smart_set_user(Elm_Widget_Smart_Class *sc)
 EAPI Evas_Object *
 elm_table_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_table_smart_class_new());
+   obj = elm_widget_add(_elm_table_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index ee50ada..d4c9018 100644 (file)
@@ -660,15 +660,12 @@ _elm_thumb_smart_set_user(Elm_Widget_Smart_Class *sc)
 EAPI Evas_Object *
 elm_thumb_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_thumb_smart_class_new());
+   obj = elm_widget_add(_elm_thumb_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 17d6649..6b8e4de 100644 (file)
@@ -266,6 +266,8 @@ _elm_video_smart_add(Evas_Object *obj)
 {
    EVAS_SMART_DATA_ALLOC(obj, Elm_Video_Smart_Data);
 
+   _elm_emotion_init();
+
    ELM_WIDGET_CLASS(_elm_video_parent_sc)->base.add(obj);
 
    elm_widget_can_focus_set(obj, EINA_TRUE);
@@ -327,7 +329,6 @@ _elm_video_smart_set_user(Elm_Layout_Smart_Class *sc)
    ELM_WIDGET_CLASS(sc)->focus_next = NULL;
    ELM_WIDGET_CLASS(sc)->focus_direction = NULL;
 
-
    sc->sizing_eval = _elm_video_smart_sizing_eval;
 }
 
@@ -335,17 +336,12 @@ EAPI Evas_Object *
 elm_video_add(Evas_Object *parent)
 {
 #ifdef HAVE_EMOTION
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   _elm_emotion_init();
-
-   obj = evas_object_smart_add(e, _elm_video_smart_class_new());
+   obj = elm_widget_add(_elm_video_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);
index 220d085..8797d0e 100644 (file)
@@ -1316,15 +1316,12 @@ _elm_web_smart_set_user(Elm_Widget_Smart_Class *sc)
 EAPI Evas_Object *
 elm_web_add(Evas_Object *parent)
 {
-   Evas *e;
    Evas_Object *obj;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
 
-   e = evas_object_evas_get(parent);
-   if (!e) return NULL;
-
-   obj = evas_object_smart_add(e, _elm_web_smart_class_new());
+   obj = elm_widget_add(_elm_web_smart_class_new(), parent);
+   if (!obj) return NULL;
 
    if (!elm_widget_sub_object_add(parent, obj))
      ERR("could not add %p as sub object of %p", obj, parent);