forked from enlightenment/efl
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.
This commit is contained in:
parent
6761c289ae
commit
3e5e4f6039
|
@ -113,8 +113,6 @@ void
|
||||||
test_label2(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
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;
|
Evas_Object *win, *gd, *rect, *lb, *rd, *rdg, *sl;
|
||||||
double duration;
|
|
||||||
Evas_Coord textlen;
|
|
||||||
|
|
||||||
win = elm_win_util_standard_add("label2", "Label 2");
|
win = elm_win_util_standard_add("label2", "Label 2");
|
||||||
elm_win_autodel_set(win, EINA_TRUE);
|
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);
|
elm_grid_pack(gd, sl, 5, 60, 90, 10);
|
||||||
evas_object_show(sl);
|
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_resize(win, 320, 320);
|
||||||
evas_object_show(win);
|
evas_object_show(win);
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,9 +78,7 @@ static void
|
||||||
_label_slide_change(Evas_Object *obj)
|
_label_slide_change(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
Evas_Object *tb;
|
Evas_Object *tb;
|
||||||
Evas_Coord lw;
|
|
||||||
char *plaintxt;
|
char *plaintxt;
|
||||||
double speed;
|
|
||||||
int plainlen = 0;
|
int plainlen = 0;
|
||||||
|
|
||||||
ELM_LABEL_DATA_GET(obj, sd);
|
ELM_LABEL_DATA_GET(obj, sd);
|
||||||
|
@ -140,17 +138,6 @@ _label_slide_change(Evas_Object *obj)
|
||||||
Edje_Message_Float_Set *msg =
|
Edje_Message_Float_Set *msg =
|
||||||
alloca(sizeof(Edje_Message_Float_Set) + (sizeof(double)));
|
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->count = 1;
|
||||||
msg->val[0] = sd->slide_duration;
|
msg->val[0] = sd->slide_duration;
|
||||||
|
|
||||||
|
@ -227,10 +214,9 @@ _on_label_resize(void *data,
|
||||||
Evas_Object *obj EINA_UNUSED,
|
Evas_Object *obj EINA_UNUSED,
|
||||||
void *event_info 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
|
static int
|
||||||
|
@ -338,8 +324,6 @@ _stringshare_key_value_replace(const char **srcstring,
|
||||||
static void
|
static void
|
||||||
_elm_label_smart_text_set(Eo *obj, void *_pd, va_list *list)
|
_elm_label_smart_text_set(Eo *obj, void *_pd, va_list *list)
|
||||||
{
|
{
|
||||||
Evas_Object *tb;
|
|
||||||
|
|
||||||
Elm_Label_Smart_Data *sd = _pd;
|
Elm_Label_Smart_Data *sd = _pd;
|
||||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
||||||
const char *part = va_arg(*list, const char *);
|
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;
|
sd->lastw = 0;
|
||||||
eo_do(obj, elm_obj_layout_sizing_eval());
|
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;
|
if (ret) *ret = int_ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -694,41 +673,6 @@ elm_label_slide_duration_get(const Evas_Object *obj)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
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
|
EAPI void
|
||||||
elm_label_slide_go(Evas_Object *obj)
|
elm_label_slide_go(Evas_Object *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_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_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_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_OP_FUNC_SENTINEL
|
||||||
};
|
};
|
||||||
eo_class_funcs_set(klass, func_desc);
|
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_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_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_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_SET, "Set the slide duration (speed) 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_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_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
|
EO_OP_DESCRIPTION_SENTINEL
|
||||||
};
|
};
|
||||||
static const Eo_Class_Description class_desc = {
|
static const Eo_Class_Description class_desc = {
|
||||||
|
|
|
@ -22,8 +22,6 @@ enum
|
||||||
ELM_OBJ_LABEL_SUB_ID_SLIDE_DURATION_SET,
|
ELM_OBJ_LABEL_SUB_ID_SLIDE_DURATION_SET,
|
||||||
ELM_OBJ_LABEL_SUB_ID_SLIDE_DURATION_GET,
|
ELM_OBJ_LABEL_SUB_ID_SLIDE_DURATION_GET,
|
||||||
ELM_OBJ_LABEL_SUB_ID_SLIDE_GO,
|
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
|
ELM_OBJ_LABEL_SUB_ID_LAST
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -181,36 +179,6 @@ enum
|
||||||
* @ingroup Label
|
* @ingroup Label
|
||||||
*/
|
*/
|
||||||
#define elm_obj_label_slide_go() ELM_OBJ_LABEL_ID(ELM_OBJ_LABEL_SUB_ID_SLIDE_GO)
|
#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)
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -162,35 +162,3 @@ EAPI double elm_label_slide_duration_get(const Evas_Object
|
||||||
* @ingroup Label
|
* @ingroup Label
|
||||||
*/
|
*/
|
||||||
EAPI void elm_label_slide_go(Evas_Object *obj);
|
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);
|
|
||||||
|
|
|
@ -13,18 +13,13 @@ struct _Elm_Label_Smart_Data
|
||||||
{
|
{
|
||||||
const char *format;
|
const char *format;
|
||||||
double slide_duration;
|
double slide_duration;
|
||||||
double matchslide_duration;
|
|
||||||
|
|
||||||
Evas_Coord lastw;
|
Evas_Coord lastw;
|
||||||
Evas_Coord wrap_w;
|
Evas_Coord wrap_w;
|
||||||
Evas_Coord text_formatted_length;
|
|
||||||
Evas_Coord matchslide_textlen;
|
|
||||||
Elm_Wrap_Type linewrap;
|
Elm_Wrap_Type linewrap;
|
||||||
Elm_Label_Slide_Mode slide_mode;
|
Elm_Label_Slide_Mode slide_mode;
|
||||||
|
|
||||||
Eina_Bool ellipsis : 1;
|
Eina_Bool ellipsis : 1;
|
||||||
Eina_Bool slide_ellipsis : 1;
|
Eina_Bool slide_ellipsis : 1;
|
||||||
Eina_Bool slide_duration_recalc : 1;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#define ELM_LABEL_DATA_GET(o, sd) \
|
#define ELM_LABEL_DATA_GET(o, sd) \
|
||||||
|
|
Loading…
Reference in New Issue