From 8411906cc7cdcc59a57dd69ebb24667d9b4cc60b Mon Sep 17 00:00:00 2001 From: Bruno Dilly Date: Mon, 8 Oct 2012 22:39:15 +0000 Subject: [PATCH] elementary: add special value del / get funcs to spinner SVN revision: 77590 --- src/lib/elm_spinner.c | 42 ++++++++++++++++++++++++++++++++++++++++++ src/lib/elm_spinner.h | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c index d9b7a4d..cda375b 100644 --- a/src/lib/elm_spinner.c +++ b/src/lib/elm_spinner.c @@ -880,6 +880,48 @@ elm_spinner_special_value_add(Evas_Object *obj, } EAPI void +elm_spinner_special_value_del(Evas_Object *obj, + double value) +{ + Elm_Spinner_Special_Value *sv; + Eina_List *l; + + ELM_SPINNER_CHECK(obj); + ELM_SPINNER_DATA_GET(obj, sd); + + EINA_LIST_FOREACH(sd->special_values, l, sv) + { + if (sv->value != value) + continue; + + sd->special_values = eina_list_remove(sd->special_values, sv); + eina_stringshare_del(sv->label); + free(sv); + _label_write(obj); + return; + } +} + +EAPI const char * +elm_spinner_special_value_get(Evas_Object *obj, + double value) +{ + Elm_Spinner_Special_Value *sv; + Eina_List *l; + + ELM_SPINNER_CHECK(obj) NULL; + ELM_SPINNER_DATA_GET(obj, sd); + + EINA_LIST_FOREACH(sd->special_values, l, sv) + { + if (sv->value == value) + return sv->label; + } + + return NULL; +} + +EAPI void elm_spinner_editable_set(Evas_Object *obj, Eina_Bool editable) { diff --git a/src/lib/elm_spinner.h b/src/lib/elm_spinner.h index 5e1cd8f..1a0682e 100644 --- a/src/lib/elm_spinner.h +++ b/src/lib/elm_spinner.h @@ -311,11 +311,45 @@ EAPI Eina_Bool elm_spinner_editable_get(const Evas_Object *obj); * evas_object_show(sp); * @endcode * + * @note If another label was previously set to @p value, it will be replaced + * by the new label. + * + * @see elm_spinner_special_value_get(). + * @see elm_spinner_special_value_del(). + * * @ingroup Spinner */ EAPI void elm_spinner_special_value_add(Evas_Object *obj, double value, const char *label); /** + * Delete the special string display in the place of the numerical value. + * + * @param obj The spinner object. + * @param value The replaced value. + * + * It will remove a previously added special value. After this, the spinner + * will display the value itself instead of a label. + * + * @see elm_spinner_special_value_add() for more details. + * + * @ingroup Spinner + */ +EAPI void elm_spinner_special_value_del(Evas_Object *obj, double value); + +/** + * Get the special string display in the place of the numerical value. + * + * @param obj The spinner object. + * @param value The replaced value. + * @return The used label. + * + * @see elm_spinner_special_value_add() for more details. + * + * @ingroup Spinner + */ +EAPI const char *elm_spinner_special_value_get(Evas_Object *obj, double value); + +/** * Set the interval on time updates for an user mouse button hold * on spinner widgets' arrows. * -- 2.7.4