[ACR-564] deprecate unused API
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI.Wearable / src / public / CircularScrollbar.cs
old mode 100644 (file)
new mode 100755 (executable)
index df7d50d..08db214
@@ -26,24 +26,26 @@ namespace Tizen.NUI.Wearable
     /// The CircualrScrollbar is a wearable NUI component that can be linked to the scrollable objects
     /// indicating the current scroll position of the scrollable object.<br />
     /// </summary>
+    [Obsolete("This has been deprecated in API12")]
     [EditorBrowsable(EditorBrowsableState.Never)]
     public class CircularScrollbar : ScrollbarBase
     {
         #region Fields
 
         /// <summary>Bindable property of Thickness</summary>
+        [Obsolete("This has been deprecated in API12")]
         [EditorBrowsable(EditorBrowsableState.Never)]
         public static readonly BindableProperty ThicknessProperty = BindableProperty.Create(nameof(Thickness), typeof(float), typeof(CircularScrollbar), default(float), propertyChanged: (bindable, oldValue, newValue) =>
         {
             var instance = ((CircularScrollbar)bindable);
-            var thickness = (float?)newValue;
-
-            ((CircularScrollbarStyle)instance.viewStyle).Thickness = thickness;
-            instance.UpdateVisualThickness(thickness ?? 0);
+            float value = (float?)newValue ?? 0;
+            instance.CurrentStyle.Thickness = value;
+            instance.UpdateVisualThickness(value);
         },
         defaultValueCreator: (bindable) =>
         {
-            return ((CircularScrollbarStyle)((CircularScrollbar)bindable).viewStyle)?.Thickness ?? 0;
+            var instance = (CircularScrollbar)bindable;
+            return instance.CurrentStyle.Thickness ?? 0;
         });
 
         /// <summary>Bindable property of TrackSweepAngle</summary>
@@ -51,14 +53,14 @@ namespace Tizen.NUI.Wearable
         public static readonly BindableProperty TrackSweepAngleProperty = BindableProperty.Create(nameof(TrackSweepAngle), typeof(float), typeof(CircularScrollbar), default(float), propertyChanged: (bindable, oldValue, newValue) =>
         {
             var instance = ((CircularScrollbar)bindable);
-            var angle = (float?)newValue;
-
-            ((CircularScrollbarStyle)instance.viewStyle).TrackSweepAngle = angle;
-            instance.UpdateTrackVisualSweepAngle(angle ?? 0);
+            float value = (float?)newValue ?? 0;
+            instance.CurrentStyle.TrackSweepAngle = value;
+            instance.UpdateTrackVisualSweepAngle(value);
         },
         defaultValueCreator: (bindable) =>
         {
-            return ((CircularScrollbarStyle)((CircularScrollbar)bindable).viewStyle)?.TrackSweepAngle ?? 0;
+            var instance = (CircularScrollbar)bindable;
+            return instance.CurrentStyle.TrackSweepAngle ?? 0;
         });
 
         /// <summary>Bindable property of TrackColor</summary>
@@ -66,14 +68,12 @@ namespace Tizen.NUI.Wearable
         public static readonly BindableProperty TrackColorProperty = BindableProperty.Create(nameof(TrackColor), typeof(Color), typeof(CircularScrollbar), null, propertyChanged: (bindable, oldValue, newValue) =>
         {
             var instance = ((CircularScrollbar)bindable);
-            var color = (Color)newValue;
-
-            ((CircularScrollbarStyle)instance.viewStyle).TrackColor = color;
-            instance.UpdateTrackVisualColor(color);
+            instance.CurrentStyle.TrackColor = (Color)newValue;
+            instance.UpdateTrackVisualColor((Color)newValue);
         },
         defaultValueCreator: (bindable) =>
         {
-            return ((CircularScrollbarStyle)((CircularScrollbar)bindable).viewStyle)?.TrackColor;
+            return ((CircularScrollbar)bindable).CurrentStyle.TrackColor;
         });
 
         /// <summary>Bindable property of ThumbColor</summary>
@@ -81,20 +81,19 @@ namespace Tizen.NUI.Wearable
         public static readonly BindableProperty ThumbColorProperty = BindableProperty.Create(nameof(ThumbColor), typeof(Color), typeof(CircularScrollbar), null, propertyChanged: (bindable, oldValue, newValue) =>
         {
             var instance = ((CircularScrollbar)bindable);
-            var color = (Color)newValue;
-
-            ((CircularScrollbarStyle)instance.viewStyle).ThumbColor = color;
-            instance.UpdateThumbVisualColor(color);
+            instance.CurrentStyle.ThumbColor = (Color)newValue;
+            instance.UpdateThumbVisualColor((Color)newValue);
         },
         defaultValueCreator: (bindable) =>
         {
-            return ((CircularScrollbarStyle)((CircularScrollbar)bindable).viewStyle)?.ThumbColor;
+            return ((CircularScrollbar)bindable).CurrentStyle.ThumbColor;
         });
 
         private ArcVisual trackVisual;
         private ArcVisual thumbVisual;
         private float contentLength;
         private float visibleLength;
+        private float previousPosition;
         private float currentPosition;
         private float directionAlpha;
         private Size containerSize = new Size(0, 0);
@@ -109,7 +108,8 @@ namespace Tizen.NUI.Wearable
         /// <summary>
         /// Create an empty CircularScrollbar.
         /// </summary>
-        public CircularScrollbar() : base(new CircularScrollbarStyle())
+        [Obsolete("This has been deprecated in API12")]
+        public CircularScrollbar() : base()
         {
         }
 
@@ -120,8 +120,9 @@ namespace Tizen.NUI.Wearable
         /// <param name="viewportLength">The length of the viewport representing the amount of visible content.</param>
         /// <param name="currentPosition">The current position of the viewport in scrollable content area. This is the viewport's top position if the scroller is vertical, otherwise, left.</param>
         /// <param name="isHorizontal">Whether the direction of scrolling is horizontal or not. It is vertical by default.</param>
+        [Obsolete("This has been deprecated in API12")]
         [EditorBrowsable(EditorBrowsableState.Never)]
-        public CircularScrollbar(float contentLength, float viewportLength, float currentPosition, bool isHorizontal = false) : base(new CircularScrollbarStyle())
+        public CircularScrollbar(float contentLength, float viewportLength, float currentPosition, bool isHorizontal = false) : base()
         {
             Initialize(contentLength, viewportLength, currentPosition, isHorizontal);
         }
@@ -129,6 +130,7 @@ namespace Tizen.NUI.Wearable
         /// <summary>
         /// Create an empty CircularScrollbar with a CircularScrollbarStyle instance to set style properties.
         /// </summary>
+        [Obsolete("This has been deprecated in API12")]
         [EditorBrowsable(EditorBrowsableState.Never)]
         public CircularScrollbar(CircularScrollbarStyle style) : base(style)
         {
@@ -139,6 +141,7 @@ namespace Tizen.NUI.Wearable
         /// </summary>
         static CircularScrollbar()
         {
+            ThemeManager.AddPackageTheme(DefaultThemeCreator.Instance);
         }
 
         #endregion Constructors
@@ -149,6 +152,7 @@ namespace Tizen.NUI.Wearable
         /// <summary>
         /// The thickness of the scrollbar and track.
         /// </summary>
+        [Obsolete("This has been deprecated in API12")]
         [EditorBrowsable(EditorBrowsableState.Never)]
         public float Thickness
         {
@@ -163,6 +167,7 @@ namespace Tizen.NUI.Wearable
         /// Values below 6 degrees are treated as 6 degrees.
         /// Values exceeding 180 degrees are treated as 180 degrees.
         /// </remarks>
+        [Obsolete("This has been deprecated in API12")]
         [EditorBrowsable(EditorBrowsableState.Never)]
         public float TrackSweepAngle
         {
@@ -173,6 +178,7 @@ namespace Tizen.NUI.Wearable
         /// <summary>
         /// The color of the track part.
         /// </summary>
+        [Obsolete("This has been deprecated in API12")]
         [EditorBrowsable(EditorBrowsableState.Never)]
         public Color TrackColor
         {
@@ -183,6 +189,7 @@ namespace Tizen.NUI.Wearable
         /// <summary>
         /// The color of the thumb part.
         /// </summary>
+        [Obsolete("This has been deprecated in API12")]
         [EditorBrowsable(EditorBrowsableState.Never)]
         public Color ThumbColor
         {
@@ -190,12 +197,15 @@ namespace Tizen.NUI.Wearable
             set => SetValue(ThumbColorProperty, value);
         }
 
+        private CircularScrollbarStyle CurrentStyle => ViewStyle as CircularScrollbarStyle;
+
         #endregion Properties
 
 
         #region Methods
 
         /// <inheritdoc/>
+        [Obsolete("This has been deprecated in API12")]
         [EditorBrowsable(EditorBrowsableState.Never)]
         public override void Initialize(float contentLength, float viewportLenth, float currentPosition, bool isHorizontal = false)
         {
@@ -265,9 +275,20 @@ namespace Tizen.NUI.Wearable
         }
 
         /// <inheritdoc/>
+        [Obsolete("This has been deprecated in API12")]
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public override void Update(float contentLength, float viewportLength, float position, uint durationMs = 0, AlphaFunction alphaFunction = null)
+        {
+            this.visibleLength = viewportLength;
+            Update(contentLength, position, durationMs, alphaFunction);
+        }
+
+        /// <inheritdoc/>
+        [Obsolete("This has been deprecated in API12")]
         [EditorBrowsable(EditorBrowsableState.Never)]
         public override void Update(float contentLength, float position, uint durationMs = 0, AlphaFunction alphaFunction = null)
         {
+            this.previousPosition = this.currentPosition;
             this.currentPosition = position;
             this.contentLength = contentLength > 0.0f ? contentLength : 0.0f;
 
@@ -300,11 +321,18 @@ namespace Tizen.NUI.Wearable
         }
 
         /// <inheritdoc/>
+        [Obsolete("This has been deprecated in API12")]
         [EditorBrowsable(EditorBrowsableState.Never)]
         public override void ScrollTo(float position, uint durationMs = 0, AlphaFunction alphaFunction = null)
         {
+            previousPosition = currentPosition;
             currentPosition = position;
 
+            if (ControlState == ControlState.Disabled)
+            {
+                return;
+            }
+
             if (thumbVisual == null)
             {
                 return;
@@ -330,12 +358,18 @@ namespace Tizen.NUI.Wearable
         }
 
         /// <inheritdoc/>
+        [Obsolete("This has been deprecated in API12")]
         [EditorBrowsable(EditorBrowsableState.Never)]
         public override void OnRelayout(Vector2 size, RelayoutContainer container)
         {
             base.OnRelayout(size, container);
 
-            if (size.Width == containerSize?.Width && size.Height == containerSize.Height)
+            if (size == null || container == null || containerSize == null)
+            {
+                return;
+            }
+
+            if (size.Width == containerSize.Width && size.Height == containerSize.Height)
             {
                 return;
             }
@@ -355,8 +389,21 @@ namespace Tizen.NUI.Wearable
         }
 
         /// <inheritdoc/>
+        [Obsolete("This has been deprecated in API12")]
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public override void ApplyStyle(ViewStyle viewStyle)
+        {
+            if (viewStyle == null) return;
+            if (viewStyle.WidthResizePolicy == null) viewStyle.WidthResizePolicy = ResizePolicyType.FillToParent;
+            if (viewStyle.HeightResizePolicy == null) viewStyle.HeightResizePolicy = ResizePolicyType.FillToParent;
+
+            base.ApplyStyle(viewStyle);
+        }
+
+        /// <inheritdoc/>
+        [Obsolete("This has been deprecated in API12")]
         [EditorBrowsable(EditorBrowsableState.Never)]
-        protected override ViewStyle GetViewStyle()
+        protected override ViewStyle CreateViewStyle()
         {
             return new CircularScrollbarStyle();
         }
@@ -443,6 +490,35 @@ namespace Tizen.NUI.Wearable
             thumbVisual.UpdateVisual(true);
         }
 
+        /// <inheritdoc/>
+        [Obsolete("This has been deprecated in API12")]
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public override float ScrollPosition
+        {
+            get => Math.Min(Math.Max(currentPosition, 0.0f), contentLength - visibleLength);
+        }
+
+        /// <inheritdoc/>
+        [Obsolete("This has been deprecated in API12")]
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public override float ScrollCurrentPosition
+        {
+            get
+            {
+                float length = Math.Min(Math.Max(currentPosition, 0.0f), contentLength - visibleLength);
+
+                if (thumbStartAngleAnimation != null)
+                {
+                    float progress = thumbStartAngleAnimation.CurrentProgress;
+                    float previousLength = Math.Min(Math.Max(previousPosition, 0.0f), contentLength - visibleLength);
+
+                    length = ((1.0f - progress) * previousLength) + (progress * length);
+                }
+
+                return length;
+            }
+        }
+
         #endregion Methods
     }
 }