[NUI] Add Slider warning properties
authorSeoyeon Kim <seoyeon2.kim@samsung.com>
Fri, 5 Feb 2021 06:56:12 +0000 (15:56 +0900)
committerheeyongsong <35289263+heeyongsong@users.noreply.github.com>
Tue, 9 Feb 2021 05:36:55 +0000 (14:36 +0900)
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/Style/SliderStyle.cs

index a03745b7044125abe7e889cb70d7000445b186cc..6471f174c343ef4bf5620f1d952de9c2a95bc8a2 100755 (executable)
@@ -10,6 +10,10 @@ namespace Tizen.NUI.Components
         private ImageView bgTrackImage = null;
         // the slided track image object
         private ImageView slidedTrackImage = null;
+        // the warning track image object
+        private ImageView warningTrackImage = null;
+        // the warning slided track image object
+        private ImageView warningSlidedTrackImage = null;
         // the thumb image object
         private ImageView thumbImage = null;
         // the low indicator image object
@@ -31,6 +35,8 @@ namespace Tizen.NUI.Components
         private float maxValue = 100;
         // the current value
         private float curValue = 0;
+        // the warning start value
+        private float warningStartValue = 100;
         // the size of the low indicator
         private Size lowIndicatorSize = null;
         // the size of the high indicator
@@ -46,6 +52,21 @@ namespace Tizen.NUI.Components
         // the value indicator image object
         private ImageView valueIndicatorImage = null;
 
+        // To store the thumb size of normal state
+        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
+        private string warningThumbImageUrl = null;
+        // To store the thumb image url selector of warning state
+        private Selector<string> warningThumbImageUrlSelector = null;
+        // To store the thumb color of warning state
+        private Color warningThumbColor = null;
+
         private PanGestureDetector panGestureDetector = null;
         private float currentSlidedOffset;
         private EventHandler<ValueChangedArgs> valueChangedHandler;
@@ -89,14 +110,57 @@ namespace Tizen.NUI.Components
                 {
                     bgTrackImage.Add(slidedTrackImage);
                 }
+            }
 
-                if (null != thumbImage)
+            return slidedTrackImage;
+        }
+
+        private ImageView CreateWarningTrack()
+        {
+            if (null == warningTrackImage)
+            {
+                warningTrackImage = new ImageView()
+                {
+                    WidthResizePolicy = ResizePolicyType.Fixed,
+                    HeightResizePolicy = ResizePolicyType.Fixed
+                };
+
+                if (bgTrackImage != null)
+                {
+                    bgTrackImage.Add(warningTrackImage);
+                }
+
+                if (warningSlidedTrackImage != null)
                 {
-                    slidedTrackImage.Add(thumbImage);
+                    warningTrackImage.Add(warningSlidedTrackImage);
+                }
+
+                if (slidedTrackImage != null)
+                {
+                    warningTrackImage.RaiseAbove(slidedTrackImage);
                 }
             }
 
-            return slidedTrackImage;
+            return warningTrackImage;
+        }
+
+        private ImageView CreateWarningSlidedTrack()
+        {
+            if (null == warningSlidedTrackImage)
+            {
+                warningSlidedTrackImage = new ImageView()
+                {
+                    WidthResizePolicy = ResizePolicyType.Fixed,
+                    HeightResizePolicy = ResizePolicyType.Fixed
+                };
+
+                if (warningTrackImage != null)
+                {
+                    warningTrackImage.Add(warningSlidedTrackImage);
+                }
+            }
+
+            return warningSlidedTrackImage;
         }
 
         private TextLabel CreateLowIndicatorText()
@@ -147,6 +211,15 @@ namespace Tizen.NUI.Components
                 {
                     bgTrackImage.Add(slidedTrackImage);
                 }
