2 * Copyright(c) 2018 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 System.Runtime.InteropServices;
19 using System.ComponentModel;
20 using Tizen.NUI.BaseComponents;
21 using Tizen.NUI.Binding;
22 using Tizen.NUI.Binding.Internals;
24 namespace Tizen.NUI.UIComponents
27 /// The slider is a control to enable sliding an indicator between two values.
29 /// <since_tizen> 3 </since_tizen>
30 public class Slider : View
32 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
33 [EditorBrowsable(EditorBrowsableState.Never)]
34 public static readonly BindableProperty LowerBoundProperty = BindableProperty.Create("LowerBound", typeof(float), typeof(Slider), 0.0f, propertyChanged: (bindable, oldValue, newValue) =>
36 var slider = (Slider)bindable;
39 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.LOWER_BOUND, new Tizen.NUI.PropertyValue((float)newValue));
41 Console.WriteLine("Slider LowerBoundProperty changed: oldValue: " + oldValue + ", newValue: " + newValue);
43 defaultValueCreator:(bindable) =>
45 var slider = (Slider)bindable;
47 Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.LOWER_BOUND).Get(out temp);
50 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
51 [EditorBrowsable(EditorBrowsableState.Never)]
52 public static readonly BindableProperty UpperBoundProperty = BindableProperty.Create("UpperBound", typeof(float), typeof(Slider), 1.0f, propertyChanged: (bindable, oldValue, newValue) =>
54 var slider = (Slider)bindable;
57 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.UPPER_BOUND, new Tizen.NUI.PropertyValue((float)newValue));
59 Console.WriteLine("Slider UpperBoundProperty changed: oldValue: " + oldValue + ", newValue: " + newValue);
61 defaultValueCreator:(bindable) =>
63 var slider = (Slider)bindable;
65 Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.UPPER_BOUND).Get(out temp);
68 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
69 [EditorBrowsable(EditorBrowsableState.Never)]
70 public static readonly BindableProperty ValueProperty = BindableProperty.Create("Value", typeof(float), typeof(Slider), default(float), BindingMode.TwoWay, propertyChanged: (bindable, oldValue, newValue) =>
72 var slider = (Slider)bindable;
73 Console.WriteLine("Slider ValueProperty Changed: oldValue: " + oldValue + ", newValue: " + newValue);
76 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.VALUE, new Tizen.NUI.PropertyValue((float)newValue));
79 defaultValueCreator:(bindable) =>
81 var slider = (Slider)bindable;
83 Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.VALUE).Get(out temp);
86 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
87 [EditorBrowsable(EditorBrowsableState.Never)]
88 public static readonly BindableProperty TrackVisualProperty = BindableProperty.Create("TrackVisual", typeof(PropertyMap), typeof(Slider), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) =>
90 var slider = (Slider)bindable;
93 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.TRACK_VISUAL, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
95 Console.WriteLine("Slider TrackVisualProperty changed: oldValue: " + oldValue + ", newValue: " + newValue);
97 defaultValueCreator:(bindable) =>
99 var slider = (Slider)bindable;
100 PropertyMap temp = new PropertyMap();
101 Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.TRACK_VISUAL).Get(temp);
104 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
105 [EditorBrowsable(EditorBrowsableState.Never)]
106 public static readonly BindableProperty HandleVisualProperty = BindableProperty.Create("HandleVisual", typeof(PropertyMap), typeof(Slider), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) =>
108 var slider = (Slider)bindable;
109 if (newValue != null)
111 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.HANDLE_VISUAL, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
113 Console.WriteLine("Slider HandleVisualProperty changed: oldValue: " + oldValue + ", newValue: " + newValue);
115 defaultValueCreator:(bindable) =>
117 var slider = (Slider)bindable;
118 PropertyMap temp = new PropertyMap();
119 Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.HANDLE_VISUAL).Get(temp);
122 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
123 [EditorBrowsable(EditorBrowsableState.Never)]
124 public static readonly BindableProperty ProgressVisualProperty = BindableProperty.Create("ProgressVisual", typeof(PropertyMap), typeof(Slider), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) =>
126 var slider = (Slider)bindable;
127 if (newValue != null)
129 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.PROGRESS_VISUAL, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
131 Console.WriteLine("Slider ProgressVisualProperty changed: oldValue: " + oldValue + ", newValue: " + newValue);
133 defaultValueCreator:(bindable) =>
135 var slider = (Slider)bindable;
136 PropertyMap temp = new PropertyMap();
137 Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.PROGRESS_VISUAL).Get(temp);
140 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
141 [EditorBrowsable(EditorBrowsableState.Never)]
142 public static readonly BindableProperty PopupVisualProperty = BindableProperty.Create("PopupVisual", typeof(PropertyMap), typeof(Slider), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) =>
144 var slider = (Slider)bindable;
145 if (newValue != null)
147 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.POPUP_VISUAL, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
149 Console.WriteLine("Slider PopupVisualProperty changed: oldValue: " + oldValue + ", newValue: " + newValue);
151 defaultValueCreator:(bindable) =>
153 var slider = (Slider)bindable;
154 PropertyMap temp = new PropertyMap();
155 Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.POPUP_VISUAL).Get(temp);
158 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
159 [EditorBrowsable(EditorBrowsableState.Never)]
160 public static readonly BindableProperty PopupArrowVisualProperty = BindableProperty.Create("PopupArrowVisual", typeof(PropertyMap), typeof(Slider), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) =>
162 var slider = (Slider)bindable;
163 if (newValue != null)
165 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.POPUP_ARROW_VISUAL, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
167 Console.WriteLine("Slider PopupArrowVisualProperty changed: oldValue: " + oldValue + ", newValue: " + newValue);
169 defaultValueCreator:(bindable) =>
171 var slider = (Slider)bindable;
172 PropertyMap temp = new PropertyMap();
173 Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.POPUP_ARROW_VISUAL).Get(temp);
176 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
177 [EditorBrowsable(EditorBrowsableState.Never)]
178 public static readonly BindableProperty DisabledColorProperty = BindableProperty.Create("DisabledColor", typeof(Vector4), typeof(Slider), Vector4.Zero, propertyChanged: (bindable, oldValue, newValue) =>
180 var slider = (Slider)bindable;
181 if (newValue != null)
183 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.DISABLED_COLOR, new Tizen.NUI.PropertyValue((Vector4)newValue));
185 Console.WriteLine("Slider DisabledColorProperty changed: oldValue: " + oldValue + ", newValue: " + newValue);
187 defaultValueCreator:(bindable) =>
189 var slider = (Slider)bindable;
190 Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
191 Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.DISABLED_COLOR).Get(temp);
194 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
195 [EditorBrowsable(EditorBrowsableState.Never)]
196 public static readonly BindableProperty ValuePrecisionProperty = BindableProperty.Create("ValuePrecision", typeof(int), typeof(Slider), default(int), propertyChanged: (bindable, oldValue, newValue) =>
198 var slider = (Slider)bindable;
199 if (newValue != null)
201 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.VALUE_PRECISION, new Tizen.NUI.PropertyValue((int)newValue));
203 Console.WriteLine("Slider ValuePrecisionProperty changed: oldValue: " + oldValue + ", newValue: " + newValue);
205 defaultValueCreator:(bindable) =>
207 var slider = (Slider)bindable;
209 Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.VALUE_PRECISION).Get(out temp);
212 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
213 [EditorBrowsable(EditorBrowsableState.Never)]
214 public static readonly BindableProperty ShowPopupProperty = BindableProperty.Create("ShowPopup", typeof(bool), typeof(Slider), false, propertyChanged: (bindable, oldValue, newValue) =>
216 var slider = (Slider)bindable;
217 if (newValue != null)
219 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.SHOW_POPUP, new Tizen.NUI.PropertyValue((bool)newValue));
221 Console.WriteLine("Slider ShowPopupProperty changed: oldValue: " + oldValue + ", newValue: " + newValue);
223 defaultValueCreator:(bindable) =>
225 var slider = (Slider)bindable;
227 Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.SHOW_POPUP).Get(out temp);
230 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
231 [EditorBrowsable(EditorBrowsableState.Never)]
232 public static readonly BindableProperty ShowValueProperty = BindableProperty.Create("ShowValue", typeof(bool), typeof(Slider), false, propertyChanged: (bindable, oldValue, newValue) =>
234 var slider = (Slider)bindable;
235 if (newValue != null)
237 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.SHOW_VALUE, new Tizen.NUI.PropertyValue((bool)newValue));
239 Console.WriteLine("Slider ShowValueProperty changed: oldValue: " + oldValue + ", newValue: " + newValue);
241 defaultValueCreator:(bindable) =>
243 var slider = (Slider)bindable;
245 Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.SHOW_VALUE).Get(out temp);
248 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
249 [EditorBrowsable(EditorBrowsableState.Never)]
250 public static readonly BindableProperty MarksProperty = BindableProperty.Create("Marks", typeof(PropertyArray), typeof(Slider), new PropertyArray(), propertyChanged: (bindable, oldValue, newValue) =>
252 var slider = (Slider)bindable;
253 if (newValue != null)
255 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.MARKS, new Tizen.NUI.PropertyValue((PropertyArray)newValue));
257 Console.WriteLine("Slider MarksPropertyProperty changed: oldValue: " + oldValue + ", newValue: " + newValue);
259 defaultValueCreator:(bindable) =>
261 var slider = (Slider)bindable;
262 Tizen.NUI.PropertyArray temp = new Tizen.NUI.PropertyArray();
263 Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.MARKS).Get(temp);
266 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
267 [EditorBrowsable(EditorBrowsableState.Never)]
268 public static readonly BindableProperty MarkToleranceProperty = BindableProperty.Create("MarkTolerance", typeof(float), typeof(Slider), default(float), propertyChanged: (bindable, oldValue, newValue) =>
270 var slider = (Slider)bindable;
271 if (newValue != null)
273 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.MARK_TOLERANCE, new Tizen.NUI.PropertyValue((float)newValue));
275 Console.WriteLine("Slider MarkToleranceProperty changed: oldValue: " + oldValue + ", newValue: " + newValue);
277 defaultValueCreator:(bindable) =>
279 var slider = (Slider)bindable;
281 Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.MARK_TOLERANCE).Get(out temp);
284 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
285 [EditorBrowsable(EditorBrowsableState.Never)]
286 public static readonly BindableProperty SnapToMarksProperty = BindableProperty.Create("SnapToMarks", typeof(bool), typeof(Slider), false, propertyChanged: (bindable, oldValue, newValue) =>
288 var slider = (Slider)bindable;
289 if (newValue != null)
291 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.SNAP_TO_MARKS, new Tizen.NUI.PropertyValue((bool)newValue));
293 Console.WriteLine("Slider SnapToMarksPropertyProperty changed: oldValue: " + oldValue + ", newValue: " + newValue);
295 defaultValueCreator:(bindable) =>
297 var slider = (Slider)bindable;
299 Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.SNAP_TO_MARKS).Get(out temp);
303 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
305 internal Slider(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.Slider_SWIGUpcast(cPtr), cMemoryOwn)
307 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
310 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Slider obj)
312 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
318 /// <since_tizen> 3 </since_tizen>
319 protected override void Dispose(DisposeTypes type)
326 if (type == DisposeTypes.Explicit)
329 //Release your own managed resources here.
330 //You should release all of your own disposable objects here.
334 //Release your own unmanaged resources here.
335 //You should not access any managed member here except static instance.
336 //because the execution order of Finalizes is non-deterministic.
339 if (_sliderValueChangedCallbackDelegate != null)
341 ValueChangedSignal().Disconnect(_sliderValueChangedCallbackDelegate);
344 if (_sliderSlidingFinishedCallbackDelegate != null)
346 SlidingFinishedSignal().Disconnect(_sliderSlidingFinishedCallbackDelegate);
349 if (_sliderMarkReachedCallbackDelegate != null)
351 MarkReachedSignal().Disconnect(_sliderMarkReachedCallbackDelegate);
355 if (swigCPtr.Handle != global::System.IntPtr.Zero)
360 NDalicPINVOKE.delete_Slider(swigCPtr);
362 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
369 /// The ValueChanged event arguments.
371 /// <since_tizen> 3 </since_tizen>
372 public class ValueChangedEventArgs : EventArgs
374 private Slider _slider;
375 private float _slideValue;
380 /// <since_tizen> 3 </since_tizen>
394 /// The slider value.
396 /// <since_tizen> 3 </since_tizen>
397 public float SlideValue
411 /// The SlidingFinished event arguments.
413 /// <since_tizen> 3 </since_tizen>
414 public class SlidingFinishedEventArgs : EventArgs
416 private Slider _slider;
417 private float _slideValue;
422 /// <since_tizen> 3 </since_tizen>
436 /// The slider value.
438 /// <since_tizen> 3 </since_tizen>
439 public float SlideValue
453 /// The MarkReached event arguments.
455 /// <since_tizen> 3 </since_tizen>
456 public class MarkReachedEventArgs : EventArgs
458 private Slider _slider;
459 private int _slideValue;
464 /// <since_tizen> 3 </since_tizen>
478 /// The slider value.
480 /// <since_tizen> 3 </since_tizen>
481 public int SlideValue
495 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
496 private delegate bool ValueChangedCallbackDelegate(IntPtr slider, float slideValue);
497 private EventHandlerWithReturnType<object, ValueChangedEventArgs, bool> _sliderValueChangedEventHandler;
498 private ValueChangedCallbackDelegate _sliderValueChangedCallbackDelegate;
500 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
501 private delegate bool SlidingFinishedCallbackDelegate(IntPtr slider, float slideValue);
502 private EventHandlerWithReturnType<object, SlidingFinishedEventArgs, bool> _sliderSlidingFinishedEventHandler;
503 private SlidingFinishedCallbackDelegate _sliderSlidingFinishedCallbackDelegate;
505 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
506 private delegate bool MarkReachedCallbackDelegate(IntPtr slider, int slideValue);
507 private EventHandlerWithReturnType<object, MarkReachedEventArgs, bool> _sliderMarkReachedEventHandler;
508 private MarkReachedCallbackDelegate _sliderMarkReachedCallbackDelegate;
511 /// An event emitted when the slider value changes.
513 /// <since_tizen> 3 </since_tizen>
514 public event EventHandlerWithReturnType<object, ValueChangedEventArgs, bool> ValueChanged
518 if (_sliderValueChangedEventHandler == null)
520 _sliderValueChangedCallbackDelegate = (OnValueChanged);
521 ValueChangedSignal().Connect(_sliderValueChangedCallbackDelegate);
523 _sliderValueChangedEventHandler += value;
527 _sliderValueChangedEventHandler -= value;
528 if (_sliderValueChangedEventHandler == null && ValueChangedSignal().Empty() == false)
530 ValueChangedSignal().Disconnect(_sliderValueChangedCallbackDelegate);
535 // Callback for Slider ValueChanged signal
536 private bool OnValueChanged(IntPtr slider, float slideValue)
538 ValueChangedEventArgs e = new ValueChangedEventArgs();
540 // Populate all members of "e" (ValueChangedEventArgs) with real page
541 e.Slider = Slider.GetSliderFromPtr(slider);
542 e.SlideValue = slideValue;
544 if (_sliderValueChangedEventHandler != null)
546 //here we send all page to user event handlers
547 return _sliderValueChangedEventHandler(this, e);
553 /// An event emitted when the sliding is finished.
555 /// <since_tizen> 3 </since_tizen>
556 public event EventHandlerWithReturnType<object, SlidingFinishedEventArgs, bool> SlidingFinished
560 if (_sliderSlidingFinishedEventHandler == null)
562 _sliderSlidingFinishedCallbackDelegate = (OnSlidingFinished);
563 SlidingFinishedSignal().Connect(_sliderSlidingFinishedCallbackDelegate);
565 _sliderSlidingFinishedEventHandler += value;
569 _sliderSlidingFinishedEventHandler -= value;
570 if (_sliderSlidingFinishedEventHandler == null && SlidingFinishedSignal().Empty() == false)
572 SlidingFinishedSignal().Disconnect(_sliderSlidingFinishedCallbackDelegate);
577 // Callback for Slider SlidingFinished signal
578 private bool OnSlidingFinished(IntPtr slider, float slideValue)
580 SlidingFinishedEventArgs e = new SlidingFinishedEventArgs();
582 // Populate all members of "e" (SlidingFinishedEventArgs) with real page
583 e.Slider = Slider.GetSliderFromPtr(slider);
584 e.SlideValue = slideValue;
586 if (_sliderSlidingFinishedEventHandler != null)
588 //here we send all page to user event handlers
589 return _sliderSlidingFinishedEventHandler(this, e);
595 /// An event emitted when the slider handle reaches a mark.
597 /// <since_tizen> 3 </since_tizen>
598 public event EventHandlerWithReturnType<object, MarkReachedEventArgs, bool> MarkReached
602 if (_sliderMarkReachedEventHandler == null)
604 _sliderMarkReachedCallbackDelegate = (OnMarkReached);
605 MarkReachedSignal().Connect(_sliderMarkReachedCallbackDelegate);
607 _sliderMarkReachedEventHandler += value;
611 _sliderMarkReachedEventHandler -= value;
612 if (_sliderMarkReachedEventHandler == null && MarkReachedSignal().Empty() == false)
614 MarkReachedSignal().Disconnect(_sliderMarkReachedCallbackDelegate);
619 // Callback for Slider MarkReached signal
620 private bool OnMarkReached(IntPtr slider, int slideValue)
622 MarkReachedEventArgs e = new MarkReachedEventArgs();
624 // Populate all members of "e" (MarkReachedEventArgs) with real page
625 e.Slider = Slider.GetSliderFromPtr(slider);
626 e.SlideValue = slideValue;
628 if (_sliderMarkReachedEventHandler != null)
630 //here we send all page to user event handlers
631 return _sliderMarkReachedEventHandler(this, e);
637 /// Gets the slider from the pointer.
639 /// <param name="cPtr">The pointer of the slider.</param>
640 /// <returns>The object of the slider type.</returns>
641 internal static Slider GetSliderFromPtr(global::System.IntPtr cPtr)
643 Slider ret = new Slider(cPtr, false);
644 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
648 internal new class Property : global::System.IDisposable
650 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
651 protected bool swigCMemOwn;
653 internal Property(global::System.IntPtr cPtr, bool cMemoryOwn)
655 swigCMemOwn = cMemoryOwn;
656 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
659 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Property obj)
661 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
664 //A Flag to check who called Dispose(). (By User or DisposeQueue)
665 private bool isDisposeQueued = false;
666 //A Flat to check if it is already disposed.
667 protected bool disposed = false;
671 if (!isDisposeQueued)
673 isDisposeQueued = true;
674 DisposeQueue.Instance.Add(this);
678 /// <since_tizen> 3 </since_tizen>
679 public void Dispose()
681 //Throw excpetion if Dispose() is called in separate thread.
682 if (!Window.IsInstalled())
684 throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread.");
689 Dispose(DisposeTypes.Implicit);
693 Dispose(DisposeTypes.Explicit);
694 System.GC.SuppressFinalize(this);
698 protected virtual void Dispose(DisposeTypes type)
705 if (type == DisposeTypes.Explicit)
708 //Release your own managed resources here.
709 //You should release all of your own disposable objects here.
713 //Release your own unmanaged resources here.
714 //You should not access any managed member here except static instance.
715 //because the execution order of Finalizes is non-deterministic.
717 if (swigCPtr.Handle != global::System.IntPtr.Zero)
722 NDalicPINVOKE.delete_Slider_Property(swigCPtr);
724 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
730 internal Property() : this(NDalicPINVOKE.new_Slider_Property(), true)
732 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
735 internal static readonly int LOWER_BOUND = NDalicPINVOKE.Slider_Property_LOWER_BOUND_get();
736 internal static readonly int UPPER_BOUND = NDalicPINVOKE.Slider_Property_UPPER_BOUND_get();
737 internal static readonly int VALUE = NDalicPINVOKE.Slider_Property_VALUE_get();
738 internal static readonly int TRACK_VISUAL = NDalicPINVOKE.Slider_Property_TRACK_VISUAL_get();
739 internal static readonly int HANDLE_VISUAL = NDalicPINVOKE.Slider_Property_HANDLE_VISUAL_get();
740 internal static readonly int PROGRESS_VISUAL = NDalicPINVOKE.Slider_Property_PROGRESS_VISUAL_get();
741 internal static readonly int POPUP_VISUAL = NDalicPINVOKE.Slider_Property_POPUP_VISUAL_get();
742 internal static readonly int POPUP_ARROW_VISUAL = NDalicPINVOKE.Slider_Property_POPUP_ARROW_VISUAL_get();
743 internal static readonly int DISABLED_COLOR = NDalicPINVOKE.Slider_Property_DISABLED_COLOR_get();
744 internal static readonly int VALUE_PRECISION = NDalicPINVOKE.Slider_Property_VALUE_PRECISION_get();
745 internal static readonly int SHOW_POPUP = NDalicPINVOKE.Slider_Property_SHOW_POPUP_get();
746 internal static readonly int SHOW_VALUE = NDalicPINVOKE.Slider_Property_SHOW_VALUE_get();
747 internal static readonly int MARKS = NDalicPINVOKE.Slider_Property_MARKS_get();
748 internal static readonly int SNAP_TO_MARKS = NDalicPINVOKE.Slider_Property_SNAP_TO_MARKS_get();
749 internal static readonly int MARK_TOLERANCE = NDalicPINVOKE.Slider_Property_MARK_TOLERANCE_get();
754 /// Creates the slider control.
756 /// <since_tizen> 3 </since_tizen>
757 public Slider() : this(NDalicPINVOKE.Slider_New(), true)
759 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
761 this.ValueChanged += (obj, e) => {
762 this.Value = e.SlideValue;
767 internal Slider(Slider handle) : this(NDalicPINVOKE.new_Slider__SWIG_1(Slider.getCPtr(handle)), true)
769 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
772 internal Slider Assign(Slider handle)
774 Slider ret = new Slider(NDalicPINVOKE.Slider_Assign(swigCPtr, Slider.getCPtr(handle)), false);
775 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
780 /// Downcasts an object handle to the slider.<br />
781 /// If the handle points to a slider, then the downcast produces a valid handle.<br />
782 /// If not, then the returned handle is left uninitialized.<br />
784 /// <param name="handle">The handle to an object.</param>
785 /// <returns>The handle to a slider or an uninitialized handle.</returns>
786 /// <since_tizen> 3 </since_tizen>
787 public static Slider DownCast(BaseHandle handle)
789 Slider ret = Registry.GetManagedBaseHandleFromNativePtr(handle) as Slider;
790 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
794 internal SliderValueChangedSignal ValueChangedSignal()
796 SliderValueChangedSignal ret = new SliderValueChangedSignal(NDalicPINVOKE.Slider_ValueChangedSignal(swigCPtr), false);
797 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
801 internal SliderValueChangedSignal SlidingFinishedSignal()
803 SliderValueChangedSignal ret = new SliderValueChangedSignal(NDalicPINVOKE.Slider_SlidingFinishedSignal(swigCPtr), false);
804 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
808 internal SliderMarkReachedSignal MarkReachedSignal()
810 SliderMarkReachedSignal ret = new SliderMarkReachedSignal(NDalicPINVOKE.Slider_MarkReachedSignal(swigCPtr), false);
811 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
816 /// The lower bound property.
818 /// <since_tizen> 3 </since_tizen>
819 public float LowerBound
823 return (float)GetValue(LowerBoundProperty);
827 SetValue(LowerBoundProperty, value);
832 /// The upper bound property.
834 /// <since_tizen> 3 </since_tizen>
835 public float UpperBound
839 return (float)GetValue(UpperBoundProperty);
843 SetValue(UpperBoundProperty, value);
848 /// The value property.
850 /// <since_tizen> 3 </since_tizen>
855 return (float)GetValue(ValueProperty);
859 SetValueAndForceSendChangeSignal(ValueProperty, value);
864 /// The track visual property.
866 /// <since_tizen> 3 </since_tizen>
867 public PropertyMap TrackVisual
871 return (PropertyMap)GetValue(TrackVisualProperty);
875 SetValue(TrackVisualProperty, value);
880 /// The handle visual property.
882 /// <since_tizen> 3 </since_tizen>
883 public PropertyMap HandleVisual
887 return (PropertyMap)GetValue(HandleVisualProperty);
891 SetValue(HandleVisualProperty, value);
896 /// The progress visual property.
898 /// <since_tizen> 3 </since_tizen>
899 public PropertyMap ProgressVisual
903 return (PropertyMap)GetValue(ProgressVisualProperty);
907 SetValue(ProgressVisualProperty, value);
912 /// The popup visual property.
914 /// <since_tizen> 3 </since_tizen>
915 public PropertyMap PopupVisual
919 return (PropertyMap)GetValue(PopupVisualProperty);
923 SetValue(PopupVisualProperty, value);
928 /// The popup arrow visual property.
930 /// <since_tizen> 3 </since_tizen>
931 public PropertyMap PopupArrowVisual
935 return (PropertyMap)GetValue(PopupArrowVisualProperty);
939 SetValue(PopupArrowVisualProperty, value);
944 /// The disable color property.
946 /// <since_tizen> 3 </since_tizen>
947 public Vector4 DisabledColor
951 return (Vector4)GetValue(DisabledColorProperty);
955 SetValue(DisabledColorProperty, value);
960 /// The value precision property.
962 /// <since_tizen> 3 </since_tizen>
963 public int ValuePrecision
967 return (int)GetValue(ValuePrecisionProperty);
971 SetValue(ValuePrecisionProperty, value);
976 /// The show popup property.
978 /// <since_tizen> 3 </since_tizen>
979 public bool ShowPopup
983 return (bool)GetValue(ShowPopupProperty);
987 SetValue(ShowPopupProperty, value);
992 /// The show value property.
994 /// <since_tizen> 3 </since_tizen>
995 public bool ShowValue
999 return (bool)GetValue(ShowValueProperty);
1003 SetValue(ShowValueProperty, value);
1008 /// The marks property.
1010 /// <since_tizen> 3 </since_tizen>
1011 public Tizen.NUI.PropertyArray Marks
1015 return (PropertyArray)GetValue(MarksProperty);
1019 SetValue(MarksProperty, value);
1024 /// The snap to marks property.
1026 /// <since_tizen> 3 </since_tizen>
1027 public bool SnapToMarks
1031 return (bool)GetValue(SnapToMarksProperty);
1035 SetValue(SnapToMarksProperty, value);
1040 /// The mark tolerance property.
1042 /// <since_tizen> 3 </since_tizen>
1043 public float MarkTolerance
1047 return (float)GetValue(MarkToleranceProperty);
1051 SetValue(MarkToleranceProperty, value);