elementary/button -> use elm_object_content_set/get/unset
authorhermet <hermet@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 25 Oct 2011 01:23:25 +0000 (01:23 +0000)
committerMike McCormack <mj.mccormack@samsung.com>
Wed, 9 Nov 2011 00:21:40 +0000 (09:21 +0900)
git-svn-id: https://svn.enlightenment.org/svn/e/trunk/elementary@64370 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/bin/test_button.c
src/bin/test_map.c
src/bin/test_naviframe.c
src/bin/test_transit.c
src/edje_externals/elm_button.c
src/lib/Elementary.h.in
src/lib/elc_fileselector.c
src/lib/elc_fileselector_button.c
src/lib/elc_hoversel.c
src/lib/elc_player.c
src/lib/elm_button.c

index e9d71fe..2b58806 100644 (file)
@@ -64,7 +64,7 @@ test_button(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
    evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
    bt = elm_button_add(win);
    elm_object_text_set(bt, "Icon sized to button");
-   elm_button_icon_set(bt, ic);
+   elm_object_content_set(bt, ic);
    evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)1);
    evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)1);
    elm_box_pack_end(bx, bt);
@@ -77,7 +77,7 @@ test_button(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
    elm_icon_scale_set(ic, 0, 0);
    bt = elm_button_add(win);
    elm_object_text_set(bt, "Icon no scale");
-   elm_button_icon_set(bt, ic);
+   elm_object_content_set(bt, ic);
    evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)2);
    evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)2);
    elm_box_pack_end(bx, bt);
@@ -90,7 +90,7 @@ test_button(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
    evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
    bt = elm_button_add(win);
    elm_object_text_set(bt, "Disabled Button");
-   elm_button_icon_set(bt, ic);
+   elm_object_content_set(bt, ic);
    elm_object_disabled_set(bt, 1);
    evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)3);
    evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)3);
@@ -103,7 +103,7 @@ test_button(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
    elm_icon_file_set(ic, buf, NULL);
    evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
    bt = elm_button_add(win);
-   elm_button_icon_set(bt, ic);
+   elm_object_content_set(bt, ic);
    elm_object_disabled_set(bt, 1);
    evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)4);
    evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)4);
@@ -127,7 +127,7 @@ test_button(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
    elm_icon_file_set(ic, buf, NULL);
    elm_icon_scale_set(ic, 0, 0);
    bt = elm_button_add(win);
-   elm_button_icon_set(bt, ic);
+   elm_object_content_set(bt, ic);
    evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)6);
    evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)6);
    elm_box_pack_end(bx, bt);
@@ -148,7 +148,7 @@ test_button(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
    evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
    bt = elm_button_add(win);
    elm_object_style_set(bt, "anchor");
-   elm_button_icon_set(bt, ic);
+   elm_object_content_set(bt, ic);
    evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)8);
    evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)8);
    elm_box_pack_end(bx, bt);
@@ -161,7 +161,7 @@ test_button(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
    evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
    bt = elm_button_add(win);
    elm_object_style_set(bt, "anchor");
-   elm_button_icon_set(bt, ic);
+   elm_object_content_set(bt, ic);
    elm_object_disabled_set(bt, 1);
    evas_object_smart_callback_add(bt, "clicked", _bt_clicked, (void *)9);
    evas_object_smart_callback_add(bt, "unpressed", _bt_unpressed, (void *)9);
index f85a12a..a341cf9 100644 (file)
@@ -546,7 +546,7 @@ _marker_get(Evas_Object *obj, Elm_Map_Marker *marker __UNUSED__, void *data)
         evas_object_show(icon);
 
         Evas_Object *o = elm_button_add(obj);
-        elm_button_icon_set(o, icon);
+        elm_object_content_set(o, icon);
         evas_object_show(o);
         elm_box_pack_end(bx, o);
      }
