seoz pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=03b7abad72be381dab906b68f9df3f76036d6c43

commit 03b7abad72be381dab906b68f9df3f76036d6c43
Author: Sung-Taek Hong <[email protected]>
Date:   Fri Feb 6 21:58:32 2015 +0900

    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
---
 src/lib/elm_slider.c        | 24 +++++++++++++-----------
 src/lib/elm_widget_slider.h |  4 ++++
 2 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/src/lib/elm_slider.c b/src/lib/elm_slider.c
index d68e9f1..533503a 100644
--- a/src/lib/elm_slider.c
+++ b/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/src/lib/elm_widget_slider.h b/src/lib/elm_widget_slider.h
index 33b8f5c..ecb96dc 100644
--- a/src/lib/elm_widget_slider.h
+++ b/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;
 

-- 


Reply via email to