+                if (null != warningTrackImage)
+                {
+                    bgTrackImage.Add(warningTrackImage);
+                }
+                if (null != thumbImage)
+                {
+                    bgTrackImage.Add(thumbImage);
+                    thumbImage.RaiseToTop();
+                }
 
                 bgTrackImage.TouchEvent += OnTouchEventForBgTrack;
             }
@@ -166,10 +239,11 @@ namespace Tizen.NUI.Components
                     PivotPoint = NUI.PivotPoint.Center,
                     PositionUsesPivotPoint = true
                 };
-                if (slidedTrackImage != null)
+                if (bgTrackImage != null)
                 {
-                    slidedTrackImage.Add(thumbImage);
+                    bgTrackImage.Add(thumbImage);
                 }
+                thumbImage.RaiseToTop();
                 thumbImage.TouchEvent += OnTouchEventForThumb;
             }
 
@@ -178,7 +252,7 @@ namespace Tizen.NUI.Components
 
         private ImageView CreateValueIndicator()
         {
-            if (null == valueIndicatorImage)
+            if (valueIndicatorImage == null)
             {
                 valueIndicatorImage = new ImageView()
                 {
@@ -294,9 +368,21 @@ namespace Tizen.NUI.Components
                     slidedTrackImage.PivotPoint = NUI.PivotPoint.CenterLeft;
                     slidedTrackImage.PositionUsesPivotPoint = true;
                 }
+                if (warningTrackImage != null)
+                {
+                    warningTrackImage.ParentOrigin = NUI.ParentOrigin.CenterRight;
+                    warningTrackImage.PivotPoint = NUI.PivotPoint.CenterRight;
+                    warningTrackImage.PositionUsesPivotPoint = true;
+                }
+                if (warningSlidedTrackImage != null)
+                {
+                    warningSlidedTrackImage.ParentOrigin = NUI.ParentOrigin.CenterLeft;
+                    warningSlidedTrackImage.PivotPoint = NUI.PivotPoint.CenterLeft;
+                    warningSlidedTrackImage.PositionUsesPivotPoint = true;
+                }
                 if (thumbImage != null)
                 {
-                    thumbImage.ParentOrigin = NUI.ParentOrigin.CenterRight;
+                    thumbImage.ParentOrigin = NUI.ParentOrigin.CenterLeft;
                     thumbImage.PivotPoint = NUI.PivotPoint.Center;
                     thumbImage.PositionUsesPivotPoint = true;
                 }
@@ -354,9 +440,21 @@ namespace Tizen.NUI.Components
                     slidedTrackImage.PivotPoint = NUI.PivotPoint.BottomCenter;
                     slidedTrackImage.PositionUsesPivotPoint = true;
                 }
+                if (warningTrackImage != null)
+                {
+                    warningTrackImage.ParentOrigin = NUI.ParentOrigin.TopCenter;
+                    warningTrackImage.PivotPoint = NUI.PivotPoint.TopCenter;
+                    warningTrackImage.PositionUsesPivotPoint = true;
+                }
+                if (warningSlidedTrackImage != null)
+                {
+                    warningSlidedTrackImage.ParentOrigin = NUI.ParentOrigin.BottomCenter;
+                    warningSlidedTrackImage.PivotPoint = NUI.PivotPoint.BottomCenter;
+                    warningSlidedTrackImage.PositionUsesPivotPoint = true;
+                }
                 if (thumbImage != null)
                 {
-                    thumbImage.ParentOrigin = NUI.ParentOrigin.TopCenter;
+                    thumbImage.ParentOrigin = NUI.ParentOrigin.BottomCenter;
                     thumbImage.PivotPoint = NUI.PivotPoint.Center;
                     thumbImage.PositionUsesPivotPoint = true;
                 }
@@ -581,6 +679,8 @@ namespace Tizen.NUI.Components
                 }
                 float slidedTrackLength = (float)BgTrackLength() * ratio;
                 slidedTrackImage.Size2D = new Size2D((int)(slidedTrackLength + round), (int)curTrackThickness); //Add const round to reach Math.Round function.
