From be29fbf3954e7611b0dc4fd4bed393f2203c46c0 Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Fri, 4 Jan 2013 13:24:37 +0000 Subject: [PATCH] elementary/label - added elm_label_slide_go() SVN revision: 82172 --- ChangeLog | 2 +- NEWS | 1 + src/lib/elm_label.c | 21 +++++++++++++++++---- src/lib/elm_label.h | 25 ++++++++++++++++++++++++- 4 files changed, 43 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index bba708d..bbfd458 100644 --- a/ChangeLog +++ b/ChangeLog @@ -885,4 +885,4 @@ 2012-01-04 ChunEon Park - * Deprecate elm_label_slide_set()/get() and added elm_label_slide_mode_set()/get() instead. + * Deprecate elm_label_slide_set()/get() and added elm_label_slide_mode_set()/get() instead and elm_label_slide_go(). diff --git a/NEWS b/NEWS index b3c03a5..96de07e 100644 --- a/NEWS +++ b/NEWS @@ -27,6 +27,7 @@ Additions: * Add configuration: ELM_EXTERNAL_MENU, to switch between internal and extenal menus * Add elm_systray.[ch]: Add support to D-Bus systray icons. * Add elm_label_slide_mode_set(), elm_label_slide_mode_get() + * Add elm_label_slide_go() Improvements: diff --git a/src/lib/elm_label.c b/src/lib/elm_label.c index a62d712..f92ced1 100644 --- a/src/lib/elm_label.c +++ b/src/lib/elm_label.c @@ -585,18 +585,15 @@ elm_label_slide_mode_set(Evas_Object *obj, Elm_Label_Slide_Mode mode) { ELM_LABEL_CHECK(obj); eo_do(obj, elm_obj_label_slide_mode_set(mode)); - } static void -_slide_mode_set(Eo *obj, void *_pd, va_list *list) +_slide_mode_set(Eo *obj __UNUSED__, void *_pd, va_list *list) { Elm_Label_Slide_Mode mode = va_arg(*list, Elm_Label_Slide_Mode); Elm_Label_Smart_Data *sd = _pd; if (sd->slide_mode == mode) return; sd->slide_mode = mode; - _label_slide_change(obj); - elm_layout_sizing_eval(obj); } EAPI Elm_Label_Slide_Mode @@ -669,6 +666,20 @@ elm_label_slide_duration_get(const Evas_Object *obj) return ret; } +EAPI void +elm_label_slide_go(Evas_Object *obj) +{ + ELM_LABEL_CHECK(obj); + eo_do((Eo *) obj, elm_obj_label_slide_go()); +} + +static void +_slide_go(Eo *obj, void *_pd __UNUSED__, va_list *list __UNUSED__) +{ + _label_slide_change(obj); + elm_layout_sizing_eval(obj); +} + static void _slide_duration_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) { @@ -725,6 +736,7 @@ _class_constructor(Eo_Class *klass) EO_OP_FUNC(ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_SLIDE_MODE_GET), _slide_mode_get), EO_OP_FUNC(ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_SLIDE_DURATION_SET), _slide_duration_set), EO_OP_FUNC(ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_SLIDE_DURATION_GET), _slide_duration_get), + EO_OP_FUNC(ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_SLIDE_GO), _slide_go), EO_OP_FUNC_SENTINEL }; eo_class_funcs_set(klass, func_desc); @@ -740,6 +752,7 @@ static const Eo_Op_Description op_desc[] = { EO_OP_DESCRIPTION(ELM_OBJ_LABEL_SUB_ID_SLIDE_MODE_GET, "Get current slide effect mode."), EO_OP_DESCRIPTION(ELM_OBJ_LABEL_SUB_ID_SLIDE_DURATION_SET, "Set the slide duration (speed) of the label."), EO_OP_DESCRIPTION(ELM_OBJ_LABEL_SUB_ID_SLIDE_DURATION_GET, "Get the slide duration(speed) of the label."), + EO_OP_DESCRIPTION(ELM_OBJ_LABEL_SUB_ID_SLIDE_GO, "Start slide effect."), EO_OP_DESCRIPTION_SENTINEL }; static const Eo_Class_Description class_desc = { diff --git a/src/lib/elm_label.h b/src/lib/elm_label.h index 8d8dbbe..6731ed5 100644 --- a/src/lib/elm_label.h +++ b/src/lib/elm_label.h @@ -57,6 +57,7 @@ enum ELM_OBJ_LABEL_SUB_ID_SLIDE_MODE_GET, ELM_OBJ_LABEL_SUB_ID_SLIDE_DURATION_SET, ELM_OBJ_LABEL_SUB_ID_SLIDE_DURATION_GET, + ELM_OBJ_LABEL_SUB_ID_SLIDE_GO, ELM_OBJ_LABEL_SUB_ID_LAST }; @@ -183,6 +184,17 @@ enum */ #define elm_obj_label_slide_duration_get(ret) ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_SLIDE_DURATION_GET), EO_TYPECHECK(double *, ret) +/** + * @def elm_obj_label_slide_go + * @since 1.8 + * + * @brief Start slide effect + * + * @see elm_label_slide_mode_set + */ +#define elm_obj_label_slide_go() ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_SLIDE_GO) + + typedef enum { ELM_LABEL_SLIDE_MODE_NONE = 0, /**< no slide effect */ @@ -347,12 +359,23 @@ EAPI void elm_label_slide_mode_set(Evas_Object *obj, Elm_ * @param obj The label object * @return The slide mode * - * @see elm_label_slide_set() + * @see elm_label_slide_mode_set() * * @ingroup Label */ EAPI Elm_Label_Slide_Mode elm_label_slide_mode_get(const Evas_Object *obj); /** + * @brief Start slide effect. + * + * @param obj The label object + * + * @see elm_label_slide_mode_set() + * + * @ingroup Label + */ +EAPI void elm_label_slide_go(Evas_Object *obj); + +/** * @} */ -- 2.7.4