[NUI] Fix Slider Thumb shown issue (#3187)
authorSeoyeon2Kim <34738918+Seoyeon2Kim@users.noreply.github.com>
Wed, 16 Jun 2021 06:20:34 +0000 (15:20 +0900)
committerdongsug-song <35130733+dongsug-song@users.noreply.github.com>
Wed, 23 Jun 2021 08:25:09 +0000 (17:25 +0900)
* [NUI] Fix Slider Thumb shown issue

- After default theme update, Slider Thumb disappears when user presses it.
- The reason is that the default resource is not enough,
 and the code is just to get the empty resource. (null value)
- Fixed to show slider thumb for normal, pressed, and disabled states.

Signed-off-by: Seoyeon Kim <seoyeon2.kim@samsung.com>
* Update Slider theme and BorderlineColor

Signed-off-by: Seoyeon Kim <seoyeon2.kim@samsung.com>
src/Tizen.NUI.Components/Controls/Slider.Internal.cs
src/Tizen.NUI.Components/Controls/Slider.cs
src/Tizen.NUI.Components/Theme/DefaultThemeCommon.cs
src/Tizen.NUI.Components/res/IoT_slider_handler_disabled.png [new file with mode: 0755]
src/Tizen.NUI.Components/res/IoT_slider_handler_pressed.png [new file with mode: 0755]
src/Tizen.NUI.Components/res/IoT_slider_handler_pressedW.png [new file with mode: 0755]
src/Tizen.NUI/src/public/BaseComponents/Style/ViewStyleBindableProperty.cs

index 5c7614e..50530c2 100755 (executable)
@@ -73,8 +73,6 @@ namespace Tizen.NUI.Components
         private Size thumbSize = null;
         // To store the thumb image url of normal state
         private string thumbImageUrl = null;
-        // To store the thumb image url selector of normal state
-        private Selector<string> thumbImageUrlSelector = null;
         // To store the thumb color of normal state
         private Color thumbColor = Color.White;
         // To store the thumb image url of warning state
@@ -258,7 +256,8 @@ namespace Tizen.NUI.Components
                     HeightResizePolicy = ResizePolicyType.Fixed,
                     ParentOrigin = NUI.ParentOrigin.Center,
                     PivotPoint = NUI.PivotPoint.Center,
-                    PositionUsesPivotPoint = true
+                    PositionUsesPivotPoint = true,
+                    EnableControlState = true
                 };
                 if (bgTrackImage != null)
                 {
index 2db2786..3acc083 100755 (executable)
@@ -520,7 +520,6 @@ namespace Tizen.NUI.Components
                 else
                 {
                     thumbImage.ResourceUrlSelector = value;
-                    thumbImageUrlSelector = value;
                 }
             }
         }
@@ -552,7 +551,6 @@ namespace Tizen.NUI.Components
                 else
                 {
                     thumbImage.ResourceUrlSelector = value;
-                    thumbImageUrlSelector = value;
                 }
             }
         }
