Follow formatting NUI
[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(nameof(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(nameof(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(nameof(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(nameof(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(nameof(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(nameof(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(nameof(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(nameof(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(nameof(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(nameof(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(nameof(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(nameof(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(nameof(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(nameof(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(nameof(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                     {
726                         this.Value = e.SlideValue;
727                         return true;
728                     };
729                 }
730             }
731         }
732
733         /// <summary>
734         /// Downcasts an object handle to the slider.<br />
735         /// If the handle points to a slider, then the downcast produces a valid handle.<br />
736         /// If not, then the returned handle is left uninitialized.<br />
737         /// </summary>
738         /// <param name="handle">The handle to an object.</param>
739         /// <returns>The handle to a slider or an uninitialized handle.</returns>
740         /// <since_tizen> 3 </since_tizen>
741         /// This will be deprecated
742         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
743         [EditorBrowsable(EditorBrowsableState.Never)]
744         public static Slider DownCast(BaseHandle handle)
745         {
746             Slider ret = Registry.GetManagedBaseHandleFromNativePtr(handle) as Slider;
747             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
748             return ret;
749         }
750
751         internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Slider obj)
752         {
753             return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
754         }
755
756         /// <summary>
757         /// Gets the slider from the pointer.
758         /// </summary>
759         /// <param name="cPtr">The pointer of the slider.</param>
760         /// <returns>The object of the slider type.</returns>
761         internal static Slider GetSliderFromPtr(global::System.IntPtr cPtr)
762         {
763             Slider ret = Registry.GetManagedBaseHandleFromNativePtr(cPtr) as Slider;
764             if (null == ret)
765             {
766                 ret = Registry.GetManagedBaseHandleFromRefObject(cPtr) as Slider;
767             }
768
769             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
770             return ret;
771         }
772
773         internal Slider Assign(Slider handle)
774         {
775             Slider ret = new Slider(Interop.Slider.Slider_Assign(swigCPtr, Slider.getCPtr(handle)), false);
776             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
777             return ret;
778         }
779
780         internal SliderValueChangedSignal ValueChangedSignal()
781         {
782             SliderValueChangedSignal ret = new SliderValueChangedSignal(Interop.Slider.Slider_ValueChangedSignal(swigCPtr), false);
783             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
784             return ret;
785         }
786
787         internal SliderValueChangedSignal SlidingFinishedSignal()
788         {
789             SliderValueChangedSignal ret = new SliderValueChangedSignal(Interop.Slider.Slider_SlidingFinishedSignal(swigCPtr), false);
790             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
791             return ret;
792         }
793
794         internal SliderMarkReachedSignal MarkReachedSignal()
795         {
796             SliderMarkReachedSignal ret = new SliderMarkReachedSignal(Interop.Slider.Slider_MarkReachedSignal(swigCPtr), false);
797             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
798             return ret;
799         }
800
801         /// <summary>
802         /// Dispose.
803         /// </summary>
804         /// <since_tizen> 3 </since_tizen>
805         /// This will be deprecated
806         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
807         [EditorBrowsable(EditorBrowsableState.Never)]
808         protected override void Dispose(DisposeTypes type)
809         {
810             if (disposed)
811             {
812                 return;
813             }
814
815             //Release your own unmanaged resources here.
816             //You should not access any managed member here except static instance.
817             //because the execution order of Finalizes is non-deterministic.
818             if (this != null)
819             {
820                 if (_sliderValueChangedCallbackDelegate != null)
821                 {
822                     ValueChangedSignal().Disconnect(_sliderValueChangedCallbackDelegate);
823                 }
824
825                 if (_sliderSlidingFinishedCallbackDelegate != null)
826                 {
827                     SlidingFinishedSignal().Disconnect(_sliderSlidingFinishedCallbackDelegate);
828                 }
829
830                 if (_sliderMarkReachedCallbackDelegate != null)
831                 {
832                     MarkReachedSignal().Disconnect(_sliderMarkReachedCallbackDelegate);
833                 }
834             }
835
836             base.Dispose(type);
837         }
838
839         /// This will not be public opened.
840         [EditorBrowsable(EditorBrowsableState.Never)]
841         protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
842         {
843             Interop.Slider.delete_Slider(swigCPtr);
844         }
845
846         // Callback for Slider ValueChanged signal
847         private bool OnValueChanged(IntPtr slider, float slideValue)
848         {
849             ValueChangedEventArgs e = new ValueChangedEventArgs();
850
851             // Populate all members of "e" (ValueChangedEventArgs) with real page
852             e.Slider = Slider.GetSliderFromPtr(slider);
853             e.SlideValue = slideValue;
854
855             if (_sliderValueChangedEventHandler != null)
856             {
857                 //here we send all page to user event handlers
858                 return _sliderValueChangedEventHandler(this, e);
859             }
860             return false;
861         }
862
863         // Callback for Slider SlidingFinished signal
864         private bool OnSlidingFinished(IntPtr slider, float slideValue)
865         {
866             SlidingFinishedEventArgs e = new SlidingFinishedEventArgs();
867
868             // Populate all members of "e" (SlidingFinishedEventArgs) with real page
869             e.Slider = Slider.GetSliderFromPtr(slider);
870             e.SlideValue = slideValue;
871
872             if (_sliderSlidingFinishedEventHandler != null)
873             {
874                 //here we send all page to user event handlers
875                 return _sliderSlidingFinishedEventHandler(this, e);
876             }
877             return false;
878         }
879
880         // Callback for Slider MarkReached signal
881         private bool OnMarkReached(IntPtr slider, int slideValue)
882         {
883             MarkReachedEventArgs e = new MarkReachedEventArgs();
884
885             // Populate all members of "e" (MarkReachedEventArgs) with real page
886             e.Slider = Slider.GetSliderFromPtr(slider);
887             e.SlideValue = slideValue;
888
889             if (_sliderMarkReachedEventHandler != null)
890             {
891                 //here we send all page to user event handlers
892                 return _sliderMarkReachedEventHandler(this, e);
893             }
894             return false;
895         }
896
897         /// <summary>
898         /// The ValueChanged event arguments.
899         /// </summary>
900         /// <since_tizen> 3 </since_tizen>
901         /// This will be deprecated
902         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
903         [EditorBrowsable(EditorBrowsableState.Never)]
904         public class ValueChangedEventArgs : EventArgs
905         {
906             private Slider _slider;
907             private float _slideValue;
908
909             /// <summary>
910             /// The slider.
911             /// </summary>
912             /// <since_tizen> 3 </since_tizen>
913             /// This will be deprecated
914             [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
915             [EditorBrowsable(EditorBrowsableState.Never)]
916             public Slider Slider
917             {
918                 get
919                 {
920                     return _slider;
921                 }
922                 set
923                 {
924                     _slider = value;
925                 }
926             }
927
928             /// <summary>
929             /// The slider value.
930             /// </summary>
931             /// <since_tizen> 3 </since_tizen>
932             /// This will be deprecated
933             [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
934             [EditorBrowsable(EditorBrowsableState.Never)]
935             public float SlideValue
936             {
937                 get
938                 {
939                     return _slideValue;
940                 }
941                 set
942                 {
943                     _slideValue = value;
944                 }
945             }
946         }
947
948         /// <summary>
949         /// The SlidingFinished event arguments.
950         /// </summary>
951         /// <since_tizen> 3 </since_tizen>
952         /// This will be deprecated
953         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
954         [EditorBrowsable(EditorBrowsableState.Never)]
955         public class SlidingFinishedEventArgs : EventArgs
956         {
957             private Slider _slider;
958             private float _slideValue;
959
960             /// <summary>
961             /// The slider.
962             /// </summary>
963             /// <since_tizen> 3 </since_tizen>
964             /// This will be deprecated
965             [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
966             [EditorBrowsable(EditorBrowsableState.Never)]
967             public Slider Slider
968             {
969                 get
970                 {
971                     return _slider;
972                 }
973                 set
974                 {
975                     _slider = value;
976                 }
977             }
978
979             /// <summary>
980             /// The slider value.
981             /// </summary>
982             /// <since_tizen> 3 </since_tizen>
983             /// This will be deprecated
984             [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
985             [EditorBrowsable(EditorBrowsableState.Never)]
986             public float SlideValue
987             {
988                 get
989                 {
990                     return _slideValue;
991                 }
992                 set
993                 {
994                     _slideValue = value;
995                 }
996             }
997         }
998
999         /// <summary>
1000         /// The MarkReached event arguments.
1001         /// </summary>
1002         /// <since_tizen> 3 </since_tizen>
1003         /// This will be deprecated
1004         [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
1005         [EditorBrowsable(EditorBrowsableState.Never)]
1006         public class MarkReachedEventArgs : EventArgs
1007         {
1008             private Slider _slider;
1009             private int _slideValue;
1010
1011             /// <summary>
1012             /// The slider.
1013             /// </summary>
1014             /// <since_tizen> 3 </since_tizen>
1015             /// This will be deprecated
1016             [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
1017             [EditorBrowsable(EditorBrowsableState.Never)]
1018             public Slider Slider
1019             {
1020                 get
1021                 {
1022                     return _slider;
1023                 }
1024                 set
1025                 {
1026                     _slider = value;
1027                 }
1028             }
1029
1030             /// <summary>
1031             /// The slider value.
1032             /// </summary>
1033             /// <since_tizen> 3 </since_tizen>
1034             /// This will be deprecated
1035             [Obsolete("Deprecated in API6; Will be removed in API9. Please use Tizen.NUI.Components")]
1036             [EditorBrowsable(EditorBrowsableState.Never)]
1037             public int SlideValue
1038             {
1039                 get
1040                 {
1041                     return _slideValue;
1042                 }
1043                 set
1044                 {
1045                     _slideValue = value;
1046                 }
1047             }
1048         }
1049
1050         internal new class Property
1051         {
1052             internal static readonly int LOWER_BOUND = Interop.Slider.Slider_Property_LOWER_BOUND_get();
1053             internal static readonly int UPPER_BOUND = Interop.Slider.Slider_Property_UPPER_BOUND_get();
1054             internal static readonly int VALUE = Interop.Slider.Slider_Property_VALUE_get();
1055             internal static readonly int TRACK_VISUAL = Interop.Slider.Slider_Property_TRACK_VISUAL_get();
1056             internal static readonly int HANDLE_VISUAL = Interop.Slider.Slider_Property_HANDLE_VISUAL_get();
1057             internal static readonly int PROGRESS_VISUAL = Interop.Slider.Slider_Property_PROGRESS_VISUAL_get();
1058             internal static readonly int POPUP_VISUAL = Interop.Slider.Slider_Property_POPUP_VISUAL_get();
1059             internal static readonly int POPUP_ARROW_VISUAL = Interop.Slider.Slider_Property_POPUP_ARROW_VISUAL_get();
1060             internal static readonly int DISABLED_COLOR = Interop.Slider.Slider_Property_DISABLED_COLOR_get();
1061             internal static readonly int VALUE_PRECISION = Interop.Slider.Slider_Property_VALUE_PRECISION_get();
1062             internal static readonly int SHOW_POPUP = Interop.Slider.Slider_Property_SHOW_POPUP_get();
1063             internal static readonly int SHOW_VALUE = Interop.Slider.Slider_Property_SHOW_VALUE_get();
1064             internal static readonly int MARKS = Interop.Slider.Slider_Property_MARKS_get();
1065             internal static readonly int SNAP_TO_MARKS = Interop.Slider.Slider_Property_SNAP_TO_MARKS_get();
1066             internal static readonly int MARK_TOLERANCE = Interop.Slider.Slider_Property_MARK_TOLERANCE_get();
1067         }
1068     }
1069 }