+                thumbImage.Position = new Position(slidedTrackImage.Size2D.Width, 0);
+                thumbImage.RaiseToTop();
 
                 if (isValueShown)
                 {
@@ -590,13 +690,49 @@ namespace Tizen.NUI.Components
             else if (direction == DirectionType.Vertical)
             {
                 float slidedTrackLength = (float)BgTrackLength() * ratio;
-                slidedTrackImage.Size2D = new Size2D((int)(curTrackThickness + round), (int)slidedTrackLength); //Add const round to reach Math.Round function.
+                slidedTrackImage.Size2D = new Size2D((int)curTrackThickness, (int)(slidedTrackLength + round)); //Add const round to reach Math.Round function.
+                thumbImage.Position = new Position(0, -slidedTrackImage.Size2D.Height);
+                thumbImage.RaiseToTop();
 
                 if (isValueShown)
                 {
                     valueIndicatorImage.Position = new Position(0, -(slidedTrackImage.Size2D.Height + thumbImage.Size.Height / 2));
                 }
             }
+
+            // Update the track and thumb when the value is over warning value.
+            if (curValue >= warningStartValue)
+            {
+                if (direction == DirectionType.Horizontal)
+                {
+                    warningSlidedTrackImage.Size2D = new Size2D((int)(((curValue - warningStartValue) / 100) * this.Size2D.Width), (int)curTrackThickness);
+                }
+                else if (direction == DirectionType.Vertical)
+                {
+                    warningSlidedTrackImage.Size2D = new Size2D((int)curTrackThickness, (int)(((curValue - warningStartValue) / 100) * this.Size2D.Height));
+                }
+
+                if (warningThumbColor != null && thumbImage.Color.NotEqualTo(warningThumbColor))
+                {
+                    thumbImage.Color = warningThumbColor;
+                }
+                if (warningThumbImageUrl != null && !thumbImage.ResourceUrl.Equals(warningThumbImageUrl))
+                {
+                    thumbImage.ResourceUrl = warningThumbImageUrl;
+                }
+            }
+            else
+            {
+                warningSlidedTrackImage.Size2D = new Size2D(0, 0);
+                if (warningThumbColor != null && thumbImage.Color.EqualTo(warningThumbColor))
+                {
+                    thumbImage.Color = thumbColor;
+                }
+                if (warningThumbImageUrl != null && thumbImage.ResourceUrl.Equals(warningThumbImageUrl))
+                {
+                    thumbImage.ResourceUrl = thumbImageUrl;
+                }
+            }
         }
 
         private uint CurrentTrackThickness()
@@ -633,6 +769,27 @@ namespace Tizen.NUI.Components
             return curSpace;
         }
 
