forked from enlightenment/efl
work on slider issues like not showing units brought up by player test
This commit is contained in:
parent
6aec9ab4c3
commit
2ae7a8cffb
|
@ -122,7 +122,6 @@ _elm_player_smart_event(Eo *obj, void *_pd, va_list *list)
|
|||
if (ret) *ret = EINA_TRUE;
|
||||
return;
|
||||
}
|
||||
fprintf(stderr, "keyname: '%s' not handle\n", ev->keyname);
|
||||
}
|
||||
|
||||
|
||||
|
@ -444,7 +443,6 @@ _double_to_time(double value)
|
|||
else
|
||||
snprintf(buf, sizeof(buf), "%02i.%02i",
|
||||
ps, pf);
|
||||
|
||||
return (char *)eina_stringshare_add(buf);
|
||||
}
|
||||
|
||||
|
@ -554,6 +552,7 @@ _elm_player_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
|
|||
priv->stop = _player_button_add(obj, "media_player/stop", _stop);
|
||||
|
||||
priv->slider = elm_slider_add(obj);
|
||||
elm_slider_indicator_show_set(priv->slider, EINA_TRUE);
|
||||
elm_slider_indicator_format_function_set
|
||||
(priv->slider, _double_to_time, _str_free);
|
||||
elm_slider_units_format_function_set
|
||||
|
|
|
@ -42,6 +42,8 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = {
|
|||
{NULL, NULL}
|
||||
};
|
||||
|
||||
static void _min_max_set(Evas_Object *obj);
|
||||
|
||||
static Eina_Bool
|
||||
_delay_change(void *data)
|
||||
{
|
||||
|
@ -120,7 +122,23 @@ _units_set(Evas_Object *obj)
|
|||
char *buf;
|
||||
|
||||
buf = sd->units_format_func(sd->val);
|
||||
elm_layout_text_set(obj, "elm.units", buf);
|
||||
if (buf)
|
||||
{
|
||||
elm_layout_text_set(obj, "elm.units", buf);
|
||||
if (!sd->units_show)
|
||||
{
|
||||
elm_layout_signal_emit(obj, "elm,state,units,visible", "elm");
|
||||
sd->units_show = EINA_TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (sd->units_show)
|
||||
{
|
||||
elm_layout_signal_emit(obj, "elm,state,units,hidden", "elm");
|
||||
sd->units_show = EINA_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
if (sd->units_format_free) sd->units_format_free(buf);
|
||||
}
|
||||
|
@ -130,8 +148,21 @@ _units_set(Evas_Object *obj)
|
|||
|
||||
snprintf(buf, sizeof(buf), sd->units, sd->val);
|
||||
elm_layout_text_set(obj, "elm.units", buf);
|
||||
if (!sd->units_show)
|
||||
{
|
||||
elm_layout_signal_emit(obj, "elm,state,units,visible", "elm");
|
||||
sd->units_show = EINA_TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
elm_layout_text_set(obj, "elm.units", NULL);
|
||||
if (sd->units_show)
|
||||
{
|
||||
elm_layout_signal_emit(obj, "elm,state,units,hidden", "elm");
|
||||
sd->units_show = EINA_FALSE;
|
||||
}
|
||||
}
|
||||
else elm_layout_text_set(obj, "elm.units", NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -463,9 +494,6 @@ _elm_slider_smart_theme(Eo *obj, void *_pd, va_list *list)
|
|||
edje_object_scale_set(sd->popup, elm_widget_scale_get(obj) *
|
||||
elm_config_scale_get());
|
||||
|
||||
if (sd->units)
|
||||
elm_layout_signal_emit(obj, "elm,state,units,visible", "elm");
|
||||
|
||||
if (sd->horizontal)
|
||||
evas_object_size_hint_min_set
|
||||
(sd->spacer, (double)sd->size * elm_widget_scale_get(obj) *
|
||||
|
@ -487,6 +515,9 @@ _elm_slider_smart_theme(Eo *obj, void *_pd, va_list *list)
|
|||
if (sd->popup)
|
||||
edje_object_signal_emit(sd->popup, "elm,state,val,show", "elm");
|
||||
}
|
||||
_min_max_set(obj);
|
||||
_units_set(obj);
|
||||
_indicator_set(obj);
|
||||
_visuals_refresh(obj);
|
||||
|
||||
edje_object_message_signal_process(wd->resize_obj);
|
||||
|
@ -716,8 +747,8 @@ _elm_slider_smart_calculate(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
|
|||
elm_config_scale_get());
|
||||
|
||||
_val_fetch(obj);
|
||||
_units_set(obj);
|
||||
_min_max_set(obj);
|
||||
_units_set(obj);
|
||||
_indicator_set(obj);
|
||||
|
||||
elm_layout_thaw(obj);
|
||||
|
@ -944,24 +975,8 @@ _elm_slider_unit_format_set(Eo *obj, void *_pd, va_list *list)
|
|||
{
|
||||
const char *units = va_arg(*list, const char *);
|
||||
Elm_Slider_Smart_Data *sd = _pd;
|
||||
Elm_Widget_Smart_Data *wd = eo_data_scope_get(obj, ELM_OBJ_WIDGET_CLASS);
|
||||
|
||||
eina_stringshare_replace(&sd->units, units);
|
||||
if (units)
|
||||
{
|
||||
elm_layout_signal_emit(obj, "elm,state,units,visible", "elm");
|
||||
edje_object_message_signal_process(wd->resize_obj);
|
||||
if (sd->popup)
|
||||
edje_object_signal_emit(sd->popup, "elm,state,units,visible", "elm");
|
||||
}
|
||||
else
|
||||
{
|
||||
elm_layout_signal_emit(obj, "elm,state,units,hidden", "elm");
|
||||
edje_object_message_signal_process(wd->resize_obj);
|
||||
if (sd->popup)
|
||||
edje_object_signal_emit(sd->popup, "elm,state,units,hidden", "elm");
|
||||
}
|
||||
|
||||
evas_object_smart_changed(obj);
|
||||
}
|
||||
|
||||
|
|
|
@ -42,6 +42,7 @@ struct _Elm_Slider_Smart_Data
|
|||
Eina_Bool spacer_down : 1;
|
||||
Eina_Bool frozen : 1;
|
||||
Eina_Bool popup_hiding : 1;
|
||||
Eina_Bool units_show : 1;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue