From 3ce61868e88fa95d507e01587bf4cbbec9b0d1a1 Mon Sep 17 00:00:00 2001 From: davemds Date: Sun, 9 Feb 2014 20:21:21 +0100 Subject: [PATCH] Revert "label : Added the API to match the speed of label to different label" As discussed I will try to implement the same functionality but with a different api. This reverts commit 56a2c96ea7a731d6066aa7cb0964a633c5bed35c. --- src/bin/test_label.c | 47 -------------------------------- src/lib/elm_label.c | 68 +++------------------------------------------- src/lib/elm_label_eo.h | 32 ---------------------- src/lib/elm_label_legacy.h | 32 ---------------------- src/lib/elm_widget_label.h | 5 ---- 5 files changed, 4 insertions(+), 180 deletions(-) diff --git a/src/bin/test_label.c b/src/bin/test_label.c index d5e7898..7e6a73d 100644 --- a/src/bin/test_label.c +++ b/src/bin/test_label.c @@ -113,8 +113,6 @@ void test_label2(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *win, *gd, *rect, *lb, *rd, *rdg, *sl; - double duration; - Evas_Coord textlen; win = elm_win_util_standard_add("label2", "Label 2"); elm_win_autodel_set(win, EINA_TRUE); @@ -214,51 +212,6 @@ test_label2(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_in elm_grid_pack(gd, sl, 5, 60, 90, 10); evas_object_show(sl); - /*Test label slide speed */ - lb = elm_label_add(win); - elm_object_text_set(lb, "Test Label Slide Speed:"); - elm_label_slide_mode_set(lb, ELM_LABEL_SLIDE_MODE_ALWAYS); - elm_label_slide_go(lb); - elm_grid_pack(gd, lb, 5, 70, 90, 10); - evas_object_show(lb); - - rect = evas_object_rectangle_add(evas_object_evas_get(win)); - elm_grid_pack(gd, rect, 5, 80, 90, 10); - evas_object_color_set(rect, 255, 125, 125, 255); - evas_object_show(rect); - - lb = elm_label_add(win); - elm_object_style_set(lb, "slide_long"); - elm_object_text_set(lb, - "This is a label set to slide and this will" - " test the speed of label with the below label." - " This label has few extra char to test"); - elm_label_slide_duration_set(lb, 8.0); - elm_label_slide_mode_set(lb, ELM_LABEL_SLIDE_MODE_ALWAYS); - elm_label_slide_go(lb); - elm_grid_pack(gd, lb, 5, 80, 90, 10); - evas_object_show(lb); - - //Get the required parameter of the previous label - duration = elm_label_slide_duration_get(lb); - textlen = elm_label_slide_text_length_get(lb); - - rect = evas_object_rectangle_add(evas_object_evas_get(win)); - elm_grid_pack(gd, rect, 5, 90, 90, 10); - evas_object_color_set(rect, 255, 125, 125, 255); - evas_object_show(rect); - - lb = elm_label_add(win); - elm_object_style_set(lb, "slide_long"); - elm_object_text_set(lb, - "This is a label set to slide and this will" - " match the speed of the upper label."); - elm_label_slide_mode_set(lb, ELM_LABEL_SLIDE_MODE_ALWAYS); - elm_label_slide_speed_match(lb, duration, textlen); - elm_label_slide_go(lb); - elm_grid_pack(gd, lb, 5, 90, 90, 10); - evas_object_show(lb); - evas_object_resize(win, 320, 320); evas_object_show(win); } diff --git a/src/lib/elm_label.c b/src/lib/elm_label.c index a46badf..976b186 100644 --- a/src/lib/elm_label.c +++ b/src/lib/elm_label.c @@ -78,9 +78,7 @@ static void _label_slide_change(Evas_Object *obj) { Evas_Object *tb; - Evas_Coord lw; char *plaintxt; - double speed; int plainlen = 0; ELM_LABEL_DATA_GET(obj, sd); @@ -140,17 +138,6 @@ _label_slide_change(Evas_Object *obj) Edje_Message_Float_Set *msg = alloca(sizeof(Edje_Message_Float_Set) + (sizeof(double))); - evas_object_geometry_get(wd->resize_obj, - NULL, NULL, &lw, NULL); - if ((sd->slide_duration_recalc) && - (lw > 0) && - (sd->matchslide_duration > 0)) - { - speed = (sd->matchslide_textlen + lw) / (sd->matchslide_duration); - sd->slide_duration = (sd->text_formatted_length + lw) / (speed); - sd->slide_duration_recalc = EINA_FALSE; - } - msg->count = 1; msg->val[0] = sd->slide_duration; @@ -227,10 +214,9 @@ _on_label_resize(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - ELM_LABEL_DATA_GET(data, sd); + ELM_LABEL_DATA_GET(data, sd); - if (sd->slide_duration_recalc) _label_slide_change(data); - if (sd->linewrap) elm_layout_sizing_eval(data); + if (sd->linewrap) elm_layout_sizing_eval(data); } static int @@ -338,8 +324,6 @@ _stringshare_key_value_replace(const char **srcstring, static void _elm_label_smart_text_set(Eo *obj, void *_pd, va_list *list) { - Evas_Object *tb; - Elm_Label_Smart_Data *sd = _pd; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); const char *part = va_arg(*list, const char *); @@ -357,11 +341,6 @@ _elm_label_smart_text_set(Eo *obj, void *_pd, va_list *list) sd->lastw = 0; eo_do(obj, elm_obj_layout_sizing_eval()); } - - tb = (Evas_Object *)edje_object_part_object_get(wd->resize_obj, - "elm.text"); - evas_object_textblock_size_formatted_get(tb, &sd->text_formatted_length, NULL); - if (ret) *ret = int_ret; } @@ -695,41 +674,6 @@ elm_label_slide_duration_get(const Evas_Object *obj) } EAPI void -elm_label_slide_speed_match(Evas_Object *obj, double duration, Evas_Coord textlen) -{ - ELM_LABEL_CHECK(obj); - eo_do(obj, elm_obj_label_slide_speed_match(duration, textlen)); -} - -static void -_slide_speed_match(Eo *obj EINA_UNUSED, void *_pd, va_list *list) -{ - double duration = va_arg(*list, double); - Evas_Coord textlen = va_arg(*list, Evas_Coord); - Elm_Label_Smart_Data *sd = _pd; - sd->matchslide_duration = duration; - sd->matchslide_textlen = textlen; - sd->slide_duration_recalc = EINA_TRUE; -} - -EAPI Evas_Coord -elm_label_slide_text_length_get(const Evas_Object *obj) -{ - ELM_LABEL_CHECK(obj) 0; - Evas_Coord ret = 0; - eo_do((Eo *) obj, elm_obj_label_slide_text_length_get(&ret)); - return ret; -} - -static void -_slide_textlen_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) -{ - Evas_Coord *ret = va_arg(*list, Evas_Coord *); - Elm_Label_Smart_Data *sd = _pd; - *ret = sd->text_formatted_length; -} - -EAPI void elm_label_slide_go(Evas_Object *obj) { ELM_LABEL_CHECK(obj); @@ -799,8 +743,6 @@ _class_constructor(Eo_Class *klass) 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(ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_SLIDE_SPEED_MATCH), _slide_speed_match), - EO_OP_FUNC(ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_TEXT_LENGTH_GET), _slide_textlen_get), EO_OP_FUNC_SENTINEL }; eo_class_funcs_set(klass, func_desc); @@ -816,11 +758,9 @@ static const Eo_Op_Description op_desc[] = { EO_OP_DESCRIPTION(ELM_OBJ_LABEL_SUB_ID_ELLIPSIS_GET, "Get the ellipsis behavior of the label."), EO_OP_DESCRIPTION(ELM_OBJ_LABEL_SUB_ID_SLIDE_MODE_SET, "Set slide effect mode of label widget."), 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 of the label."), - EO_OP_DESCRIPTION(ELM_OBJ_LABEL_SUB_ID_SLIDE_DURATION_GET, "Get the slide duration of the label."), + 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(ELM_OBJ_LABEL_SUB_ID_SLIDE_SPEED_MATCH, "Set the required parameter to match slide speed."), - EO_OP_DESCRIPTION(ELM_OBJ_LABEL_SUB_ID_TEXT_LENGTH_GET, "Get the text length of the label."), EO_OP_DESCRIPTION_SENTINEL }; static const Eo_Class_Description class_desc = { diff --git a/src/lib/elm_label_eo.h b/src/lib/elm_label_eo.h index efd4013..f79cb95 100644 --- a/src/lib/elm_label_eo.h +++ b/src/lib/elm_label_eo.h @@ -22,8 +22,6 @@ enum 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_SLIDE_SPEED_MATCH, - ELM_OBJ_LABEL_SUB_ID_TEXT_LENGTH_GET, ELM_OBJ_LABEL_SUB_ID_LAST }; @@ -181,36 +179,6 @@ enum * @ingroup Label */ #define elm_obj_label_slide_go() ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_SLIDE_GO) - -/** - * @def elm_obj_label_slide_speed_match - * @since 1.9 - * - * @brief Set the required parameter to set the same speed of the label - * - * @param[in] duration - * @param[in] textlen - * - * @see elm_label_slide_duration_set - * - * @ingroup Label - */ -#define elm_obj_label_slide_speed_match(duration, textlen) ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_SLIDE_SPEED_MATCH), EO_TYPECHECK(double, duration), EO_TYPECHECK(Evas_Coord, textlen) - -/** - * @def elm_obj_label_slide_text_length_get - * @since 1.9 - * - * @brief Get the text label length - * - * @param[out] ret - * - * @see elm_object_text_set - * - * @ingroup Label - */ -#define elm_obj_label_slide_text_length_get(ret) ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_TEXT_LENGTH_GET), EO_TYPECHECK(Evas_Coord * , ret) - /** * @} */ diff --git a/src/lib/elm_label_legacy.h b/src/lib/elm_label_legacy.h index 04cfc7e..b3222b8 100644 --- a/src/lib/elm_label_legacy.h +++ b/src/lib/elm_label_legacy.h @@ -162,35 +162,3 @@ EAPI double elm_label_slide_duration_get(const Evas_Object * @ingroup Label */ EAPI void elm_label_slide_go(Evas_Object *obj); - -/** - * @brief Set the required parameter to set the same speed of the label - * - * @param obj The label object - * @param duration The duration of the previous slide label - * @param duration The textlen of the previous slide label text - * - * @note If this API is called then it is not required to set the - * duration of the label. Internally it will calcuate the duration - * which will match the speed of the previous label. If the duration - * is explicitly set it will override these parameters. - * - * @see elm_label_slide_duration_set() - * @since 1.9 - * - * @ingroup Label - */ -EAPI void elm_label_slide_speed_match(Evas_Object *obj, double duration, Evas_Coord textlen); - -/** - * @brief Get the text length of the label - * - * @param obj The label object - * @return The text length of the label - * - * @see elm_object_text_set() - * @since 1.9 - * - * @ingroup Label - */ -EAPI Evas_Coord elm_label_slide_text_length_get(const Evas_Object *obj); diff --git a/src/lib/elm_widget_label.h b/src/lib/elm_widget_label.h index 4464e76..4e2ac72 100644 --- a/src/lib/elm_widget_label.h +++ b/src/lib/elm_widget_label.h @@ -13,18 +13,13 @@ struct _Elm_Label_Smart_Data { const char *format; double slide_duration; - double matchslide_duration; - Evas_Coord lastw; Evas_Coord wrap_w; - Evas_Coord text_formatted_length; - Evas_Coord matchslide_textlen; Elm_Wrap_Type linewrap; Elm_Label_Slide_Mode slide_mode; Eina_Bool ellipsis : 1; Eina_Bool slide_ellipsis : 1; - Eina_Bool slide_duration_recalc : 1; }; #define ELM_LABEL_DATA_GET(o, sd) \ -- 2.7.4