2 * Copyright(c) 2019 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 using Tizen.NUI.BaseComponents;
19 using System.ComponentModel;
20 using Tizen.NUI.Binding;
22 namespace Tizen.NUI.Components
25 /// Slider value changed event data.
27 /// <since_tizen> 8 </since_tizen>
28 public class SliderValueChangedEventArgs : EventArgs
31 /// Current Slider value
33 /// <since_tizen> 8 </since_tizen>
34 public float CurrentValue { get; set; }
38 /// Slider sliding started event data.
40 /// <since_tizen> 8 </since_tizen>
41 public class SliderSlidingStartedEventArgs : EventArgs
44 /// Current Slider value
46 /// <since_tizen> 8 </since_tizen>
47 public float CurrentValue { get; set; }
51 /// Slider sliding finished event data.
53 /// <since_tizen> 8 </since_tizen>
54 public class SliderSlidingFinishedEventArgs : EventArgs
57 /// Current Slider value
59 /// <since_tizen> 8 </since_tizen>
60 public float CurrentValue { get; set; }
64 /// A slider lets users select a value from a continuous or discrete range of values by moving the slider thumb.
66 /// <since_tizen> 6 </since_tizen>
67 public partial class Slider : Control
69 /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
70 [EditorBrowsable(EditorBrowsableState.Never)]
71 public static readonly BindableProperty IndicatorTypeProperty = BindableProperty.Create("IndicatorType", typeof(IndicatorType), typeof(Slider), IndicatorType.None, propertyChanged: (bindable, oldValue, newValue) =>
73 var instance = (Slider)bindable;
76 instance.privateIndicatorType = (IndicatorType)newValue;
79 defaultValueCreator: (bindable) =>
81 var instance = (Slider)bindable;
82 return instance.privateIndicatorType;
84 /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
85 [EditorBrowsable(EditorBrowsableState.Never)]
86 public static readonly BindableProperty SpaceBetweenTrackAndIndicatorProperty = BindableProperty.Create(nameof(SpaceBetweenTrackAndIndicator), typeof(uint), typeof(Slider), (uint)0, propertyChanged: (bindable, oldValue, newValue) =>
88 var instance = (Slider)bindable;
91 instance.privateSpaceBetweenTrackAndIndicator = (uint)newValue;
94 defaultValueCreator: (bindable) =>
96 var instance = (Slider)bindable;
97 return instance.privateSpaceBetweenTrackAndIndicator;
99 /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
100 [EditorBrowsable(EditorBrowsableState.Never)]
101 public static readonly BindableProperty TrackThicknessProperty = BindableProperty.Create(nameof(TrackThickness), typeof(uint), typeof(Slider), (uint)0, propertyChanged: (bindable, oldValue, newValue) =>
103 var instance = (Slider)bindable;
104 if (newValue != null)
106 instance.privateTrackThickness = (uint)newValue;
109 defaultValueCreator: (bindable) =>
111 var instance = (Slider)bindable;
112 return instance.privateTrackThickness;
118 /// The constructor of the Slider class.
120 /// <since_tizen> 6 </since_tizen>
127 /// The constructor of the Slider class with specific style.
129 /// <param name="style">The string to initialize the Slider</param>
130 /// <since_tizen> 8 </since_tizen>
131 public Slider(string style) : base(style)
137 /// The constructor of the Slider class with specific style.
139 /// <param name="sliderStyle">The style object to initialize the Slider</param>
140 /// <since_tizen> 8 </since_tizen>
141 public Slider(SliderStyle sliderStyle) : base(sliderStyle)
147 /// The value changed event handler.
149 /// <since_tizen> 6 </since_tizen>
150 [Obsolete("Deprecated in API8; Will be removed in API10. Please use ValueChanged event instead.")]
151 public event EventHandler<ValueChangedArgs> ValueChangedEvent
155 valueChangedHandler += value;
159 valueChangedHandler -= value;
164 /// The sliding finished event handler.
166 /// <since_tizen> 6 </since_tizen>
167 [Obsolete("Deprecated in API8; Will be removed in API10. Please use SlidingFinished event instead.")]
168 public event EventHandler<SlidingFinishedArgs> SlidingFinishedEvent
172 slidingFinishedHandler += value;
176 slidingFinishedHandler -= value;
181 /// The value changed event handler.
183 /// <since_tizen> 8 </since_tizen>
184 public event EventHandler<SliderValueChangedEventArgs> ValueChanged
188 sliderValueChangedHandler += value;
192 sliderValueChangedHandler -= value;
197 /// The sliding started event handler.
199 /// <since_tizen> 8 </since_tizen>
200 public event EventHandler<SliderSlidingStartedEventArgs> SlidingStarted
204 sliderSlidingStartedHandler += value;
208 sliderSlidingStartedHandler -= value;
213 /// The sliding finished event handler.
215 /// <since_tizen> 8 </since_tizen>
216 public event EventHandler<SliderSlidingFinishedEventArgs> SlidingFinished
220 sliderSlidingFinishedHandler += value;
224 sliderSlidingFinishedHandler -= value;
229 /// The state changed event handler.
231 /// <since_tizen> 6 </since_tizen>
232 [Obsolete("Deprecated in API8; Will be removed in API10. Please use View.ControlStateChangedEvent")]
233 public event EventHandler<StateChangedArgs> StateChangedEvent
237 stateChangedHandler += value;
241 stateChangedHandler -= value;
246 /// The direction type of slider.
248 /// <since_tizen> 6 </since_tizen>
249 public enum DirectionType
252 /// The Horizontal type.
254 /// <since_tizen> 6 </since_tizen>
258 /// The Vertical type.
260 /// <since_tizen> 6 </since_tizen>
265 /// The indicator type of slider.
267 /// <since_tizen> 6 </since_tizen>
268 public enum IndicatorType
270 /// <summary> Only contains slider bar.</summary>
271 /// <since_tizen> 6 </since_tizen>
274 /// <summary> Contains slider bar, IndicatorImage.</summary>
275 /// <since_tizen> 6 </since_tizen>
278 /// <summary> Contains slider bar, IndicatorText.</summary>
279 /// <since_tizen> 6 </since_tizen>
284 /// Return a copied Style instance of Slider
287 /// It returns copied Style instance and changing it does not effect to the Slider.
288 /// Style setting is possible by using constructor or the function of ApplyStyle(ViewStyle viewStyle)
290 /// <since_tizen> 8 </since_tizen>
291 public new SliderStyle Style
295 var result = new SliderStyle(sliderStyle);
296 result.CopyPropertiesFromView(this);
297 result.Track.CopyPropertiesFromView(bgTrackImage);
298 result.Progress.CopyPropertiesFromView(slidedTrackImage);
299 result.Thumb.CopyPropertiesFromView(thumbImage);
300 result.LowIndicatorImage.CopyPropertiesFromView(lowIndicatorImage);
301 result.HighIndicatorImage.CopyPropertiesFromView(highIndicatorImage);
302 result.LowIndicator.CopyPropertiesFromView(lowIndicatorText);
303 result.HighIndicator.CopyPropertiesFromView(highIndicatorText);
309 /// Return a copied Style instance of Slider
311 private SliderStyle sliderStyle => ViewStyle as SliderStyle;
314 /// Gets or sets the direction type of slider.
316 /// <since_tizen> 6 </since_tizen>
317 public DirectionType Direction
325 if (direction == value)
330 RelayoutBaseComponent(false);
332 UpdateBgTrackPosition();
338 /// Gets or sets the indicator type, arrow or sign.
340 /// <since_tizen> 6 </since_tizen>
341 public IndicatorType Indicator
345 return (IndicatorType)GetValue(IndicatorTypeProperty);
349 SetValue(IndicatorTypeProperty, value);
354 /// Gets or sets the minimum value of slider.
356 /// <since_tizen> 6 </since_tizen>
357 public float MinValue
371 /// Gets or sets the maximum value of slider.
373 /// <since_tizen> 6 </since_tizen>
374 public float MaxValue
388 /// Gets or sets the current value of slider.
390 /// <since_tizen> 6 </since_tizen>
391 public float CurrentValue
405 /// Gets or sets the size of the thumb image object.
407 /// <since_tizen> 6 </since_tizen>
408 public Size ThumbSize
412 return thumbImage?.Size;
416 if (null != thumbImage)
418 thumbImage.Size = value;
419 sliderStyle.Thumb.Size = value;
425 /// Gets or sets the resource url of the thumb image object.
427 /// <since_tizen> 6 </since_tizen>
428 public string ThumbImageURL
432 return thumbImage?.ResourceUrl;
436 if (null != thumbImage)
438 thumbImage.ResourceUrl = value;
439 sliderStyle.Thumb.ResourceUrl = value;
445 /// Gets or sets the resource url selector of the thumb image object.
446 /// Getter returns copied selector value if exist, null otherwise.
448 /// <exception cref="NullReferenceException">Thrown when setting null value.</exception>
449 /// <since_tizen> 6 </since_tizen>
450 public StringSelector ThumbImageURLSelector
452 get => thumbImage == null ? null : new StringSelector((Selector<string>)thumbImage.GetValue(ImageView.ResourceUrlSelectorProperty));
455 if (value == null || thumbImage == null)
457 throw new NullReferenceException("Slider.ThumbImageURLSelector is null");
461 thumbImage.SetValue(ImageView.ResourceUrlSelectorProperty, value);
467 /// Gets or sets the color of the thumb image object.
469 /// <since_tizen> 8 </since_tizen>
470 public Color ThumbColor
474 return thumbImage?.Color;
478 if (null != thumbImage)
480 thumbImage.Color = value;
481 sliderStyle.Thumb.Color = value;
487 /// Gets or sets the color of the background track image object.
489 /// <since_tizen> 6 </since_tizen>
490 public Color BgTrackColor
494 return bgTrackImage?.BackgroundColor;
498 if (null != bgTrackImage)
500 bgTrackImage.BackgroundColor = value;
501 sliderStyle.Track.BackgroundColor = value;
507 /// Gets or sets the color of the slided track image object.
509 /// <since_tizen> 6 </since_tizen>
510 public Color SlidedTrackColor
514 return slidedTrackImage?.BackgroundColor;
518 if (null != slidedTrackImage)
520 slidedTrackImage.BackgroundColor = value;
521 sliderStyle.Progress.BackgroundColor = value;
527 /// Gets or sets the thickness value of the track.
529 /// <since_tizen> 6 </since_tizen>
530 public uint TrackThickness
534 return (uint)GetValue(TrackThicknessProperty);
538 SetValue(TrackThicknessProperty, value);
543 /// Gets or sets the resource url of the low indicator image object.
545 /// <since_tizen> 6 </since_tizen>
546 public string LowIndicatorImageURL
550 return lowIndicatorImage?.ResourceUrl;
554 if (null == lowIndicatorImage) lowIndicatorImage = new ImageView();
555 lowIndicatorImage.ResourceUrl = value;
556 sliderStyle.LowIndicatorImage.ResourceUrl = value;
561 /// Gets or sets the resource url of the high indicator image object.
563 /// <since_tizen> 6 </since_tizen>
564 public string HighIndicatorImageURL
568 return highIndicatorImage?.ResourceUrl;
572 if (null == highIndicatorImage) highIndicatorImage = new ImageView();
573 highIndicatorImage.ResourceUrl = value;
574 sliderStyle.HighIndicatorImage.ResourceUrl = value;
579 /// Gets or sets the text content of the low indicator text object.
581 /// <since_tizen> 6 </since_tizen>
582 public string LowIndicatorTextContent
586 return lowIndicatorText?.Text;
590 if (null != lowIndicatorText)
592 lowIndicatorText.Text = value;
593 sliderStyle.LowIndicator.Text = value;
599 /// Gets or sets the text content of the high indicator text object.
601 /// <since_tizen> 6 </since_tizen>
602 public string HighIndicatorTextContent
606 return highIndicatorText?.Text;
610 if (null != highIndicatorText)
612 highIndicatorText.Text = value;
613 sliderStyle.HighIndicator.Text = value;
619 /// Gets or sets the size of the low indicator object(image or text).
621 /// <since_tizen> 6 </since_tizen>
622 public Size LowIndicatorSize
626 return lowIndicatorSize;
630 lowIndicatorSize = value;
631 UpdateLowIndicatorSize();
633 UpdateBgTrackPosition();
639 /// Gets or sets the size of the high indicator object(image or text).
641 /// <since_tizen> 6 </since_tizen>
642 public Size HighIndicatorSize
646 return highIndicatorText?.Size;
650 if (null != highIndicatorText)
652 highIndicatorText.Size = value;
653 sliderStyle.HighIndicator.Size = value;
659 /// Gets or sets the value of the space between track and indicator.
661 /// <since_tizen> 6 </since_tizen>
662 public uint SpaceBetweenTrackAndIndicator
666 return (uint)GetValue(SpaceBetweenTrackAndIndicatorProperty);
670 SetValue(SpaceBetweenTrackAndIndicatorProperty, value);
674 private Extents spaceBetweenTrackAndIndicator
678 if (null == _spaceBetweenTrackAndIndicator)
680 _spaceBetweenTrackAndIndicator = new Extents((ushort start, ushort end, ushort top, ushort bottom) =>
682 Extents extents = new Extents(start, end, top, bottom);
683 _spaceBetweenTrackAndIndicator.CopyFrom(extents);
687 return _spaceBetweenTrackAndIndicator;
691 private IndicatorType privateIndicatorType
695 return indicatorType;
699 if (indicatorType == value)
703 indicatorType = value;
704 RelayoutBaseComponent(false);
706 UpdateBgTrackPosition();
711 private uint privateTrackThickness
715 return trackThickness ?? 0;
719 trackThickness = value;
720 if (bgTrackImage != null)
722 if (direction == DirectionType.Horizontal)
724 bgTrackImage.SizeHeight = (float)trackThickness.Value;
726 else if (direction == DirectionType.Vertical)
728 bgTrackImage.SizeWidth = (float)trackThickness.Value;
731 if (slidedTrackImage != null)
733 if (direction == DirectionType.Horizontal)
735 slidedTrackImage.SizeHeight = (float)trackThickness.Value;
737 else if (direction == DirectionType.Vertical)
739 slidedTrackImage.SizeWidth = (float)trackThickness.Value;
745 private uint privateSpaceBetweenTrackAndIndicator
749 return privateTrackPadding.Start;
753 ushort val = (ushort)value;
754 privateTrackPadding = new Extents(val, val, val, val);
758 private Extents privateTrackPadding
762 return spaceBetweenTrackAndIndicator;
766 spaceBetweenTrackAndIndicator.CopyFrom(value);
767 UpdateComponentByIndicatorTypeChanged();
769 UpdateBgTrackPosition();
775 /// Focus gained callback.
777 /// <since_tizen> 8 </since_tizen>
778 public override void OnFocusGained()
780 //State = ControlStates.Focused;
781 UpdateState(true, isPressed);
782 base.OnFocusGained();
786 /// Focus Lost callback.
788 /// <since_tizen> 8 </since_tizen>
789 public override void OnFocusLost()
791 //State = ControlStates.Normal;
792 UpdateState(false, isPressed);
797 /// Apply style to scrollbar.
799 /// <param name="viewStyle">The style to apply.</param>
800 /// <since_tizen> 8 </since_tizen>
801 public override void ApplyStyle(ViewStyle viewStyle)
803 base.ApplyStyle(viewStyle);
805 SliderStyle sliderStyle = viewStyle as SliderStyle;
807 if (null != sliderStyle?.Progress)
809 CreateSlidedTrack().ApplyStyle(sliderStyle.Progress);
812 if (null != sliderStyle?.LowIndicator)
814 CreateLowIndicatorText().ApplyStyle(sliderStyle.LowIndicator);
817 if (null != sliderStyle?.HighIndicator)
819 CreateHighIndicatorText().ApplyStyle(sliderStyle.HighIndicator);
822 if (null != sliderStyle?.Track)
824 CreateBackgroundTrack().ApplyStyle(sliderStyle.Track);
827 if (null != sliderStyle?.Thumb)
829 CreateThumb().ApplyStyle(sliderStyle.Thumb);
832 EnableControlStatePropagation = true;
836 /// Get Slider style.
838 /// <returns>The default slider style.</returns>
839 /// <since_tizen> 8 </since_tizen>
840 protected override ViewStyle CreateViewStyle()
842 return new SliderStyle();
848 /// <param name="type">Dispose type.</param>
849 /// <since_tizen> 6 </since_tizen>
850 protected override void Dispose(DisposeTypes type)
857 if (type == DisposeTypes.Explicit)
859 if (null != panGestureDetector)
861 if (null != thumbImage)
863 panGestureDetector.Detach(thumbImage);
865 panGestureDetector.Detected -= OnPanGestureDetected;
866 panGestureDetector.Dispose();
867 panGestureDetector = null;
870 if (null != thumbImage)
872 thumbImage.TouchEvent -= OnTouchEventForThumb;
873 Utility.Dispose(thumbImage);
875 Utility.Dispose(slidedTrackImage);
876 if (null != bgTrackImage)
878 bgTrackImage.TouchEvent -= OnTouchEventForBgTrack;
879 Utility.Dispose(bgTrackImage);
881 Utility.Dispose(lowIndicatorImage);
882 Utility.Dispose(highIndicatorImage);
883 Utility.Dispose(lowIndicatorText);
884 Utility.Dispose(highIndicatorText);
891 /// Update Slider by style.
893 /// <since_tizen> 6 </since_tizen>
894 /// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
895 [EditorBrowsable(EditorBrowsableState.Never)]
896 protected override void OnUpdate()
898 RelayoutBaseComponent();
900 UpdateComponentByIndicatorTypeChanged();
902 UpdateBgTrackPosition();
903 UpdateLowIndicatorSize();
907 private void CalculateCurrentValueByGesture(float offset)
909 currentSlidedOffset += offset;
911 if (currentSlidedOffset <= 0)
915 else if (currentSlidedOffset >= BgTrackLength())
921 int bgTrackLength = BgTrackLength();
922 if (bgTrackLength != 0)
924 curValue = ((currentSlidedOffset / (float)bgTrackLength) * (float)(maxValue - minValue)) + minValue;
927 if (valueChangedHandler != null)
929 ValueChangedArgs args = new ValueChangedArgs();
930 args.CurrentValue = curValue;
931 valueChangedHandler(this, args);
934 if (sliderValueChangedHandler != null)
936 SliderValueChangedEventArgs args = new SliderValueChangedEventArgs();
937 args.CurrentValue = curValue;
938 sliderValueChangedHandler(this, args);
942 private bool OnTouchEventForBgTrack(object source, TouchEventArgs e)
944 PointStateType state = e.Touch.GetState(0);
945 if (state == PointStateType.Down)
947 Vector2 pos = e.Touch.GetLocalPosition(0);
948 CalculateCurrentValueByTouch(pos);
950 if (null != slidingFinishedHandler)
952 SlidingFinishedArgs args = new SlidingFinishedArgs();
953 args.CurrentValue = curValue;
954 slidingFinishedHandler(this, args);
957 if (null != sliderSlidingFinishedHandler)
959 SliderSlidingFinishedEventArgs args = new SliderSlidingFinishedEventArgs();
960 args.CurrentValue = curValue;
961 sliderSlidingFinishedHandler(this, args);
967 private bool OnTouchEventForThumb(object source, TouchEventArgs e)
969 PointStateType state = e.Touch.GetState(0);
970 if (state == PointStateType.Down)
972 UpdateState(isFocused, true);
974 else if (state == PointStateType.Up)
976 UpdateState(isFocused, false);
981 private void CalculateCurrentValueByTouch(Vector2 pos)
983 int bgTrackLength = BgTrackLength();
984 if (direction == DirectionType.Horizontal)
986 currentSlidedOffset = pos.X;
988 else if (direction == DirectionType.Vertical)
990 currentSlidedOffset = bgTrackLength - pos.Y;
992 if (bgTrackLength != 0)
994 curValue = ((currentSlidedOffset / (float)bgTrackLength) * (maxValue - minValue)) + minValue;
995 if (null != valueChangedHandler)
997 ValueChangedArgs args = new ValueChangedArgs();
998 args.CurrentValue = curValue;
999 valueChangedHandler(this, args);
1002 if (null != sliderValueChangedHandler)
1004 SliderValueChangedEventArgs args = new SliderValueChangedEventArgs();
1005 args.CurrentValue = curValue;
1006 sliderValueChangedHandler(this, args);
1011 private void UpdateState(bool isFocusedNew, bool isPressedNew)
1013 if (isFocused == isFocusedNew && isPressed == isPressedNew)
1017 if (thumbImage == null || Style == null)
1021 isFocused = isFocusedNew;
1022 isPressed = isPressedNew;
1024 if (!isFocused && !isPressed)
1026 ControlState = ControlState.Normal;
1027 if (stateChangedHandler != null)
1029 StateChangedArgs args = new StateChangedArgs();
1030 args.CurrentState = (ControlStates)ControlStates.Normal;
1031 stateChangedHandler(this, args);
1036 ControlState = ControlState.Pressed;
1038 if (stateChangedHandler != null)
1040 StateChangedArgs args = new StateChangedArgs();
1041 args.CurrentState = (ControlStates)ControlStates.Pressed;
1042 stateChangedHandler(this, args);
1045 else if (!isPressed && isFocused)
1047 ControlState = ControlState.Focused;
1049 if (stateChangedHandler != null)
1051 StateChangedArgs args = new StateChangedArgs();
1052 args.CurrentState = (ControlStates)ControlStates.Focused;
1053 stateChangedHandler(this, args);
1058 private void UpdateComponentByIndicatorTypeChanged()
1060 IndicatorType type = CurrentIndicatorType();
1061 if (type == IndicatorType.None)
1063 if (lowIndicatorImage != null)
1065 lowIndicatorImage.Hide();
1067 if (highIndicatorImage != null)
1069 highIndicatorImage.Hide();
1071 if (lowIndicatorText != null)
1073 lowIndicatorText.Hide();
1075 if (highIndicatorText != null)
1077 highIndicatorText.Hide();
1080 else if (type == IndicatorType.Image)
1082 if (lowIndicatorImage != null)
1084 lowIndicatorImage.Show();
1086 if (highIndicatorImage != null)
1088 highIndicatorImage.Show();
1090 if (lowIndicatorText != null)
1092 lowIndicatorText.Hide();
1094 if (highIndicatorText != null)
1096 highIndicatorText.Hide();
1099 else if (type == IndicatorType.Text)
1101 if (lowIndicatorText != null)
1103 lowIndicatorText.Show();
1105 if (highIndicatorText != null)
1107 highIndicatorText.Show();
1109 if (lowIndicatorImage != null)
1111 lowIndicatorImage.Hide();
1113 if (highIndicatorImage != null)
1115 highIndicatorImage.Hide();
1121 /// Value Changed event data.
1123 /// <since_tizen> 6 </since_tizen>
1124 [Obsolete("Deprecated in API8; Will be removed in API10. Please use SliderValueChangedEventArgs instead.")]
1125 [global::System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")]
1126 public class ValueChangedArgs : EventArgs
1131 /// <since_tizen> 6 </since_tizen>
1132 /// It will be removed in API10
1133 [global::System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:Do not declare visible instance fields")]
1134 [Obsolete("Deprecated in API8; Will be removed in API10. Please use SliderValueChangedEventArgs.CurrentValue instead.")]
1135 public float CurrentValue;
1139 /// Value Changed event data.
1141 /// <since_tizen> 6 </since_tizen>
1142 [Obsolete("Deprecated in API8; Will be removed in API10. Please use SliderSlidingFinishedEventArgs instead.")]
1143 [global::System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")]
1144 public class SlidingFinishedArgs : EventArgs
1149 /// <since_tizen> 6 </since_tizen>
1150 /// It will be removed in API10
1151 [global::System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:Do not declare visible instance fields")]
1152 [Obsolete("Deprecated in API8; Will be removed in API10. Please use SliderSlidingFinishedEventArgs.CurrentValue instead.")]
1153 public float CurrentValue;
1157 /// State Changed event data.
1159 /// <since_tizen> 6 </since_tizen>
1160 [Obsolete("Deprecated in API8; Will be removed in API10. Please use View.ControlStateChangedEventArgs")]
1161 [global::System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")]
1162 public class StateChangedArgs : EventArgs
1167 /// <since_tizen> 6 </since_tizen>
1168 /// It will be removed in API10
1169 [global::System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:Do not declare visible instance fields")]
1170 [Obsolete("Deprecated in API8; Will be removed in API10")]
1171 public ControlStates CurrentState;