+        private void UpdateWarningTrackSize()
+        {
+            if (warningTrackImage == null)
+            {
+                return;
+            }
+
+            int curTrackThickness = (int)CurrentTrackThickness();
+            float warningTrackLength = maxValue - warningStartValue;
+            if (direction == DirectionType.Horizontal)
+            {
+                warningTrackLength = (warningTrackLength / 100) * this.Size2D.Width;
+                warningTrackImage.Size2D = new Size2D((int)warningTrackLength, curTrackThickness);
+            }
+            else if (direction == DirectionType.Vertical)
+            {
+                warningTrackLength = (warningTrackLength / 100) * this.Size2D.Height;
+                warningTrackImage.Size2D = new Size2D(curTrackThickness, (int)warningTrackLength);
+            }
+        }
+
         private IndicatorType CurrentIndicatorType()
         {
             IndicatorType type = IndicatorType.None;
index 24d7fe74e8c97c04f238125fe873627c58901201..de51ed39e2f0633248e7dfdd333548b71cbc84cf 100755 (executable)
@@ -66,6 +66,9 @@ namespace Tizen.NUI.Components
     /// <since_tizen> 6 </since_tizen>
     public partial class Slider : Control
     {
+        /// <summary>
+        /// IndicatorTypeProperty
+        /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public static readonly BindableProperty IndicatorTypeProperty = BindableProperty.Create("IndicatorType", typeof(IndicatorType), typeof(Slider), IndicatorType.None, propertyChanged: (bindable, oldValue, newValue) =>
         {
@@ -80,6 +83,10 @@ namespace Tizen.NUI.Components
             var instance = (Slider)bindable;
             return instance.privateIndicatorType;
         });
+
+        /// <summary>
+        /// SpaceBetweenTrackAndIndicatorProperty
+        /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public static readonly BindableProperty SpaceBetweenTrackAndIndicatorProperty = BindableProperty.Create(nameof(SpaceBetweenTrackAndIndicator), typeof(uint), typeof(Slider), (uint)0, propertyChanged: (bindable, oldValue, newValue) =>
         {
@@ -94,6 +101,10 @@ namespace Tizen.NUI.Components
             var instance = (Slider)bindable;
             return instance.privateSpaceBetweenTrackAndIndicator;
         });
+
+        /// <summary>
+        /// TrackThicknessProperty
+        /// </summary>       
         [EditorBrowsable(EditorBrowsableState.Never)]
         public static readonly BindableProperty TrackThicknessProperty = BindableProperty.Create(nameof(TrackThickness), typeof(uint), typeof(Slider), (uint)0, propertyChanged: (bindable, oldValue, newValue) =>
         {
@@ -108,6 +119,10 @@ namespace Tizen.NUI.Components
             var instance = (Slider)bindable;
             return instance.privateTrackThickness;
         });
+
+        /// <summary>
+        /// IsValueShownProperty
+        /// </summary> 
         [EditorBrowsable(EditorBrowsableState.Never)]
         public static readonly BindableProperty IsValueShownProperty = BindableProperty.Create(nameof(IsValueShown), typeof(bool), typeof(Slider), true, propertyChanged: (bindable, oldValue, newValue) =>
         {
@@ -126,6 +141,10 @@ namespace Tizen.NUI.Components
             var instance = (Slider)bindable;
             return instance.isValueShown;
         });
+
+        /// <summary>
+        /// ValueIndicatorTextProperty
+        /// </summary> 
         [EditorBrowsable(EditorBrowsableState.Never)]
         public static readonly BindableProperty ValueIndicatorTextProperty = BindableProperty.Create(nameof(ValueIndicatorText), typeof(string), typeof(Slider), string.Empty, propertyChanged: (bindable, oldValue, newValue) =>
         {
@@ -366,6 +385,7 @@ namespace Tizen.NUI.Components
                 RelayoutBaseComponent(false);
                 UpdateBgTrackSize();
                 UpdateBgTrackPosition();
+                UpdateWarningTrackSize();
                 UpdateValue();
             }
         }
@@ -452,6 +472,7 @@ namespace Tizen.NUI.Components
                 if (null != thumbImage)
                 {
                     thumbImage.Size = value;
+                    thumbSize = value;
                     sliderStyle.Thumb.Size = value;
                 }
             }
@@ -459,6 +480,8 @@ namespace Tizen.NUI.Components
 
         /// <summary>
         /// Gets or sets the resource url of the thumb image object.
+        ///
+        /// Please use ThumbImageUri property.
         /// </summary>
         /// <since_tizen> 6 </since_tizen>
         public string ThumbImageURL
@@ -472,6 +495,7 @@ namespace Tizen.NUI.Components
                 if (null != thumbImage)
                 {
                     thumbImage.ResourceUrl = value;
+                    thumbImageUrl = value;
                     sliderStyle.Thumb.ResourceUrl = value;
                 }
             }
@@ -480,6 +504,8 @@ namespace Tizen.NUI.Components
         /// <summary>
         /// Gets or sets the resource url selector of the thumb image object.
         /// Getter returns copied selector value if exist, null otherwise.
