Revert "label : Added the API to match the speed of label to different label"
authordavemds <dave@gurumeditation.it>
Sun, 9 Feb 2014 19:21:21 +0000 (20:21 +0100)
committerdavemds <dave@gurumeditation.it>
Sun, 9 Feb 2014 19:21:21 +0000 (20:21 +0100)
As discussed I will try to implement the same functionality but with a different api.

This reverts commit 56a2c96ea7a731d6066aa7cb0964a633c5bed35c.

src/bin/test_label.c
src/lib/elm_label.c
src/lib/elm_label_eo.h
src/lib/elm_label_legacy.h
src/lib/elm_widget_label.h

index d5e7898..7e6a73d 100644 (file)
@@ -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);
 }
index a46badf..976b186 100644 (file)
@@ -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 = {
index efd4013..f79cb95 100644 (file)
@@ -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)
-
 /**
  * @}
  */
index 04cfc7e..b3222b8 100644 (file)
@@ -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);
index 4464e76..4e2ac72 100644 (file)
@@ -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) \