[Slider] Add Property IndicatorVisibleMode
authorSeunghyun Choi <sh4682.choi@samsung.com>
Tue, 2 May 2017 07:30:10 +0000 (16:30 +0900)
committerSeunghyun Choi <sh4682.choi@samsung.com>
Tue, 2 May 2017 07:30:21 +0000 (16:30 +0900)
 - Add IndicatorVisibleMode Property
 - Add TC in SliderTest1

Change-Id: I75bf93c0736183d2c1ff195feb221382de55149d
Signed-off-by: Seunghyun Choi <sh4682.choi@samsung.com>
src/ElmSharp/ElmSharp/Slider.cs
src/ElmSharp/Interop/Interop.Elementary.Slider.cs
test/ElmSharp.Test/TC/SliderTest1.cs

index 7bad50e..cf05a71 100644 (file)
@@ -18,6 +18,29 @@ using System;
 
 namespace ElmSharp
 {
+    public enum SliderIndicatorVisibleMode
+    {
+        /// <summary>
+        /// show indicator on mouse down or change in slider value.
+        /// </summary>
+        Default,
+
+        /// <summary>
+        /// Always show the indicator.
+        /// </summary>
+        Always,
+
+        /// <summary>
+        /// Show the indicator on focus.
+        /// </summary>
+        OnFocus,
+
+        /// <summary>
+        /// Never show the indicator.
+        /// </summary>
+        None
+    }
+
     /// <summary>
     /// The Slider is a widget that adds a draggable slider widget for selecting the value of something within a range.
     /// </summary>
@@ -283,6 +306,21 @@ namespace ElmSharp
         }
 
         /// <summary>
+        /// Sets or gets the visible mode of indicator.
+        /// </summary>
+        public SliderIndicatorVisibleMode IndicatorVisibleMode
+        {
+            get
+            {
+                return (SliderIndicatorVisibleMode)Interop.Elementary.elm_slider_indicator_visible_mode_get(RealHandle);
+            }
+            set
+            {
+                Interop.Elementary.elm_slider_indicator_visible_mode_set(RealHandle, (Interop.Elementary.Elm_Slider_Indicator_Visible_Mode)value);
+            }
+        }
+
+        /// <summary>
         /// Sets or gets whether to Show the indicator of slider on focus.
         /// </summary>
         public bool IsIndicatorFocusable
index 074311c..92e4a3a 100644 (file)
@@ -21,6 +21,14 @@ internal static partial class Interop
 {
     internal static partial class Elementary
     {
+        internal enum Elm_Slider_Indicator_Visible_Mode
+        {
+            ELM_SLIDER_INDICATOR_VISIBLE_MODE_DEFAULT, /* show indicator on mouse down or change in slider value */
+            ELM_SLIDER_INDICATOR_VISIBLE_MODE_ALWAYS, /* Always show the indicator. */
+            ELM_SLIDER_INDICATOR_VISIBLE_MODE_ON_FOCUS, /* Show the indicator on focus */
+            ELM_SLIDER_INDICATOR_VISIBLE_MODE_NONE /* Never show the indicator */
+        }
+
         [DllImport(Libraries.Elementary)]
         internal static extern IntPtr elm_slider_add(IntPtr parent);
 
@@ -31,6 +39,12 @@ internal static partial class Interop
         internal static extern bool elm_slider_indicator_show_get(IntPtr obj);
 
         [DllImport(Libraries.Elementary)]
+        internal static extern void elm_slider_indicator_visible_mode_set(IntPtr obj, Elm_Slider_Indicator_Visible_Mode mode);
+
+        [DllImport(Libraries.Elementary)]
+        internal static extern Elm_Slider_Indicator_Visible_Mode elm_slider_indicator_visible_mode_get(IntPtr obj);
+
+        [DllImport(Libraries.Elementary)]
         internal static extern void elm_slider_indicator_show_on_focus_set(IntPtr obj, bool focus);
 
         [DllImport(Libraries.Elementary)]
index 9113836..c59b9a8 100644 (file)
@@ -70,6 +70,38 @@ namespace ElmSharp.Test
                 }
             };
 
+            Button btn2 = new Button(window)
+            {
+                AlignmentX = -1,
+                AlignmentY = 0,
+                WeightX = 1,
+                WeightY = 1,
+                Text = "Set IndicatorVisibleMode"
+            };
+            btn2.Clicked += (s, e) =>
+            {
+                if (sld1.IndicatorVisibleMode == SliderIndicatorVisibleMode.Default)
+                {
+                    sld1.IndicatorVisibleMode = SliderIndicatorVisibleMode.Always;
+                    btn2.Text = "Always";
+                }
+                else if (sld1.IndicatorVisibleMode == SliderIndicatorVisibleMode.Always)
+                {
+                    sld1.IndicatorVisibleMode = SliderIndicatorVisibleMode.OnFocus;
+                    btn2.Text = "OnFocus";
+                }
+                else if (sld1.IndicatorVisibleMode == SliderIndicatorVisibleMode.OnFocus)
+                {
+                    sld1.IndicatorVisibleMode = SliderIndicatorVisibleMode.None;
+                    btn2.Text = "None";
+                }
+                else
+                {
+                    sld1.IndicatorVisibleMode = SliderIndicatorVisibleMode.Default;
+                    btn2.Text = "Default";
+                }
+            };
+
             Label lb1 = new Label(window)
             {
                 AlignmentX = -1,
@@ -80,11 +112,13 @@ namespace ElmSharp.Test
 
             table.Pack(sld1, 1, 1, 2, 1);
             table.Pack(btn, 1, 2, 2, 1);
-            table.Pack(lb1, 1, 3, 2, 1);
+            table.Pack(btn2, 1, 3, 2, 1);
+            table.Pack(lb1, 1, 4, 2, 1);
 
             sld1.Show();
             btn.Show();
             lb1.Show();
+            btn2.Show();
 
             sld1.ValueChanged += (s, e) =>
             {