elm_slider: modified each slider have its indicator visible mode.

Summary: Added indicator_visible_mode to each slider in order not to make elm_config controlls every sliders.

Reviewers: Hermet, woohyun, seoz

Subscribers: seoz

Differential Revision: https://phab.enlightenment.org/D1887
This commit is contained in:
Sung-Taek Hong 2015-02-06 21:58:32 +09:00 committed by Daniel Juyung Seo
parent a2b97d4abb
commit 94e9434206
2 changed files with 17 additions and 11 deletions

View File

@ -309,7 +309,7 @@ _popup_show(void *data,
{
ELM_SLIDER_DATA_GET(data, sd);
if (sd->popup &&
(_elm_config->slider_indicator_visible_mode != ELM_SLIDER_INDICATOR_VISIBLE_MODE_NONE))
(sd->indicator_visible_mode != ELM_SLIDER_INDICATOR_VISIBLE_MODE_NONE))
{
evas_object_raise(sd->popup);
evas_object_show(sd->popup);
@ -329,8 +329,8 @@ _popup_hide(void *data,
if (!sd->popup_visible || !sd->popup) return;
if (_elm_config->slider_indicator_visible_mode == ELM_SLIDER_INDICATOR_VISIBLE_MODE_ALWAYS) return;
if ((_elm_config->slider_indicator_visible_mode == ELM_SLIDER_INDICATOR_VISIBLE_MODE_ON_FOCUS) &&
if (sd->indicator_visible_mode == ELM_SLIDER_INDICATOR_VISIBLE_MODE_ALWAYS) return;
if ((sd->indicator_visible_mode == ELM_SLIDER_INDICATOR_VISIBLE_MODE_ON_FOCUS) &&
elm_widget_focus_get(data))
return;
@ -348,7 +348,7 @@ _popup_hide_done(void *data,
if (sd->popup)
{
if (!((elm_widget_focus_get(data)) &&
(_elm_config->slider_indicator_visible_mode == ELM_SLIDER_INDICATOR_VISIBLE_MODE_ON_FOCUS)))
(sd->indicator_visible_mode == ELM_SLIDER_INDICATOR_VISIBLE_MODE_ON_FOCUS)))
{
evas_object_hide(sd->popup);
sd->popup_visible = EINA_FALSE;
@ -830,7 +830,8 @@ static void
_on_show(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj,
void *event_info EINA_UNUSED)
{
if (_elm_config->slider_indicator_visible_mode == ELM_SLIDER_INDICATOR_VISIBLE_MODE_ALWAYS)
ELM_SLIDER_DATA_GET(obj, sd);
if (sd->indicator_visible_mode == ELM_SLIDER_INDICATOR_VISIBLE_MODE_ALWAYS)
_popup_show(obj, NULL, NULL, NULL);
}
@ -844,6 +845,7 @@ _elm_slider_evas_object_smart_add(Eo *obj, Elm_Slider_Data *priv)
priv->horizontal = EINA_TRUE;
priv->indicator_show = EINA_TRUE;
priv->indicator_visible_mode = elm_config_slider_indicator_visible_mode_get();
priv->val_max = 1.0;
priv->step = SLIDER_STEP;
@ -1156,18 +1158,18 @@ _elm_slider_step_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd)
}
EOLIAN static void
_elm_slider_indicator_show_on_focus_set(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd EINA_UNUSED, Eina_Bool flag)
_elm_slider_indicator_show_on_focus_set(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd, Eina_Bool flag)
{
if (flag)
elm_config_slider_indicator_visible_mode_set(ELM_SLIDER_INDICATOR_VISIBLE_MODE_ON_FOCUS);
sd->indicator_visible_mode = ELM_SLIDER_INDICATOR_VISIBLE_MODE_ON_FOCUS;
else
elm_config_slider_indicator_visible_mode_set(ELM_SLIDER_INDICATOR_VISIBLE_MODE_DEFAULT);
sd->indicator_visible_mode = ELM_SLIDER_INDICATOR_VISIBLE_MODE_DEFAULT;
}
EOLIAN static Eina_Bool
_elm_slider_indicator_show_on_focus_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd EINA_UNUSED)
_elm_slider_indicator_show_on_focus_get(Eo *obj EINA_UNUSED, Elm_Slider_Data *sd)
{
return (elm_config_slider_indicator_visible_mode_get() == ELM_SLIDER_INDICATOR_VISIBLE_MODE_ON_FOCUS);
return (sd->indicator_visible_mode == ELM_SLIDER_INDICATOR_VISIBLE_MODE_ON_FOCUS);
}
EOLIAN static Eina_Bool
@ -1189,7 +1191,7 @@ _elm_slider_elm_widget_on_focus(Eo *obj, Elm_Slider_Data *sd EINA_UNUSED)
eo_do_super(obj, MY_CLASS, int_ret = elm_obj_widget_on_focus());
if ((_elm_config->slider_indicator_visible_mode == ELM_SLIDER_INDICATOR_VISIBLE_MODE_ON_FOCUS) && elm_widget_focus_get(obj))
if ((sd->indicator_visible_mode == ELM_SLIDER_INDICATOR_VISIBLE_MODE_ON_FOCUS) && elm_widget_focus_get(obj))
_popup_show(obj, NULL, NULL, NULL);
else
_popup_hide(obj, NULL, NULL, NULL);

View File

@ -39,6 +39,10 @@ struct _Elm_Slider_Data
void (*units_format_free)(char *str);
double val, val_min, val_max, val2, step;
Elm_Slider_Indicator_Visible_Mode indicator_visible_mode; /**< indicator_visible_mode of the slider.
This indicates when to show an indicator */
Evas_Coord size;
Evas_Coord downx, downy;