@@ -1460,7 +1458,6 @@ namespace Tizen.NUI.Components
             if (!isFocused && !isPressed)
             {
                 ControlState = ControlState.Normal;
-                thumbImage.ResourceUrl = thumbImageUrlSelector?.Normal;
 
                 if (stateChangedHandler != null)
                 {
@@ -1472,7 +1469,6 @@ namespace Tizen.NUI.Components
             else if (isPressed)
             {
                 ControlState = ControlState.Pressed;
-                thumbImage.ResourceUrl = thumbImageUrlSelector?.Pressed;
 
                 if (stateChangedHandler != null)
                 {
@@ -1484,7 +1480,6 @@ namespace Tizen.NUI.Components
             else if (!isPressed && isFocused)
             {
                 ControlState = ControlState.Focused;
-                thumbImage.ResourceUrl = thumbImageUrlSelector?.Focused;
 
                 if (stateChangedHandler != null)
                 {
index 0ecb914..350c6d6 100755 (executable)
@@ -183,29 +183,33 @@ namespace Tizen.NUI.Components
                 Track = new ImageViewStyle()
                 {
                     Size = new Size(100, 8),
-                    ResourceUrl = new Selector<string>()
+                    BorderlineWidth = 0.5f,
+                    BorderlineColor = new Color(0.84f, 0.85f, 0.87f, 1.0f),
+                    BackgroundColor = new Selector<Color>()
                     {
-                        Normal = FrameworkInformation.ResourcePath + "IoT_slider_status_empty_track.png",
-                        Disabled = FrameworkInformation.ResourcePath + "IoT_slider_status_track_disabled.png",
+                        Normal = new Color(1.0f, 1.0f, 1.0f, 0.2f),
+                        Disabled = new Color(0.76f, 0.79f, 0.82f, 1),
                     },
-                    BackgroundColor = new Color(1.0f, 1.0f, 1.0f, 0.1f),
                 },
                 Progress = new ImageViewStyle()
                 {
                     Size = new Size(100, 8),
-                    ResourceUrl = FrameworkInformation.ResourcePath + "IoT_slider_status_track.png",
-                    BackgroundColor = new Color(0.03f, 0.05f, 0.3f, 1),
+                    BackgroundColor = new Selector<Color>()
+                    {
+                        Normal = new Color(0.03f, 0.05f, 0.3f, 1),
+                        Disabled = new Color(0.76f, 0.79f, 0.82f, 1),
+                    },
                 },
                 Thumb = new ImageViewStyle()
                 {
                     Size = new Size(36, 36),
-                    ResourceUrl = FrameworkInformation.ResourcePath + "IoT_slider_handler_normal.png",
-                    // TODO : Should check later when UX guide provides the pressed image
-                    /*BackgroundImage = new Selector<string>()
+                    ResourceUrl = new Selector<string>()
                     {
-                        Normal = FrameworkInformation.ResourcePath + "nui_component_default_slider_thumb_bg_p.png",
-                        Pressed = FrameworkInformation.ResourcePath + "nui_component_default_slider_thumb_bg_p.png",
-                    }*/
+                        Normal = FrameworkInformation.ResourcePath + "IoT_slider_handler_normal.png",
+                        Pressed = FrameworkInformation.ResourcePath + "IoT_slider_handler_pressed.png",
+                        Focused = FrameworkInformation.ResourcePath + "IoT_slider_handler_pressed.png",
+                        Disabled = FrameworkInformation.ResourcePath + "IoT_slider_handler_disabled.png",
+                    },
                 },
                 ValueIndicatorImage = new ImageViewStyle()
                 {
diff --git a/src/Tizen.NUI.Components/res/IoT_slider_handler_disabled.png b/src/Tizen.NUI.Components/res/IoT_slider_handler_disabled.png
new file mode 100755 (executable)
index 0000000..c003bc6
Binary files /dev/null and b/src/Tizen.NUI.Components/res/IoT_slider_handler_disabled.png differ
diff --git a/src/Tizen.NUI.Components/res/IoT_slider_handler_pressed.png b/src/Tizen.NUI.Components/res/IoT_slider_handler_pressed.png
new file mode 100755 (executable)
index 0000000..4f33db7
Binary files /dev/null and b/src/Tizen.NUI.Components/res/IoT_slider_handler_pressed.png differ
diff --git a/src/Tizen.NUI.Components/res/IoT_slider_handler_pressedW.png b/src/Tizen.NUI.Components/res/IoT_slider_handler_pressedW.png
new file mode 100755 (executable)
index 0000000..c564222
Binary files /dev/null and b/src/Tizen.NUI.Components/res/IoT_slider_handler_pressedW.png differ
index 12fb8ec..4b357c4 100755 (executable)
@@ -401,9 +401,9 @@ namespace Tizen.NUI.BaseComponents
 
         /// <summary> Bindable property of BorderlineColor. Please do not open it. </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
-        public static readonly BindableProperty BorderlineColorProperty = BindableProperty.Create(nameof(BorderlineColor), typeof(Vector4), typeof(ViewStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
+        public static readonly BindableProperty BorderlineColorProperty = BindableProperty.Create(nameof(BorderlineColor), typeof(Color), typeof(ViewStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
         {
-            ((ViewStyle)bindable).borderlineColor = (Vector4)newValue;
+            ((ViewStyle)bindable).borderlineColor = (Color)newValue;
         }, defaultValueCreator: (bindable) => ((ViewStyle)bindable).borderlineColor ?? Tizen.NUI.Color.Black);
 
         /// <summary> Bindable property of BorderlineOffset. Please do not open it. </summary>