+        ///
+        /// Please use ThumbImageUri property.
         /// </summary>
         /// <exception cref="NullReferenceException">Thrown when setting null value.</exception>
         /// <since_tizen> 6 </since_tizen>
@@ -495,6 +521,41 @@ namespace Tizen.NUI.Components
                 else
                 {
                     thumbImage.SetValue(ImageView.ResourceUrlSelectorProperty, value);
+                    thumbImageUrlSelector = value;
+                }
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets the Uri of the thumb image.
+        /// </summary>
+        /// <exception cref="NullReferenceException">Thrown when setting null value.</exception>
+        /// This will be public opened later after ACR done. Before ACR, need to be hidden as inhouse API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Selector<Uri> ThumbImageUri
+        {
+            get
+            {
+                if (thumbImage == null)
+                {
+                    return null;
+                }
+                else
+                {
+                    return ((Selector<string>)thumbImage.GetValue(ImageView.ResourceUrlSelectorProperty)).Clone<Uri>(str => { return new Uri(str); });
+                }
+            }
+            set
+            {
+                if (value == null || thumbImage == null)
+                {
+                    throw new NullReferenceException("Slider.ThumbImageUri is null");
+                }
+                else
+                {
+                    Selector<string> stringValue = value.Clone<string>(m => m?.AbsoluteUri);
+                    thumbImage.SetValue(ImageView.ResourceUrlSelectorProperty, stringValue);
+                    thumbImageUrlSelector = stringValue;
                 }
             }
         }
@@ -514,6 +575,7 @@ namespace Tizen.NUI.Components
                 if (null != thumbImage)
                 {
                     thumbImage.Color = value;
+                    thumbColor = value;
                     sliderStyle.Thumb.Color = value;
                 }
             }
@@ -575,6 +637,125 @@ namespace Tizen.NUI.Components
             }
         }
 
