From a8dd079f747a6b0af444bb9b1f7114c133580ba2 Mon Sep 17 00:00:00 2001 From: tasn Date: Wed, 29 Jun 2011 09:30:56 +0000 Subject: [PATCH] Elm layout: add the elm_object_text_set/get hooks. deprecate: elm_layout_label_set/get git-svn-id: https://svn.enlightenment.org/svn/e/trunk/elementary@60807 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/Elementary.h.in | 6 ++-- src/lib/elm_layout.c | 96 +++++++++++++++++++++++++++++-------------------- 2 files changed, 61 insertions(+), 41 deletions(-) diff --git a/src/lib/Elementary.h.in b/src/lib/Elementary.h.in index dea3874..aeec6f7 100644 --- a/src/lib/Elementary.h.in +++ b/src/lib/Elementary.h.in @@ -2831,8 +2831,8 @@ extern "C" { EAPI void elm_layout_content_set(Evas_Object *obj, const char *swallow, Evas_Object *content) EINA_ARG_NONNULL(1); EAPI Evas_Object *elm_layout_content_get(const Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1); EAPI Evas_Object *elm_layout_content_unset(Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1); - EAPI void elm_layout_text_set(Evas_Object *obj, const char *part, const char *text) EINA_ARG_NONNULL(1); - EAPI const char *elm_layout_text_get(const Evas_Object *obj, const char *part) EINA_ARG_NONNULL(1); + EINA_DEPRECATED EAPI void elm_layout_text_set(Evas_Object *obj, const char *part, const char *text) EINA_ARG_NONNULL(1); + EINA_DEPRECATED EAPI const char *elm_layout_text_get(const Evas_Object *obj, const char *part) EINA_ARG_NONNULL(1); EAPI void elm_layout_box_append(Evas_Object *obj, const char *part, Evas_Object *child) EINA_ARG_NONNULL(1); EAPI void elm_layout_box_prepend(Evas_Object *obj, const char *part, Evas_Object *child) EINA_ARG_NONNULL(1); EAPI void elm_layout_box_insert_before(Evas_Object *obj, const char *part, Evas_Object *child, const Evas_Object *reference) EINA_ARG_NONNULL(1); @@ -2910,6 +2910,7 @@ extern "C" { * Elementary naming convention for its parts. * * @ingroup Layout + * @deprecate use elm_object_text_* instead. */ #define elm_layout_label_set(_ly, _txt) \ elm_layout_text_set((_ly), "elm.text", (_txt)) @@ -2920,6 +2921,7 @@ extern "C" { * Elementary naming convention for its parts. * * @ingroup Layout + * @deprecate use elm_object_text_* instead. */ #define elm_layout_label_get(_ly) \ elm_layout_text_get((_ly), "elm.text") diff --git a/src/lib/elm_layout.c b/src/lib/elm_layout.c index 23c2753..5e984a3 100644 --- a/src/lib/elm_layout.c +++ b/src/lib/elm_layout.c @@ -306,6 +306,57 @@ _parts_text_fix(Widget_Data *wd) } } +static void +_elm_layout_label_set(Evas_Object *obj, const char *part, const char *text) +{ + Widget_Data *wd = elm_widget_data_get(obj); + Subinfo *si = NULL; + Eina_List *l; + ELM_CHECK_WIDTYPE(obj, widtype); + if (!part) part = "elm.text"; + + EINA_LIST_FOREACH(wd->subs, l, si) + { + if ((si->type == TEXT) && (!strcmp(part, si->part))) + { + if (!text) + { + eina_stringshare_del(si->part); + eina_stringshare_del(si->p.text.text); + free(si); + edje_object_part_text_set(wd->lay, part, NULL); + wd->subs = eina_list_remove_list(wd->subs, l); + return; + } + else + break; + } + si = NULL; + } + + if (!si) + { + si = ELM_NEW(Subinfo); + if (!si) return; + si->type = TEXT; + si->part = eina_stringshare_add(part); + wd->subs = eina_list_append(wd->subs, si); + } + + eina_stringshare_replace(&si->p.text.text, text); + edje_object_part_text_set(wd->lay, part, text); + _request_sizing_eval(wd); +} + +static const char * +_elm_layout_label_get(const Evas_Object *obj, const char *part) +{ + ELM_CHECK_WIDTYPE(obj, widtype) NULL; + Widget_Data *wd = elm_widget_data_get(obj); + if (!part) part = "elm.text"; + return edje_object_part_text_get(wd->lay, part); +} + /** * Add a new layout to the parent * @@ -335,6 +386,8 @@ elm_layout_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_layout_label_set); + elm_widget_label_get_hook_set(obj, _elm_layout_label_get); wd->obj = obj; wd->lay = edje_object_add(e); @@ -522,46 +575,12 @@ elm_layout_content_unset(Evas_Object *obj, const char *swallow) * @param text The text to set * * @ingroup Layout + * @deprecate use elm_object_text_* instead. */ EAPI void elm_layout_text_set(Evas_Object *obj, const char *part, const char *text) { - Widget_Data *wd = elm_widget_data_get(obj); - Subinfo *si = NULL; - Eina_List *l; - ELM_CHECK_WIDTYPE(obj, widtype); - - EINA_LIST_FOREACH(wd->subs, l, si) - { - if ((si->type == TEXT) && (!strcmp(part, si->part))) - { - if (!text) - { - eina_stringshare_del(si->part); - eina_stringshare_del(si->p.text.text); - free(si); - edje_object_part_text_set(wd->lay, part, NULL); - wd->subs = eina_list_remove_list(wd->subs, l); - return; - } - else - break; - } - si = NULL; - } - - if (!si) - { - si = ELM_NEW(Subinfo); - if (!si) return; - si->type = TEXT; - si->part = eina_stringshare_add(part); - wd->subs = eina_list_append(wd->subs, si); - } - - eina_stringshare_replace(&si->p.text.text, text); - edje_object_part_text_set(wd->lay, part, text); - _request_sizing_eval(wd); + _elm_layout_label_set(obj, part, text); } /** @@ -573,13 +592,12 @@ elm_layout_text_set(Evas_Object *obj, const char *part, const char *text) * @return The text set in @p part * * @ingroup Layout + * @deprecate use elm_object_text_* instead. */ EAPI const char * elm_layout_text_get(const Evas_Object *obj, const char *part) { - ELM_CHECK_WIDTYPE(obj, widtype) NULL; - Widget_Data *wd = elm_widget_data_get(obj); - return edje_object_part_text_get(wd->lay, part); + return _elm_layout_label_get(obj, part); } /** -- 2.7.4