[NUI] Refactor dispose pattern to reduce duplication (#1112)
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / UIComponents / Slider.cs
1 /*
2  * Copyright(c) 2018 Samsung Electronics Co., Ltd.
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  *
16  */
17 using System;
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;
23
24 namespace Tizen.NUI.UIComponents
25 {
26     /// <summary>
27     /// The slider is a control to enable sliding an indicator between two values.
28     /// </summary>
29     /// <since_tizen> 3 </since_tizen>
30     /// This will be deprecated
31     [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
32     [EditorBrowsable(EditorBrowsableState.Never)]
33     public class Slider : View
34     {
35         /// This will be deprecated
36         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
37         [EditorBrowsable(EditorBrowsableState.Never)]
38         public static readonly BindableProperty LowerBoundProperty = BindableProperty.Create("LowerBound", typeof(float), typeof(Slider), 0.0f, propertyChanged: (bindable, oldValue, newValue) =>
39         {
40             var slider = (Slider)bindable;
41             if (newValue != null)
42             {
43                 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.LOWER_BOUND, new Tizen.NUI.PropertyValue((float)newValue));
44             }
45         },
46         defaultValueCreator:(bindable) =>
47         {
48             var slider = (Slider)bindable;
49             float temp = 0.0f;
50             Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.LOWER_BOUND).Get(out temp);
51             return temp;
52         });
53         /// This will be deprecated
54         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
55         [EditorBrowsable(EditorBrowsableState.Never)]
56         public static readonly BindableProperty UpperBoundProperty = BindableProperty.Create("UpperBound", typeof(float), typeof(Slider), 1.0f, propertyChanged: (bindable, oldValue, newValue) => 
57         {
58             var slider = (Slider)bindable;
59             if (newValue != null)
60             {
61                 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.UPPER_BOUND, new Tizen.NUI.PropertyValue((float)newValue));
62             }
63         },
64         defaultValueCreator:(bindable) =>
65         {
66             var slider = (Slider)bindable;
67             float temp = 0.0f;
68             Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.UPPER_BOUND).Get(out temp);
69             return temp;
70         });
71         /// This will be deprecated
72         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
73         [EditorBrowsable(EditorBrowsableState.Never)]
74         public static readonly BindableProperty ValueProperty = BindableProperty.Create("Value", typeof(float), typeof(Slider), default(float), BindingMode.TwoWay, propertyChanged: (bindable, oldValue, newValue) =>
75         {
76             var slider = (Slider)bindable;
77             if (newValue != null)
78             {
79                 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.VALUE, new Tizen.NUI.PropertyValue((float)newValue));
80             }
81         },
82         defaultValueCreator:(bindable) =>
83         {
84             var slider = (Slider)bindable;
85             float temp = 0.0f;
86             Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.VALUE).Get(out temp);
87             return temp;
88         });
89         /// This will be deprecated
90         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
91         [EditorBrowsable(EditorBrowsableState.Never)]
92         public static readonly BindableProperty TrackVisualProperty = BindableProperty.Create("TrackVisual", typeof(PropertyMap), typeof(Slider), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) =>
93         {
94             var slider = (Slider)bindable;
95             if (newValue != null)
96             {
97                 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.TRACK_VISUAL, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
98             }
99         },
100         defaultValueCreator:(bindable) =>
101         {
102             var slider = (Slider)bindable;
103             PropertyMap temp = new PropertyMap();
104             Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.TRACK_VISUAL).Get(temp);
105             return temp;
106         });
107         /// This will be deprecated
108         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
109         [EditorBrowsable(EditorBrowsableState.Never)]
110         public static readonly BindableProperty HandleVisualProperty = BindableProperty.Create("HandleVisual", typeof(PropertyMap), typeof(Slider), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) =>
111         {
112             var slider = (Slider)bindable;
113             if (newValue != null)
114             {
115                 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.HANDLE_VISUAL, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
116             }
117         },
118         defaultValueCreator:(bindable) =>
119         {
120             var slider = (Slider)bindable;
121             PropertyMap temp = new PropertyMap();
122             Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.HANDLE_VISUAL).Get(temp);
123             return temp;
124         });
125         /// This will be deprecated
126         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
127         [EditorBrowsable(EditorBrowsableState.Never)]
128         public static readonly BindableProperty ProgressVisualProperty = BindableProperty.Create("ProgressVisual", typeof(PropertyMap), typeof(Slider), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) =>
129         {
130             var slider = (Slider)bindable;
131             if (newValue != null)
132             {
133                 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.PROGRESS_VISUAL, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
134             }
135         },
136         defaultValueCreator:(bindable) =>
137         {
138             var slider = (Slider)bindable;
139             PropertyMap temp = new PropertyMap();
140             Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.PROGRESS_VISUAL).Get(temp);
141             return temp;
142         });
143         /// This will be deprecated
144         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
145         [EditorBrowsable(EditorBrowsableState.Never)]
146         public static readonly BindableProperty PopupVisualProperty = BindableProperty.Create("PopupVisual", typeof(PropertyMap), typeof(Slider), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) =>
147         {
148             var slider = (Slider)bindable;
149             if (newValue != null)
150             {
151                 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.POPUP_VISUAL, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
152             }
153         },
154         defaultValueCreator:(bindable) =>
155         {
156             var slider = (Slider)bindable;
157             PropertyMap temp = new PropertyMap();
158             Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.POPUP_VISUAL).Get(temp);
159             return temp;
160         });
161         /// This will be deprecated
162         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
163         [EditorBrowsable(EditorBrowsableState.Never)]
164         public static readonly BindableProperty PopupArrowVisualProperty = BindableProperty.Create("PopupArrowVisual", typeof(PropertyMap), typeof(Slider), new PropertyMap(), propertyChanged: (bindable, oldValue, newValue) =>
165         {
166             var slider = (Slider)bindable;
167             if (newValue != null)
168             {
169                 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.POPUP_ARROW_VISUAL, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
170             }
171         },
172         defaultValueCreator:(bindable) =>
173         {
174             var slider = (Slider)bindable;
175             PropertyMap temp = new PropertyMap();
176             Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.POPUP_ARROW_VISUAL).Get(temp);
177             return temp;
178         });
179         /// This will be deprecated
180         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
181         [EditorBrowsable(EditorBrowsableState.Never)]
182         public static readonly BindableProperty DisabledColorProperty = BindableProperty.Create("DisabledColor", typeof(Vector4), typeof(Slider), Vector4.Zero, propertyChanged: (bindable, oldValue, newValue) => 
183         {
184             var slider = (Slider)bindable;
185             if (newValue != null)
186             {
187                 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.DISABLED_COLOR, new Tizen.NUI.PropertyValue((Vector4)newValue));
188             }
189         },
190         defaultValueCreator:(bindable) =>
191         {
192             var slider = (Slider)bindable;
193             Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
194             Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.DISABLED_COLOR).Get(temp);
195             return temp;
196         });
197         /// This will be deprecated
198         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
199         [EditorBrowsable(EditorBrowsableState.Never)]
200         public static readonly BindableProperty ValuePrecisionProperty = BindableProperty.Create("ValuePrecision", typeof(int), typeof(Slider), default(int), propertyChanged: (bindable, oldValue, newValue) =>
201         {
202             var slider = (Slider)bindable;
203             if (newValue != null)
204             {
205                 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.VALUE_PRECISION, new Tizen.NUI.PropertyValue((int)newValue));
206             }
207         },
208         defaultValueCreator:(bindable) =>
209         {
210             var slider = (Slider)bindable;
211             int temp = 0;
212             Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.VALUE_PRECISION).Get(out temp);
213             return temp;
214         });
215         /// This will be deprecated
216         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
217         [EditorBrowsable(EditorBrowsableState.Never)]
218         public static readonly BindableProperty ShowPopupProperty = BindableProperty.Create("ShowPopup", typeof(bool), typeof(Slider), false, propertyChanged: (bindable, oldValue, newValue) =>
219         {
220             var slider = (Slider)bindable;
221             if (newValue != null)
222             {
223                 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.SHOW_POPUP, new Tizen.NUI.PropertyValue((bool)newValue));
224             }
225         },
226         defaultValueCreator:(bindable) =>
227         {
228             var slider = (Slider)bindable;
229             bool temp = false;
230             Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.SHOW_POPUP).Get(out temp);
231             return temp;
232         });
233         /// This will be deprecated
234         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
235         [EditorBrowsable(EditorBrowsableState.Never)]
236         public static readonly BindableProperty ShowValueProperty = BindableProperty.Create("ShowValue", typeof(bool), typeof(Slider), false, propertyChanged: (bindable, oldValue, newValue) =>
237         {
238             var slider = (Slider)bindable;
239             if (newValue != null)
240             {
241                 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.SHOW_VALUE, new Tizen.NUI.PropertyValue((bool)newValue));
242             }
243         },
244         defaultValueCreator:(bindable) =>
245         {
246             var slider = (Slider)bindable;
247             bool temp = false;
248             Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.SHOW_VALUE).Get(out temp);
249             return temp;
250         });
251         /// This will be deprecated
252         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
253         [EditorBrowsable(EditorBrowsableState.Never)]
254         public static readonly BindableProperty MarksProperty = BindableProperty.Create("Marks", typeof(PropertyArray), typeof(Slider), new PropertyArray(), propertyChanged: (bindable, oldValue, newValue) =>
255         {
256             var slider = (Slider)bindable;
257             if (newValue != null)
258             {
259                 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.MARKS, new Tizen.NUI.PropertyValue((PropertyArray)newValue));
260             }
261         },
262         defaultValueCreator:(bindable) =>
263         {
264             var slider = (Slider)bindable;
265             Tizen.NUI.PropertyArray temp = new Tizen.NUI.PropertyArray();
266             Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.MARKS).Get(temp);
267             return temp;
268         });
269         /// This will be deprecated
270         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
271         [EditorBrowsable(EditorBrowsableState.Never)]
272         public static readonly BindableProperty MarkToleranceProperty = BindableProperty.Create("MarkTolerance", typeof(float), typeof(Slider), default(float), propertyChanged: (bindable, oldValue, newValue) =>
273         {
274             var slider = (Slider)bindable;
275             if (newValue != null)
276             {
277                 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.MARK_TOLERANCE, new Tizen.NUI.PropertyValue((float)newValue));
278             }
279         },
280         defaultValueCreator:(bindable) =>
281         {
282             var slider = (Slider)bindable;
283             float temp = 0.0f;
284             Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.MARK_TOLERANCE).Get(out temp);
285             return temp;
286         });
287         /// This will be deprecated
288         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
289         [EditorBrowsable(EditorBrowsableState.Never)]
290         public static readonly BindableProperty SnapToMarksProperty = BindableProperty.Create("SnapToMarks", typeof(bool), typeof(Slider), false, propertyChanged: (bindable, oldValue, newValue) => 
291         {
292             var slider = (Slider)bindable;
293             if (newValue != null)
294             {
295                 Tizen.NUI.Object.SetProperty(slider.swigCPtr, Slider.Property.SNAP_TO_MARKS, new Tizen.NUI.PropertyValue((bool)newValue));
296             }
297         },
298         defaultValueCreator:(bindable) =>
299         {
300             var slider = (Slider)bindable;
301             bool temp = false;
302             Tizen.NUI.Object.GetProperty(slider.swigCPtr, Slider.Property.SNAP_TO_MARKS).Get(out temp);
303             return temp;
304         });
305
306         private EventHandlerWithReturnType<object, ValueChangedEventArgs, bool> _sliderValueChangedEventHandler;
307         private ValueChangedCallbackDelegate _sliderValueChangedCallbackDelegate;
308         private EventHandlerWithReturnType<object, SlidingFinishedEventArgs, bool> _sliderSlidingFinishedEventHandler;
309         private SlidingFinishedCallbackDelegate _sliderSlidingFinishedCallbackDelegate;
310         private EventHandlerWithReturnType<object, MarkReachedEventArgs, bool> _sliderMarkReachedEventHandler;
311         private MarkReachedCallbackDelegate _sliderMarkReachedCallbackDelegate;
312
313         /// <summary>
314         /// Creates the slider control.
315         /// </summary>
316         /// <since_tizen> 3 </since_tizen>
317         /// This will be deprecated
318         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
319         [EditorBrowsable(EditorBrowsableState.Never)]
320         public Slider() : this(Interop.Slider.Slider_New(), true)
321         {
322             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
323         }
324
325         internal Slider(global::System.IntPtr cPtr, bool cMemoryOwn) : base(Interop.Slider.Slider_SWIGUpcast(cPtr), cMemoryOwn)
326         {
327         }
328
329         internal Slider(Slider handle) : this(Interop.Slider.new_Slider__SWIG_1(Slider.getCPtr(handle)), true)
330         {
331             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
332         }
333
334         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
335         private delegate bool ValueChangedCallbackDelegate(IntPtr slider, float slideValue);
336         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
337         private delegate bool SlidingFinishedCallbackDelegate(IntPtr slider, float slideValue);
338         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
339         private delegate bool MarkReachedCallbackDelegate(IntPtr slider, int slideValue);
340
341         /// <summary>
342         /// An event emitted when the slider value changes.
343         /// </summary>
344         /// <since_tizen> 3 </since_tizen>
345         /// This will be deprecated
346         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
347         [EditorBrowsable(EditorBrowsableState.Never)]
348         public event EventHandlerWithReturnType<object, ValueChangedEventArgs, bool> ValueChanged
349         {
350             add
351             {
352                 if (_sliderValueChangedEventHandler == null)
353                 {
354                     _sliderValueChangedCallbackDelegate = (OnValueChanged);
355                     ValueChangedSignal().Connect(_sliderValueChangedCallbackDelegate);
356                 }
357                 _sliderValueChangedEventHandler += value;
358             }
359             remove
360             {
361                 _sliderValueChangedEventHandler -= value;
362                 if (_sliderValueChangedEventHandler == null && ValueChangedSignal().Empty() == false)
363                 {
364                     ValueChangedSignal().Disconnect(_sliderValueChangedCallbackDelegate);
365                 }
366             }
367         }
368
369         /// <summary>
370         /// An event emitted when the sliding is finished.
371         /// </summary>
372         /// <since_tizen> 3 </since_tizen>
373         /// This will be deprecated
374         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
375         [EditorBrowsable(EditorBrowsableState.Never)]
376         public event EventHandlerWithReturnType<object, SlidingFinishedEventArgs, bool> SlidingFinished
377         {
378             add
379             {
380                 if (_sliderSlidingFinishedEventHandler == null)
381                 {
382                     _sliderSlidingFinishedCallbackDelegate = (OnSlidingFinished);
383                     SlidingFinishedSignal().Connect(_sliderSlidingFinishedCallbackDelegate);
384                 }
385                 _sliderSlidingFinishedEventHandler += value;
386             }
387             remove
388             {
389                 _sliderSlidingFinishedEventHandler -= value;
390                 if (_sliderSlidingFinishedEventHandler == null && SlidingFinishedSignal().Empty() == false)
391                 {
392                     SlidingFinishedSignal().Disconnect(_sliderSlidingFinishedCallbackDelegate);
393                 }
394             }
395         }
396
397         /// <summary>
398         /// An event emitted when the slider handle reaches a mark.
399         /// </summary>
400         /// <since_tizen> 3 </since_tizen>
401         /// This will be deprecated
402         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
403         [EditorBrowsable(EditorBrowsableState.Never)]
404         public event EventHandlerWithReturnType<object, MarkReachedEventArgs, bool> MarkReached
405         {
406             add
407             {
408                 if (_sliderMarkReachedEventHandler == null)
409                 {
410                     _sliderMarkReachedCallbackDelegate = (OnMarkReached);
411                     MarkReachedSignal().Connect(_sliderMarkReachedCallbackDelegate);
412                 }
413                 _sliderMarkReachedEventHandler += value;
414             }
415             remove
416             {
417                 _sliderMarkReachedEventHandler -= value;
418                 if (_sliderMarkReachedEventHandler == null && MarkReachedSignal().Empty() == false)
419                 {
420                     MarkReachedSignal().Disconnect(_sliderMarkReachedCallbackDelegate);
421                 }
422             }
423         }
424
425         /// <summary>
426         /// The lower bound property.
427         /// </summary>
428         /// <since_tizen> 3 </since_tizen>
429         /// This will be deprecated
430         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
431         [EditorBrowsable(EditorBrowsableState.Never)]
432         public float LowerBound
433         {
434             get
435             {
436                 return (float)GetValue(LowerBoundProperty);
437             }
438             set
439             {
440                 SetValue(LowerBoundProperty, value);
441             }
442         }
443
444         /// <summary>
445         /// The upper bound property.
446         /// </summary>
447         /// <since_tizen> 3 </since_tizen>
448         /// This will be deprecated
449         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
450         [EditorBrowsable(EditorBrowsableState.Never)]
451         public float UpperBound
452         {
453             get
454             {
455                 return (float)GetValue(UpperBoundProperty);
456             }
457             set
458             {
459                 SetValue(UpperBoundProperty, value);
460             }
461         }
462
463         /// <summary>
464         /// The value property.
465         /// </summary>
466         /// <since_tizen> 3 </since_tizen>
467         /// This will be deprecated
468         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
469         [EditorBrowsable(EditorBrowsableState.Never)]
470         public float Value
471         {
472             get
473             {
474                 return (float)GetValue(ValueProperty);
475             }
476             set
477             {
478                 SetValueAndForceSendChangeSignal(ValueProperty, value);
479             }
480         }
481
482         /// <summary>
483         /// The track visual property.
484         /// </summary>
485         /// <since_tizen> 3 </since_tizen>
486         /// This will be deprecated
487         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
488         [EditorBrowsable(EditorBrowsableState.Never)]
489         public PropertyMap TrackVisual
490         {
491             get
492             {
493                 return (PropertyMap)GetValue(TrackVisualProperty);
494             }
495             set
496             {
497                 SetValue(TrackVisualProperty, value);
498             }
499         }
500
501         /// <summary>
502         /// The handle visual property.
503         /// </summary>
504         /// <since_tizen> 3 </since_tizen>
505         /// This will be deprecated
506         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
507         [EditorBrowsable(EditorBrowsableState.Never)]
508         public PropertyMap HandleVisual
509         {
510             get
511             {
512                 return (PropertyMap)GetValue(HandleVisualProperty);
513             }
514             set
515             {
516                 SetValue(HandleVisualProperty, value);
517             }
518         }
519
520         /// <summary>
521         /// The progress visual property.
522         /// </summary>
523         /// <since_tizen> 3 </since_tizen>
524         /// This will be deprecated
525         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
526         [EditorBrowsable(EditorBrowsableState.Never)]
527         public PropertyMap ProgressVisual
528         {
529             get
530             {
531                 return (PropertyMap)GetValue(ProgressVisualProperty);
532             }
533             set
534             {
535                 SetValue(ProgressVisualProperty, value);
536             }
537         }
538
539         /// <summary>
540         /// The popup visual property.
541         /// </summary>
542         /// <since_tizen> 3 </since_tizen>
543         /// This will be deprecated
544         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
545         [EditorBrowsable(EditorBrowsableState.Never)]
546         public PropertyMap PopupVisual
547         {
548             get
549             {
550                 return (PropertyMap)GetValue(PopupVisualProperty);
551             }
552             set
553             {
554                 SetValue(PopupVisualProperty, value);
555             }
556         }
557
558         /// <summary>
559         /// The popup arrow visual property.
560         /// </summary>
561         /// <since_tizen> 3 </since_tizen>
562         /// This will be deprecated
563         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
564         [EditorBrowsable(EditorBrowsableState.Never)]
565         public PropertyMap PopupArrowVisual
566         {
567             get
568             {
569                 return (PropertyMap)GetValue(PopupArrowVisualProperty);
570             }
571             set
572             {
573                 SetValue(PopupArrowVisualProperty, value);
574             }
575         }
576
577         /// <summary>
578         /// The disable color property.
579         /// </summary>
580         /// <since_tizen> 3 </since_tizen>
581         /// This will be deprecated
582         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
583         [EditorBrowsable(EditorBrowsableState.Never)]
584         public Vector4 DisabledColor
585         {
586             get
587             {
588                 return (Vector4)GetValue(DisabledColorProperty);
589             }
590             set
591             {
592                 SetValue(DisabledColorProperty, value);
593             }
594         }
595
596         /// <summary>
597         /// The value precision property.
598         /// </summary>
599         /// <since_tizen> 3 </since_tizen>
600         /// This will be deprecated
601         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
602         [EditorBrowsable(EditorBrowsableState.Never)]
603         public int ValuePrecision
604         {
605             get
606             {
607                 return (int)GetValue(ValuePrecisionProperty);
608             }
609             set
610             {
611                 SetValue(ValuePrecisionProperty, value);
612             }
613         }
614
615         /// <summary>
616         /// The show popup property.
617         /// </summary>
618         /// <since_tizen> 3 </since_tizen>
619         /// This will be deprecated
620         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
621         [EditorBrowsable(EditorBrowsableState.Never)]
622         public bool ShowPopup
623         {
624             get
625             {
626                 return (bool)GetValue(ShowPopupProperty);
627             }
628             set
629             {
630                 SetValue(ShowPopupProperty, value);
631             }
632         }
633
634         /// <summary>
635         /// The show value property.
636         /// </summary>
637         /// <since_tizen> 3 </since_tizen>
638         /// This will be deprecated
639         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
640         [EditorBrowsable(EditorBrowsableState.Never)]
641         public bool ShowValue
642         {
643             get
644             {
645                 return (bool)GetValue(ShowValueProperty);
646             }
647             set
648             {
649                 SetValue(ShowValueProperty, value);
650             }
651         }
652
653         /// <summary>
654         /// The marks property.
655         /// </summary>
656         /// <since_tizen> 3 </since_tizen>
657         /// This will be deprecated
658         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
659         [EditorBrowsable(EditorBrowsableState.Never)]
660         public Tizen.NUI.PropertyArray Marks
661         {
662             get
663             {
664                 return (PropertyArray)GetValue(MarksProperty);
665             }
666             set
667             {
668                 SetValue(MarksProperty, value);
669             }
670         }
671
672         /// <summary>
673         /// The snap to marks property.
674         /// </summary>
675         /// <since_tizen> 3 </since_tizen>
676         /// This will be deprecated
677         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
678         [EditorBrowsable(EditorBrowsableState.Never)]
679         public bool SnapToMarks
680         {
681             get
682             {
683                 return (bool)GetValue(SnapToMarksProperty);
684             }
685             set
686             {
687                 SetValue(SnapToMarksProperty, value);
688             }
689         }
690
691         /// <summary>
692         /// The mark tolerance property.
693         /// </summary>
694         /// <since_tizen> 3 </since_tizen>
695         /// This will be deprecated
696         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
697         [EditorBrowsable(EditorBrowsableState.Never)]
698         public float MarkTolerance
699         {
700             get
701             {
702                 return (float)GetValue(MarkToleranceProperty);
703             }
704             set
705             {
706                 SetValue(MarkToleranceProperty, value);
707             }
708         }
709
710         /// Only used by the IL of xaml, will never changed to not hidden.
711         [EditorBrowsable(EditorBrowsableState.Never)]
712         public override bool IsCreateByXaml
713         {
714             get
715             {
716                 return base.IsCreateByXaml;
717             }
718             set
719             {
720                 base.IsCreateByXaml = value;
721
722                 if (value == true)
723                 {
724                     this.ValueChanged += (obj, e) => {
725                         this.Value = e.SlideValue;
726                         return true;
727                     };
728                 }
729             }
730         }
731
732         /// <summary>
733         /// Downcasts an object handle to the slider.<br />
734         /// If the handle points to a slider, then the downcast produces a valid handle.<br />
735         /// If not, then the returned handle is left uninitialized.<br />
736         /// </summary>
737         /// <param name="handle">The handle to an object.</param>
738         /// <returns>The handle to a slider or an uninitialized handle.</returns>
739         /// <since_tizen> 3 </since_tizen>
740         /// This will be deprecated
741         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
742         [EditorBrowsable(EditorBrowsableState.Never)]
743         public static Slider DownCast(BaseHandle handle)
744         {
745             Slider ret = Registry.GetManagedBaseHandleFromNativePtr(handle) as Slider;
746             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
747             return ret;
748         }
749
750         internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Slider obj)
751         {
752             return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
753         }
754
755         /// <summary>
756         /// Gets the slider from the pointer.
757         /// </summary>
758         /// <param name="cPtr">The pointer of the slider.</param>
759         /// <returns>The object of the slider type.</returns>
760         internal static Slider GetSliderFromPtr(global::System.IntPtr cPtr)
761         {
762             Slider ret = Registry.GetManagedBaseHandleFromNativePtr(cPtr) as Slider;
763             if (null == ret)
764             {
765                 ret = Registry.GetManagedBaseHandleFromRefObject(cPtr) as Slider;
766             }
767
768             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
769             return ret;
770         }
771
772         internal Slider Assign(Slider handle)
773         {
774             Slider ret = new Slider(Interop.Slider.Slider_Assign(swigCPtr, Slider.getCPtr(handle)), false);
775             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
776             return ret;
777         }
778
779         internal SliderValueChangedSignal ValueChangedSignal()
780         {
781             SliderValueChangedSignal ret = new SliderValueChangedSignal(Interop.Slider.Slider_ValueChangedSignal(swigCPtr), false);
782             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
783             return ret;
784         }
785
786         internal SliderValueChangedSignal SlidingFinishedSignal()
787         {
788             SliderValueChangedSignal ret = new SliderValueChangedSignal(Interop.Slider.Slider_SlidingFinishedSignal(swigCPtr), false);
789             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
790             return ret;
791         }
792
793         internal SliderMarkReachedSignal MarkReachedSignal()
794         {
795             SliderMarkReachedSignal ret = new SliderMarkReachedSignal(Interop.Slider.Slider_MarkReachedSignal(swigCPtr), false);
796             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
797             return ret;
798         }
799
800         /// <summary>
801         /// Dispose.
802         /// </summary>
803         /// <since_tizen> 3 </since_tizen>
804         /// This will be deprecated
805         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
806         [EditorBrowsable(EditorBrowsableState.Never)]
807         protected override void Dispose(DisposeTypes type)
808         {
809             if (disposed)
810             {
811                 return;
812             }
813
814             //Release your own unmanaged resources here.
815             //You should not access any managed member here except static instance.
816             //because the execution order of Finalizes is non-deterministic.
817             if (this != null)
818             {
819                 if (_sliderValueChangedCallbackDelegate != null)
820                 {
821                     ValueChangedSignal().Disconnect(_sliderValueChangedCallbackDelegate);
822                 }
823
824                 if (_sliderSlidingFinishedCallbackDelegate != null)
825                 {
826                     SlidingFinishedSignal().Disconnect(_sliderSlidingFinishedCallbackDelegate);
827                 }
828
829                 if (_sliderMarkReachedCallbackDelegate != null)
830                 {
831                     MarkReachedSignal().Disconnect(_sliderMarkReachedCallbackDelegate);
832                 }
833             }
834
835             base.Dispose(type);
836         }
837
838         /// This will not be public opened.
839         [EditorBrowsable(EditorBrowsableState.Never)]
840         protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
841         {
842             Interop.Slider.delete_Slider(swigCPtr);
843         }
844
845         // Callback for Slider ValueChanged signal
846         private bool OnValueChanged(IntPtr slider, float slideValue)
847         {
848             ValueChangedEventArgs e = new ValueChangedEventArgs();
849
850             // Populate all members of "e" (ValueChangedEventArgs) with real page
851             e.Slider = Slider.GetSliderFromPtr(slider);
852             e.SlideValue = slideValue;
853
854             if (_sliderValueChangedEventHandler != null)
855             {
856                 //here we send all page to user event handlers
857                 return _sliderValueChangedEventHandler(this, e);
858             }
859             return false;
860         }
861
862         // Callback for Slider SlidingFinished signal
863         private bool OnSlidingFinished(IntPtr slider, float slideValue)
864         {
865             SlidingFinishedEventArgs e = new SlidingFinishedEventArgs();
866
867             // Populate all members of "e" (SlidingFinishedEventArgs) with real page
868             e.Slider = Slider.GetSliderFromPtr(slider);
869             e.SlideValue = slideValue;
870
871             if (_sliderSlidingFinishedEventHandler != null)
872             {
873                 //here we send all page to user event handlers
874                 return _sliderSlidingFinishedEventHandler(this, e);
875             }
876             return false;
877         }
878
879         // Callback for Slider MarkReached signal
880         private bool OnMarkReached(IntPtr slider, int slideValue)
881         {
882             MarkReachedEventArgs e = new MarkReachedEventArgs();
883
884             // Populate all members of "e" (MarkReachedEventArgs) with real page
885             e.Slider = Slider.GetSliderFromPtr(slider);
886             e.SlideValue = slideValue;
887
888             if (_sliderMarkReachedEventHandler != null)
889             {
890                 //here we send all page to user event handlers
891                 return _sliderMarkReachedEventHandler(this, e);
892             }
893             return false;
894         }
895
896         /// <summary>
897         /// The ValueChanged event arguments.
898         /// </summary>
899         /// <since_tizen> 3 </since_tizen>
900         /// This will be deprecated
901         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
902         [EditorBrowsable(EditorBrowsableState.Never)]
903         public class ValueChangedEventArgs : EventArgs
904         {
905             private Slider _slider;
906             private float _slideValue;
907
908             /// <summary>
909             /// The slider.
910             /// </summary>
911             /// <since_tizen> 3 </since_tizen>
912             /// This will be deprecated
913             [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
914             [EditorBrowsable(EditorBrowsableState.Never)]
915             public Slider Slider
916             {
917                 get
918                 {
919                     return _slider;
920                 }
921                 set
922                 {
923                     _slider = value;
924                 }
925             }
926
927             /// <summary>
928             /// The slider value.
929             /// </summary>
930             /// <since_tizen> 3 </since_tizen>
931             /// This will be deprecated
932             [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
933             [EditorBrowsable(EditorBrowsableState.Never)]
934             public float SlideValue
935             {
936                 get
937                 {
938                     return _slideValue;
939                 }
940                 set
941                 {
942                     _slideValue = value;
943                 }
944             }
945         }
946
947         /// <summary>
948         /// The SlidingFinished event arguments.
949         /// </summary>
950         /// <since_tizen> 3 </since_tizen>
951         /// This will be deprecated
952         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
953         [EditorBrowsable(EditorBrowsableState.Never)]
954         public class SlidingFinishedEventArgs : EventArgs
955         {
956             private Slider _slider;
957             private float _slideValue;
958
959             /// <summary>
960             /// The slider.
961             /// </summary>
962             /// <since_tizen> 3 </since_tizen>
963             /// This will be deprecated
964             [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
965             [EditorBrowsable(EditorBrowsableState.Never)]
966             public Slider Slider
967             {
968                 get
969                 {
970                     return _slider;
971                 }
972                 set
973                 {
974                     _slider = value;
975                 }
976             }
977
978             /// <summary>
979             /// The slider value.
980             /// </summary>
981             /// <since_tizen> 3 </since_tizen>
982             /// This will be deprecated
983             [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
984             [EditorBrowsable(EditorBrowsableState.Never)]
985             public float SlideValue
986             {
987                 get
988                 {
989                     return _slideValue;
990                 }
991                 set
992                 {
993                     _slideValue = value;
994                 }
995             }
996         }
997
998         /// <summary>
999         /// The MarkReached event arguments.
1000         /// </summary>
1001         /// <since_tizen> 3 </since_tizen>
1002         /// This will be deprecated
1003         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
1004         [EditorBrowsable(EditorBrowsableState.Never)]
1005         public class MarkReachedEventArgs : EventArgs
1006         {
1007             private Slider _slider;
1008             private int _slideValue;
1009
1010             /// <summary>
1011             /// The slider.
1012             /// </summary>
1013             /// <since_tizen> 3 </since_tizen>
1014             /// This will be deprecated
1015             [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
1016             [EditorBrowsable(EditorBrowsableState.Never)]
1017             public Slider Slider
1018             {
1019                 get
1020                 {
1021                     return _slider;
1022                 }
1023                 set
1024                 {
1025                     _slider = value;
1026                 }
1027             }
1028
1029             /// <summary>
1030             /// The slider value.
1031             /// </summary>
1032             /// <since_tizen> 3 </since_tizen>
1033             /// This will be deprecated
1034             [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
1035             [EditorBrowsable(EditorBrowsableState.Never)]
1036             public int SlideValue
1037             {
1038                 get
1039                 {
1040                     return _slideValue;
1041                 }
1042                 set
1043                 {
1044                     _slideValue = value;
1045                 }
1046             }
1047         }
1048
1049         internal new class Property
1050         {
1051             internal static readonly int LOWER_BOUND = Interop.Slider.Slider_Property_LOWER_BOUND_get();
1052             internal static readonly int UPPER_BOUND = Interop.Slider.Slider_Property_UPPER_BOUND_get();
1053             internal static readonly int VALUE = Interop.Slider.Slider_Property_VALUE_get();
1054             internal static readonly int TRACK_VISUAL = Interop.Slider.Slider_Property_TRACK_VISUAL_get();
1055             internal static readonly int HANDLE_VISUAL = Interop.Slider.Slider_Property_HANDLE_VISUAL_get();
1056             internal static readonly int PROGRESS_VISUAL = Interop.Slider.Slider_Property_PROGRESS_VISUAL_get();
1057             internal static readonly int POPUP_VISUAL = Interop.Slider.Slider_Property_POPUP_VISUAL_get();
1058             internal static readonly int POPUP_ARROW_VISUAL = Interop.Slider.Slider_Property_POPUP_ARROW_VISUAL_get();
1059             internal static readonly int DISABLED_COLOR = Interop.Slider.Slider_Property_DISABLED_COLOR_get();
1060             internal static readonly int VALUE_PRECISION = Interop.Slider.Slider_Property_VALUE_PRECISION_get();
1061             internal static readonly int SHOW_POPUP = Interop.Slider.Slider_Property_SHOW_POPUP_get();
1062             internal static readonly int SHOW_VALUE = Interop.Slider.Slider_Property_SHOW_VALUE_get();
1063             internal static readonly int MARKS = Interop.Slider.Slider_Property_MARKS_get();
1064             internal static readonly int SNAP_TO_MARKS = Interop.Slider.Slider_Property_SNAP_TO_MARKS_get();
1065             internal static readonly int MARK_TOLERANCE = Interop.Slider.Slider_Property_MARK_TOLERANCE_get();
1066         }
1067     }
1068 }