+        /// <summary>
+        /// Gets or sets the warning start value between minimum value and maximum value of slider.
+        /// </summary>
+        /// This will be public opened later after ACR done. Before ACR, need to be hidden as inhouse API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public float WarningStartValue
+        {
+            get
+            {
+                return warningStartValue;
+            }
+            set
+            {
+                warningStartValue = value;
+                UpdateValue();
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets the color of the warning track image object.
+        /// </summary>
+        /// This will be public opened later after ACR done. Before ACR, need to be hidden as inhouse API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Color WarningTrackColor
+        {
+            get
+            {
+                return warningTrackImage?.BackgroundColor;
+            }
+            set
+            {
+                if (null != warningTrackImage)
+                {
+                    warningTrackImage.BackgroundColor = value;
+                    sliderStyle.WarningTrack.BackgroundColor = value;
+                }
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets the color of the warning slided track image object.
+        /// </summary>
+        /// This will be public opened later after ACR done. Before ACR, need to be hidden as inhouse API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Color WarningSlidedTrackColor
+        {
+            get
+            {
+                return warningSlidedTrackImage?.BackgroundColor;
+            }
+            set
+            {
+                if (null != warningSlidedTrackImage)
+                {
+                    warningSlidedTrackImage.BackgroundColor = value;
+                    sliderStyle.WarningProgress.BackgroundColor = value;
+                }
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets the resource url of the warning thumb image object.
+        /// </summary>
+        /// This will be public opened later after ACR done. Before ACR, need to be hidden as inhouse API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public string WarningThumbImageUrl
+        {
+            get
+            {
+                return warningThumbImageUrl;
+            }
+            set
+            {
+                warningThumbImageUrl = value;
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets the Uri of the warning thumb image.
+        /// </summary>
+        /// <exception cref="NullReferenceException">Thrown when setting null value.</exception>
+        /// This will be public opened later after ACR done. Before ACR, need to be hidden as inhouse API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Selector<Uri> WarningThumbImageUri
+        {
+            get
+            {
+                return warningThumbImageUrlSelector?.Clone<Uri>(str => { return new Uri(str); });
+            }
+            set
+            {
+                 if (value == null || thumbImage == null)
+                {
+                    throw new NullReferenceException("Slider.WarningThumbImageUri is null");
+                }
+                else
+                {
+                    warningThumbImageUrlSelector = value.Clone<string>(m => m?.AbsoluteUri);
+                }
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets the color of the warning thumb image object.
+        /// </summary>
+        /// This will be public opened later after ACR done. Before ACR, need to be hidden as inhouse API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Color WarningThumbColor
+        {
+            get
+            {
+                return warningThumbColor;
+            }
+            set
+            {
+                warningThumbColor = value;
+            }
+        }
+
         /// <summary>
         /// Gets or sets the resource url of the low indicator image object.
         /// </summary>
@@ -851,6 +1032,28 @@ namespace Tizen.NUI.Components
                         slidedTrackImage.SizeWidth = (float)trackThickness.Value;
                     }
                 }
+                if (warningTrackImage != null)
+                {
+                    if (direction == DirectionType.Horizontal)
+                    {
+                        warningTrackImage.SizeHeight = (float)trackThickness.Value;
+                    }
+                    else if (direction == DirectionType.Vertical)
+                    {
+                        warningTrackImage.SizeWidth = (float)trackThickness.Value;
+                    }
+                }
+                if (warningSlidedTrackImage != null)
+                {
+                    if (direction == DirectionType.Horizontal)
+                    {
+                        warningSlidedTrackImage.SizeHeight = (float)trackThickness.Value;
+                    }
+                    else if (direction == DirectionType.Vertical)
+                    {
+                        warningSlidedTrackImage.SizeWidth = (float)trackThickness.Value;
+                    }
+                }
             }
         }
 
@@ -951,6 +1154,16 @@ namespace Tizen.NUI.Components
                 CreateValueIndicator().ApplyStyle(sliderStyle.ValueIndicatorImage);
             }
 
+            if (null != sliderStyle?.WarningTrack)
+            {
+                CreateWarningTrack().ApplyStyle(sliderStyle.WarningTrack);
+            }
+
+            if (null != sliderStyle?.WarningProgress)
+            {
+                CreateWarningSlidedTrack().ApplyStyle(sliderStyle.WarningProgress);
+            }
+
             EnableControlStatePropagation = true;
         }
 
@@ -991,6 +1204,8 @@ namespace Tizen.NUI.Components
                     thumbImage.TouchEvent -= OnTouchEventForThumb;
                     Utility.Dispose(thumbImage);
                 }
+                Utility.Dispose(warningSlidedTrackImage);
+                Utility.Dispose(warningTrackImage);
                 Utility.Dispose(slidedTrackImage);
                 if (null != bgTrackImage)
                 {
@@ -1021,6 +1236,7 @@ namespace Tizen.NUI.Components
             UpdateComponentByIndicatorTypeChanged();
             UpdateBgTrackSize();
             UpdateBgTrackPosition();
+            UpdateWarningTrackSize();
             UpdateLowIndicatorSize();
             UpdateValue();
         }
@@ -1158,6 +1374,8 @@ namespace Tizen.NUI.Components
             if (!isFocused && !isPressed)
             {
                 ControlState = ControlState.Normal;
+                thumbImage.ResourceUrl = thumbImageUrlSelector?.Normal;
+
                 if (stateChangedHandler != null)
                 {
                     StateChangedArgs args = new StateChangedArgs();
@@ -1168,6 +1386,7 @@ namespace Tizen.NUI.Components
             else if (isPressed)
             {
                 ControlState = ControlState.Pressed;
+                thumbImage.ResourceUrl = thumbImageUrlSelector?.Pressed;
 
                 if (stateChangedHandler != null)
                 {
@@ -1179,6 +1398,7 @@ namespace Tizen.NUI.Components
             else if (!isPressed && isFocused)
             {
                 ControlState = ControlState.Focused;
+                thumbImage.ResourceUrl = thumbImageUrlSelector?.Focused;
 
                 if (stateChangedHandler != null)
                 {
index 26a87a61b7f14e3f108e5ced14272d2fcffee462..ac459b6805adcd7046f762d1ccd8fcfb1945b622 100755 (executable)
@@ -27,6 +27,9 @@ namespace Tizen.NUI.Components
     /// <since_tizen> 8 </since_tizen>
     public class SliderStyle : ControlStyle
     {
+        /// <summary>
+        /// IndicatorTypeProperty
+        /// </summary> 
         [EditorBrowsable(EditorBrowsableState.Never)]
         public static readonly BindableProperty IndicatorTypeProperty = BindableProperty.Create(nameof(IndicatorType), typeof(IndicatorType?), typeof(SliderStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
         {
@@ -41,6 +44,10 @@ namespace Tizen.NUI.Components
             var instance = (SliderStyle)bindable;
             return instance.privateIndicatorType;
         });
+
+        /// <summary>
+        /// SpaceBetweenTrackAndIndicatorProperty
+        /// </summary> 
         [EditorBrowsable(EditorBrowsableState.Never)]
         public static readonly BindableProperty SpaceBetweenTrackAndIndicatorProperty = BindableProperty.Create(nameof(SpaceBetweenTrackAndIndicator), typeof(uint?), typeof(SliderStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
         {
@@ -55,6 +62,10 @@ namespace Tizen.NUI.Components
             var instance = (SliderStyle)bindable;
             return instance.privateSpaceBetweenTrackAndIndicator;
         });
+
+        /// <summary>
+        /// TrackThicknessProperty
+        /// </summary> 
         [EditorBrowsable(EditorBrowsableState.Never)]
         public static readonly BindableProperty TrackThicknessProperty = BindableProperty.Create(nameof(TrackThickness), typeof(uint?), typeof(SliderStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
         {
@@ -69,6 +80,10 @@ namespace Tizen.NUI.Components
             var instance = (SliderStyle)bindable;
             return instance.privateTrackThickness;
         });
+
+        /// <summary>
+        /// TrackPaddingProperty
+        /// </summary> 
         [EditorBrowsable(EditorBrowsableState.Never)]
         public static readonly BindableProperty TrackPaddingProperty = BindableProperty.Create(nameof(TrackPadding), typeof(Extents), typeof(SliderStyle), null, propertyChanged: (bindable, oldValue, newValue) =>
         {
@@ -122,6 +137,20 @@ namespace Tizen.NUI.Components
         /// <since_tizen> 8 </since_tizen>
         public ImageViewStyle Thumb { get; set; } = new ImageViewStyle();
 
+        /// <summary>
+        /// Get or set background warning track.
+        /// </summary>
+        /// This will be public opened later after ACR done. Before ACR, need to be hidden as inhouse API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public ImageViewStyle WarningTrack { get; set; } = new ImageViewStyle();
+
+        /// <summary>
+        /// Get or set slided warning track.
+        /// </summary>
+        /// This will be public opened later after ACR done. Before ACR, need to be hidden as inhouse API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public ImageViewStyle WarningProgress { get; set; } = new ImageViewStyle();
+
         /// <summary>
         /// Get or set low indicator image.
         /// </summary>
@@ -214,6 +243,8 @@ namespace Tizen.NUI.Components
                 Track.CopyFrom(sliderStyle.Track);
                 Progress.CopyFrom(sliderStyle.Progress);
                 Thumb.CopyFrom(sliderStyle.Thumb);
+                WarningTrack.CopyFrom(sliderStyle.WarningTrack);
+                WarningProgress.CopyFrom(sliderStyle.WarningProgress);
                 LowIndicatorImage.CopyFrom(sliderStyle.LowIndicatorImage);
                 HighIndicatorImage.CopyFrom(sliderStyle.HighIndicatorImage);
                 LowIndicator.CopyFrom(sliderStyle.LowIndicator);