index 8cc9cd9..df4973d 100644 (file)
@@ -37,7 +37,7 @@ _page4(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
    snprintf(buf, sizeof(buf), "%s/images/icon_right_arrow.png", elm_app_data_dir_get());
    elm_icon_file_set(ic, buf, NULL);
    evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
-   elm_button_icon_set(bt, ic);
+   elm_object_content_set(bt, ic);
 
    bt2 = elm_button_add(nf);
    evas_object_size_hint_align_set(bt2, EVAS_HINT_FILL, EVAS_HINT_FILL);
@@ -115,7 +115,7 @@ _page2(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
    snprintf(buf, sizeof(buf), "%s/images/icon_right_arrow.png", elm_app_data_dir_get());
    elm_icon_file_set(ic, buf, NULL);
    evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
-   elm_button_icon_set(bt, ic);
+   elm_object_content_set(bt, ic);
 
    it = elm_naviframe_item_push(nf,
                                 "Page 2",
index e1ddc39..5c23418 100644 (file)
@@ -255,7 +255,7 @@ test_transit(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_inf
 
    bt = elm_button_add(win);
    elm_object_text_set(bt, "ImageAnimation Effect");
-   elm_button_icon_set(bt, ic);
+   elm_object_content_set(bt, ic);
    elm_box_pack_end(bx, bt);
    evas_object_show(bt);
    evas_object_show(ic);
@@ -386,7 +386,7 @@ test_transit5(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
    evas_object_size_hint_max_set(ic, 50, 50);
 
    bt = elm_button_add(win);
-   elm_button_icon_set(bt, ic);
+   elm_object_content_set(bt, ic);
    elm_object_text_set(bt, "Before Button - Blend Effect");
    evas_object_move(bt, 25, 125);
    evas_object_resize(bt, 250, 50);
@@ -398,7 +398,7 @@ test_transit5(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
    evas_object_size_hint_max_set(ic, 50, 50);
 
    bt2 = elm_button_add(win);
-   elm_button_icon_set(bt2, ic);
+   elm_object_content_set(bt2, ic);
    elm_object_text_set(bt2, "After Button - Blend Effect");
    evas_object_move(bt2, 25, 125);
    evas_object_resize(bt2, 250, 50);
@@ -432,7 +432,7 @@ test_transit6(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
    evas_object_size_hint_max_set(ic, 50, 50);
 
    bt = elm_button_add(win);
-   elm_button_icon_set(bt, ic);
+   elm_object_content_set(bt, ic);
    elm_object_text_set(bt, "Before Button - Fade Effect");
    evas_object_move(bt, 25, 125);
    evas_object_resize(bt, 250, 50);
@@ -444,7 +444,7 @@ test_transit6(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
    evas_object_size_hint_max_set(ic, 50, 50);
 
    bt2 = elm_button_add(win);
-   elm_button_icon_set(bt2, ic);
+   elm_object_content_set(bt2, ic);
    elm_object_text_set(bt2, "After Button - Fade Effect");
    evas_object_move(bt2, 25, 125);
    evas_object_resize(bt2, 250, 50);
index f1b6f38..2002602 100644 (file)
@@ -19,7 +19,7 @@ external_button_state_set(void *data __UNUSED__, Evas_Object *obj, const void *f
    if (p->label)
      elm_object_text_set(obj, p->label);
    if (p->icon)
-     elm_button_icon_set(obj, p->icon);
+     elm_object_content_set(obj, p->icon);
 }
 
 static Eina_Bool
@@ -39,7 +39,7 @@ external_button_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_Ex
          {
             Evas_Object *icon = external_common_param_icon_get(obj, param);
             if ((strcmp(param->s, "")) && (!icon)) return EINA_FALSE;
-            elm_button_icon_set(obj, icon);
+            elm_object_content_set(obj, icon);
             return EINA_TRUE;
          }
      }
index 6d3e432..725463f 100644 (file)
@@ -6168,7 +6168,7 @@ extern "C" {
     * @param obj The button object
     * @param icon The icon object for the button
     */
-   EAPI void         elm_button_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI void         elm_button_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
    /**
     * Get the icon used for the button
     *
@@ -6181,7 +6181,7 @@ extern "C" {
     *
     * @see elm_button_icon_unset()
     */
-   EAPI Evas_Object *elm_button_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_button_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Remove the icon set without deleting it and return the object
     *
@@ -6193,7 +6193,7 @@ extern "C" {
     * @param obj The button object
     * @return The icon object that was being used
     */
-   EAPI Evas_Object *elm_button_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EINA_DEPRECATED EAPI Evas_Object *elm_button_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
    /**
     * Turn on/off the autorepeat event generated when the button is kept pressed
     *
index 21cf153..598df2b 100644 (file)
@@ -832,7 +832,7 @@ elm_fileselector_add(Evas_Object *parent)
    evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
    bt = elm_button_add(parent);
    elm_widget_mirrored_automatic_set(bt, EINA_FALSE);
-   elm_button_icon_set(bt, ic);
+   elm_object_content_set(bt, ic);
    elm_object_domain_translatable_text_set(bt, PACKAGE, N_("Up"));
    evas_object_size_hint_align_set(bt, 0.0, 0.0);
 
@@ -847,7 +847,7 @@ elm_fileselector_add(Evas_Object *parent)
    evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
    bt = elm_button_add(parent);
    elm_widget_mirrored_automatic_set(bt, EINA_FALSE);
-   elm_button_icon_set(bt, ic);
+   elm_object_content_set(bt, ic);
    elm_object_domain_translatable_text_set(bt, PACKAGE, N_("Home"));
    evas_object_size_hint_align_set(bt, 0.0, 0.0);
 
index 2ba7290..c5197f6 100644 (file)
@@ -497,7 +497,7 @@ elm_fileselector_button_icon_set(Evas_Object *obj,
         evas_object_del(icon);
         return;
      }
-   elm_button_icon_set(wd->btn, icon);
+   elm_object_content_set(wd->btn, icon);
 }
 
 EAPI Evas_Object *
@@ -506,7 +506,7 @@ elm_fileselector_button_icon_get(const Evas_Object *obj)
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
    if (!wd) return NULL;
-   return elm_button_icon_get(wd->btn);
+   return elm_object_content_get(wd->btn);
 }
 
 EAPI Evas_Object *
@@ -515,6 +515,6 @@ elm_fileselector_button_icon_unset(Evas_Object *obj)
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
    if (!wd) return NULL;
-   return elm_button_icon_unset(wd->btn);
+   return elm_object_content_unset(wd->btn);
 }
 
index 772ca10..e0b983c 100644 (file)
@@ -204,7 +204,7 @@ _activate(Evas_Object *obj)
                elm_icon_file_set(ic, item->icon_file, item->icon_group);
              else if (item->icon_type == ELM_ICON_STANDARD)
                elm_icon_standard_set(ic, item->icon_file);
-             elm_button_icon_set(bt, ic);
+             elm_object_content_set(bt, ic);
              evas_object_show(ic);
           }
         evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
@@ -372,7 +372,7 @@ elm_hoversel_icon_set(Evas_Object *obj, Evas_Object *icon)
    ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd = elm_widget_data_get(obj);
    if (!wd) return;
-   elm_button_icon_set(wd->btn, icon);
+   elm_object_content_set(wd->btn, icon);
 }
 
 EAPI Evas_Object *
@@ -381,7 +381,7 @@ elm_hoversel_icon_get(const Evas_Object *obj)
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
    if ((!wd) || (!wd->btn)) return NULL;
-   return elm_button_icon_get(wd->btn);
+   return elm_object_content_get(wd->btn);
 }
 
 EAPI Evas_Object *
@@ -390,7 +390,7 @@ elm_hoversel_icon_unset(Evas_Object *obj)
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
    Widget_Data *wd = elm_widget_data_get(obj);
    if ((!wd) || (!wd->btn)) return NULL;
-   return elm_button_icon_unset(wd->btn);
+   return elm_object_content_unset(wd->btn);
 }
 
 EAPI void
index 65d54ca..fcf8ed0 100644 (file)
@@ -429,7 +429,7 @@ _player_button_add(Evas_Object *parent, Evas_Object *obj, Evas_Object *layout, c
    evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
    bt = elm_button_add(parent);
    elm_widget_mirrored_automatic_set(bt, EINA_FALSE);
-   elm_button_icon_set(bt, ic);
+   elm_object_content_set(bt, ic);
    evas_object_size_hint_align_set(bt, 0.0, 0.0);
    elm_object_style_set(bt, "anchor");
    evas_object_smart_callback_add(bt, "clicked", func, obj);
index 084d165..1976ff4 100644 (file)
@@ -30,6 +30,9 @@ static void _del_hook(Evas_Object *obj);
 static void _del_pre_hook(Evas_Object *obj);
 static void _theme_hook(Evas_Object *obj);
 static void _disable_hook(Evas_Object *obj);
+static void _content_set_hook(Evas_Object *obj, const char *part, Evas_Object *content);
+static Evas_Object *_content_get_hook(const Evas_Object *obj, const char *part);
+static Evas_Object *_content_unset_hook(Evas_Object *obj, const char *part);
 static void _sizing_eval(Evas_Object *obj);
 static void _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info);
 static void _sub_del(void *data, Evas_Object *obj, void *event_info);
@@ -206,6 +209,51 @@ _signal_callback_del_hook(Evas_Object *obj, const char *emission, const char *so
 }
 
 static void
+_content_set_hook(Evas_Object *obj, const char *part __UNUSED__, Evas_Object *content)
+{
+   ELM_CHECK_WIDTYPE(obj, widtype);
+   Widget_Data *wd = elm_widget_data_get(obj);
+   if (!wd) return;
+   if (wd->icon == content) return;
+   if (wd->icon) evas_object_del(wd->icon);
+   wd->icon = content;
+   if (content)
+     {
+        elm_widget_sub_object_add(obj, content);
+        evas_object_event_callback_add(content,
+                                       EVAS_CALLBACK_CHANGED_SIZE_HINTS,
+                                       _changed_size_hints, obj);
+        edje_object_part_swallow(wd->btn, "elm.swallow.content", content);
+        edje_object_signal_emit(wd->btn, "elm,state,icon,visible", "elm");
+        edje_object_message_signal_process(wd->btn);
+     }
+   _sizing_eval(obj);
+}
+
+static Evas_Object *
+_content_get_hook(const Evas_Object *obj, const char *part __UNUSED__)
+{
+   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
+   Widget_Data *wd = elm_widget_data_get(obj);
+   if (!wd) return NULL;
+   return wd->icon;
+}
+
+static Evas_Object *
+_content_unset_hook(Evas_Object *obj, const char *part __UNUSED__)
+{
+   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
+   Widget_Data *wd = elm_widget_data_get(obj);
+   if (!wd) return NULL;
+   if (!wd->icon) return NULL;
+   Evas_Object *icon = wd->icon;
+   elm_widget_sub_object_del(obj, wd->icon);
+   edje_object_part_unswallow(wd->btn, wd->icon);
+   wd->icon = NULL;
+   return icon;
+}
+
+static void
 _sizing_eval(Evas_Object *obj)
 {
    Widget_Data *wd = elm_widget_data_get(obj);
@@ -401,6 +449,9 @@ elm_button_add(Evas_Object *parent)
    elm_widget_signal_callback_del_hook_set(obj, _signal_callback_del_hook);
    elm_widget_text_set_hook_set(obj, _elm_button_label_set);
    elm_widget_text_get_hook_set(obj, _elm_button_label_get);
+   elm_widget_content_set_hook_set(obj, _content_set_hook);
+   elm_widget_content_get_hook_set(obj, _content_get_hook);
+   elm_widget_content_unset_hook_set(obj, _content_unset_hook);
 
    wd->btn = edje_object_add(e);
    _elm_theme_object_set(obj, wd->btn, "button", "base", "default");
@@ -505,48 +556,23 @@ elm_button_label_get(const Evas_Object *obj)
    return _elm_button_label_get(obj, NULL);
 }
 
+
 EAPI void
 elm_button_icon_set(Evas_Object *obj, Evas_Object *icon)
 {
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   if (wd->icon == icon) return;
-   if (wd->icon) evas_object_del(wd->icon);
-   wd->icon = icon;
-   if (icon)
-     {
-        elm_widget_sub_object_add(obj, icon);
-        evas_object_event_callback_add(icon, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
-                                       _changed_size_hints, obj);
-        edje_object_part_swallow(wd->btn, "elm.swallow.content", icon);
-        edje_object_signal_emit(wd->btn, "elm,state,icon,visible", "elm");
-        edje_object_message_signal_process(wd->btn);
-     }
-   _sizing_eval(obj);
+   _content_set_hook(obj, NULL, icon);
 }
 
 EAPI Evas_Object *
 elm_button_icon_get(const Evas_Object *obj)
 {
-   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return NULL;
-   return wd->icon;
+   return _content_get_hook(obj, NULL);
 }
 
 EAPI Evas_Object *
 elm_button_icon_unset(Evas_Object *obj)
 {
-   ELM_CHECK_WIDTYPE(obj, widtype) NULL;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return NULL;
-   if (!wd->icon) return NULL;
-   Evas_Object *icon = wd->icon;
-   elm_widget_sub_object_del(obj, wd->icon);
-   edje_object_part_unswallow(wd->btn, wd->icon);
-   wd->icon = NULL;
-   return icon;
+   return _content_unset_hook(obj, NULL);
 }
 
 EAPI void