From 3589bec056fbe2cea498c81c01b37948658f531f Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Wed, 29 Jun 2011 07:11:50 +0000 Subject: [PATCH] Elm button: add the elm_object_text_set/get hooks. deprecate: elm_button_label_set and elm_button_label_get SVN revision: 60799 --- src/lib/Elementary.h.in | 6 ++++-- src/lib/elm_button.c | 46 +++++++++++++++++++++++++++++++--------------- 2 files changed, 35 insertions(+), 17 deletions(-) diff --git a/src/lib/Elementary.h.in b/src/lib/Elementary.h.in index 3f126e1..68c2fa5 100644 --- a/src/lib/Elementary.h.in +++ b/src/lib/Elementary.h.in @@ -2391,8 +2391,9 @@ extern "C" { * * @param obj The button object * @param label The text will be written on the button + * @deprecated use elm_object_text_set() instead. */ - EAPI void elm_button_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1); + EINA_DEPRECATED EAPI void elm_button_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1); /** * Get the label set for the button * @@ -2404,8 +2405,9 @@ extern "C" { * * @param obj The button object * @return The text set to the label, or NULL if nothing is set + * @deprecated use elm_object_text_set() instead. */ - EAPI const char *elm_button_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); + EINA_DEPRECATED EAPI const char *elm_button_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); /** * Set the icon used for the button * diff --git a/src/lib/elm_button.c b/src/lib/elm_button.c index 11a49e2..791d69e 100644 --- a/src/lib/elm_button.c +++ b/src/lib/elm_button.c @@ -285,6 +285,33 @@ _signal_unpressed(void *data, Evas_Object *obj __UNUSED__, const char *emission evas_object_smart_callback_call(data, SIG_UNPRESSED, NULL); } +static void +_elm_button_label_set(Evas_Object *obj, const char *item, const char *label) +{ + ELM_CHECK_WIDTYPE(obj, widtype); + Widget_Data *wd = elm_widget_data_get(obj); + if (item) return; + if (!wd) return; + eina_stringshare_replace(&wd->label, label); + if (label) + edje_object_signal_emit(wd->btn, "elm,state,text,visible", "elm"); + else + edje_object_signal_emit(wd->btn, "elm,state,text,hidden", "elm"); + edje_object_message_signal_process(wd->btn); + edje_object_part_text_set(wd->btn, "elm.text", label); + _sizing_eval(obj); +} + +static const char * +_elm_button_label_get(const Evas_Object *obj, const char *item) +{ + ELM_CHECK_WIDTYPE(obj, widtype) NULL; + Widget_Data *wd = elm_widget_data_get(obj); + if (item) return NULL; + if (!wd) return NULL; + return wd->label; +} + EAPI Evas_Object * elm_button_add(Evas_Object *parent) { @@ -308,6 +335,8 @@ elm_button_add(Evas_Object *parent) elm_widget_signal_emit_hook_set(obj, _signal_emit_hook); elm_widget_signal_callback_add_hook_set(obj, _signal_callback_add_hook); elm_widget_signal_callback_del_hook_set(obj, _signal_callback_del_hook); + elm_widget_label_set_hook_set(obj, _elm_button_label_set); + elm_widget_label_get_hook_set(obj, _elm_button_label_get); wd->btn = edje_object_add(e); _elm_theme_object_set(obj, wd->btn, "button", "base", "default"); @@ -332,26 +361,13 @@ elm_button_add(Evas_Object *parent) EAPI void elm_button_label_set(Evas_Object *obj, const char *label) { - ELM_CHECK_WIDTYPE(obj, widtype); - Widget_Data *wd = elm_widget_data_get(obj); - if (!wd) return; - eina_stringshare_replace(&wd->label, label); - if (label) - edje_object_signal_emit(wd->btn, "elm,state,text,visible", "elm"); - else - edje_object_signal_emit(wd->btn, "elm,state,text,hidden", "elm"); - edje_object_message_signal_process(wd->btn); - edje_object_part_text_set(wd->btn, "elm.text", label); - _sizing_eval(obj); + _elm_button_label_set(obj, NULL, label); } EAPI const char * elm_button_label_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->label; + return _elm_button_label_get(obj, NULL); } EAPI void -- 2.7.4