From 94e94342063a65956e83ee81626c6837443de503 Mon Sep 17 00:00:00 2001 From: Sung-Taek Hong Date: Fri, 6 Feb 2015 21:58:32 +0900 Subject: [PATCH] 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 --- legacy/elementary/src/lib/elm_slider.c | 24 ++++++++++--------- legacy/elementary/src/lib/elm_widget_slider.h | 4 ++++ 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/legacy/elementary/src/lib/elm_slider.c b/legacy/elementary/src/lib/elm_slider.c index d68e9f1a3d..533503a1e3 100644 --- a/legacy/elementary/src/lib/elm_slider.c +++ b/legacy/elementary/src/lib/elm_slider.c @@ -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); diff --git a/legacy/elementary/src/lib/elm_widget_slider.h b/legacy/elementary/src/lib/elm_widget_slider.h index 33b8f5ca9a..ecb96dc283 100644 --- a/legacy/elementary/src/lib/elm_widget_slider.h +++ b/legacy/elementary/src/lib/elm_widget_slider.h @@ -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;