258fb5844a1cb47d4b4b2197e24764b98351ffc1
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / UIComponents / Slider.cs
1 /** Copyright (c) 2017 Samsung Electronics Co., Ltd.
2 *
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 *
15 */
16
17 namespace Tizen.NUI.UIComponents
18 {
19
20     using System;
21     using System.Runtime.InteropServices;
22     using Tizen.NUI.BaseComponents;
23
24     /// <summary>
25     /// Slider is a control to enable sliding an indicator between two values.
26     /// </summary>
27     public class Slider : View
28     {
29         private global::System.Runtime.InteropServices.HandleRef swigCPtr;
30
31         internal Slider(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.Slider_SWIGUpcast(cPtr), cMemoryOwn)
32         {
33             swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
34         }
35
36         internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Slider obj)
37         {
38             return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
39         }
40
41         /// <summary>
42         /// Dispose
43         /// </summary>
44         protected override void Dispose(DisposeTypes type)
45         {
46             if (disposed)
47             {
48                 return;
49             }
50
51             if (type == DisposeTypes.Explicit)
52             {
53                 //Called by User
54                 //Release your own managed resources here.
55                 //You should release all of your own disposable objects here.
56
57             }
58
59             //Release your own unmanaged resources here.
60             //You should not access any managed member here except static instance.
61             //because the execution order of Finalizes is non-deterministic.
62
63             if (swigCPtr.Handle != global::System.IntPtr.Zero)
64             {
65                 if (swigCMemOwn)
66                 {
67                     swigCMemOwn = false;
68
69                     //Unreference this instance from Registry.
70                     Registry.Unregister(this);
71
72                     NDalicPINVOKE.delete_Slider(swigCPtr);
73                 }
74                 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
75             }
76
77             base.Dispose(type);
78         }
79
80         /// <summary>
81         /// Value changed event arguments.
82         /// </summary>
83         public class ValueChangedEventArgs : EventArgs
84         {
85             private Slider _slider;
86             private float _slideValue;
87
88             /// <summary>
89             /// Slider.
90             /// </summary>
91             public Slider Slider
92             {
93                 get
94                 {
95                     return _slider;
96                 }
97                 set
98                 {
99                     _slider = value;
100                 }
101             }
102
103             /// <summary>
104             /// Slider value.
105             /// </summary>
106             public float SlideValue
107             {
108                 get
109                 {
110                     return _slideValue;
111                 }
112                 set
113                 {
114                     _slideValue = value;
115                 }
116             }
117         }
118
119         /// <summary>
120         /// Sliding finished event arguments.
121         /// </summary>
122         public class SlidingFinishedEventArgs : EventArgs
123         {
124             private Slider _slider;
125             private float _slideValue;
126
127             /// <summary>
128             /// Slider.
129             /// </summary>
130             public Slider Slider
131             {
132                 get
133                 {
134                     return _slider;
135                 }
136                 set
137                 {
138                     _slider = value;
139                 }
140             }
141
142             /// <summary>
143             /// Slider value.
144             /// </summary>
145             public float SlideValue
146             {
147                 get
148                 {
149                     return _slideValue;
150                 }
151                 set
152                 {
153                     _slideValue = value;
154                 }
155             }
156         }
157
158         /// <summary>
159         /// Mark reached event arguments.
160         /// </summary>
161         public class MarkReachedEventArgs : EventArgs
162         {
163             private Slider _slider;
164             private int _slideValue;
165
166             /// <summary>
167             /// Slider.
168             /// </summary>
169             public Slider Slider
170             {
171                 get
172                 {
173                     return _slider;
174                 }
175                 set
176                 {
177                     _slider = value;
178                 }
179             }
180
181             /// <summary>
182             /// Slider value.
183             /// </summary>
184             public int SlideValue
185             {
186                 get
187                 {
188                     return _slideValue;
189                 }
190                 set
191                 {
192                     _slideValue = value;
193                 }
194             }
195         }
196
197
198         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
199         private delegate bool ValueChangedCallbackDelegate(IntPtr slider, float slideValue);
200         private EventHandlerWithReturnType<object, ValueChangedEventArgs, bool> _sliderValueChangedEventHandler;
201         private ValueChangedCallbackDelegate _sliderValueChangedCallbackDelegate;
202
203         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
204         private delegate bool SlidingFinishedCallbackDelegate(IntPtr slider, float slideValue);
205         private EventHandlerWithReturnType<object, SlidingFinishedEventArgs, bool> _sliderSlidingFinishedEventHandler;
206         private SlidingFinishedCallbackDelegate _sliderSlidingFinishedCallbackDelegate;
207
208         [UnmanagedFunctionPointer(CallingConvention.StdCall)]
209         private delegate bool MarkReachedCallbackDelegate(IntPtr slider, int slideValue);
210         private EventHandlerWithReturnType<object, MarkReachedEventArgs, bool> _sliderMarkReachedEventHandler;
211         private MarkReachedCallbackDelegate _sliderMarkReachedCallbackDelegate;
212
213         /// <summary>
214         /// Event emitted when the slider value changes.
215         /// </summary>
216         public event EventHandlerWithReturnType<object, ValueChangedEventArgs, bool> ValueChanged
217         {
218             add
219             {
220                 if (_sliderValueChangedEventHandler == null)
221                 {
222                     _sliderValueChangedCallbackDelegate = (OnValueChanged);
223                     ValueChangedSignal().Connect(_sliderValueChangedCallbackDelegate);
224                 }
225                 _sliderValueChangedEventHandler += value;
226             }
227             remove
228             {
229                 _sliderValueChangedEventHandler -= value;
230                 if (_sliderValueChangedEventHandler == null && ValueChangedSignal().Empty() == false)
231                 {
232                     ValueChangedSignal().Disconnect(_sliderValueChangedCallbackDelegate);
233                 }
234             }
235         }
236
237         // Callback for Slider ValueChanged signal
238         private bool OnValueChanged(IntPtr slider, float slideValue)
239         {
240             ValueChangedEventArgs e = new ValueChangedEventArgs();
241
242             // Populate all members of "e" (ValueChangedEventArgs) with real page
243             e.Slider = Slider.GetSliderFromPtr(slider);
244             e.SlideValue = slideValue;
245
246             if (_sliderValueChangedEventHandler != null)
247             {
248                 //here we send all page to user event handlers
249                 return _sliderValueChangedEventHandler(this, e);
250             }
251             return false;
252         }
253
254         /// <summary>
255         /// Event emitted when the sliding is finished.
256         /// </summary>
257         public event EventHandlerWithReturnType<object, SlidingFinishedEventArgs, bool> SlidingFinished
258         {
259             add
260             {
261                 if (_sliderSlidingFinishedEventHandler == null)
262                 {
263                     _sliderSlidingFinishedCallbackDelegate = (OnSlidingFinished);
264                     SlidingFinishedSignal().Connect(_sliderSlidingFinishedCallbackDelegate);
265                 }
266                 _sliderSlidingFinishedEventHandler += value;
267             }
268             remove
269             {
270                 _sliderSlidingFinishedEventHandler -= value;
271                 if (_sliderSlidingFinishedEventHandler == null && SlidingFinishedSignal().Empty() == false)
272                 {
273                     SlidingFinishedSignal().Disconnect(_sliderSlidingFinishedCallbackDelegate);
274                 }
275             }
276         }
277
278         // Callback for Slider SlidingFinished signal
279         private bool OnSlidingFinished(IntPtr slider, float slideValue)
280         {
281             SlidingFinishedEventArgs e = new SlidingFinishedEventArgs();
282
283             // Populate all members of "e" (SlidingFinishedEventArgs) with real page
284             e.Slider = Slider.GetSliderFromPtr(slider);
285             e.SlideValue = slideValue;
286
287             if (_sliderSlidingFinishedEventHandler != null)
288             {
289                 //here we send all page to user event handlers
290                 return _sliderSlidingFinishedEventHandler(this, e);
291             }
292             return false;
293         }
294
295         /// <summary>
296         /// Event emitted when the slider handle reaches a mark.
297         /// </summary>
298         public event EventHandlerWithReturnType<object, MarkReachedEventArgs, bool> MarkReached
299         {
300             add
301             {
302                 if (_sliderMarkReachedEventHandler == null)
303                 {
304                     _sliderMarkReachedCallbackDelegate = (OnMarkReached);
305                     MarkReachedSignal().Connect(_sliderMarkReachedCallbackDelegate);
306                 }
307                 _sliderMarkReachedEventHandler += value;
308             }
309             remove
310             {
311                 _sliderMarkReachedEventHandler -= value;
312                 if (_sliderMarkReachedEventHandler == null && MarkReachedSignal().Empty() == false)
313                 {
314                     MarkReachedSignal().Disconnect(_sliderMarkReachedCallbackDelegate);
315                 }
316             }
317         }
318
319         // Callback for Slider MarkReached signal
320         private bool OnMarkReached(IntPtr slider, int slideValue)
321         {
322             MarkReachedEventArgs e = new MarkReachedEventArgs();
323
324             // Populate all members of "e" (MarkReachedEventArgs) with real page
325             e.Slider = Slider.GetSliderFromPtr(slider);
326             e.SlideValue = slideValue;
327
328             if (_sliderMarkReachedEventHandler != null)
329             {
330                 //here we send all page to user event handlers
331                 return _sliderMarkReachedEventHandler(this, e);
332             }
333             return false;
334         }
335
336         /// <summary>
337         /// Get Slider from the pointer.
338         /// </summary>
339         /// <param name="cPtr">The pointer of Slider</param>
340         /// <returns>Object of Slider type</returns>
341         internal static Slider GetSliderFromPtr(global::System.IntPtr cPtr)
342         {
343             Slider ret = new Slider(cPtr, false);
344             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
345             return ret;
346         }
347
348         internal class Property : global::System.IDisposable
349         {
350             private global::System.Runtime.InteropServices.HandleRef swigCPtr;
351             protected bool swigCMemOwn;
352
353             internal Property(global::System.IntPtr cPtr, bool cMemoryOwn)
354             {
355                 swigCMemOwn = cMemoryOwn;
356                 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
357             }
358
359             internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Property obj)
360             {
361                 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
362             }
363
364             //A Flag to check who called Dispose(). (By User or DisposeQueue)
365             private bool isDisposeQueued = false;
366             //A Flat to check if it is already disposed.
367             protected bool disposed = false;
368
369             ~Property()
370             {
371                 if (!isDisposeQueued)
372                 {
373                     isDisposeQueued = true;
374                     DisposeQueue.Instance.Add(this);
375                 }
376             }
377
378             public void Dispose()
379             {
380                 //Throw excpetion if Dispose() is called in separate thread.
381                 if (!Window.IsInstalled())
382                 {
383                     throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread.");
384                 }
385
386                 if (isDisposeQueued)
387                 {
388                     Dispose(DisposeTypes.Implicit);
389                 }
390                 else
391                 {
392                     Dispose(DisposeTypes.Explicit);
393                     System.GC.SuppressFinalize(this);
394                 }
395             }
396
397             protected virtual void Dispose(DisposeTypes type)
398             {
399                 if (disposed)
400                 {
401                     return;
402                 }
403
404                 if (type == DisposeTypes.Explicit)
405                 {
406                     //Called by User
407                     //Release your own managed resources here.
408                     //You should release all of your own disposable objects here.
409
410                 }
411
412                 //Release your own unmanaged resources here.
413                 //You should not access any managed member here except static instance.
414                 //because the execution order of Finalizes is non-deterministic.
415
416                 if (swigCPtr.Handle != global::System.IntPtr.Zero)
417                 {
418                     if (swigCMemOwn)
419                     {
420                         swigCMemOwn = false;
421                         NDalicPINVOKE.delete_Slider_Property(swigCPtr);
422                     }
423                     swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
424                 }
425
426                 disposed = true;
427             }
428
429             internal Property() : this(NDalicPINVOKE.new_Slider_Property(), true)
430             {
431                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
432             }
433
434             internal static readonly int LOWER_BOUND = NDalicPINVOKE.Slider_Property_LOWER_BOUND_get();
435             internal static readonly int UPPER_BOUND = NDalicPINVOKE.Slider_Property_UPPER_BOUND_get();
436             internal static readonly int VALUE = NDalicPINVOKE.Slider_Property_VALUE_get();
437             internal static readonly int TRACK_VISUAL = NDalicPINVOKE.Slider_Property_TRACK_VISUAL_get();
438             internal static readonly int HANDLE_VISUAL = NDalicPINVOKE.Slider_Property_HANDLE_VISUAL_get();
439             internal static readonly int PROGRESS_VISUAL = NDalicPINVOKE.Slider_Property_PROGRESS_VISUAL_get();
440             internal static readonly int POPUP_VISUAL = NDalicPINVOKE.Slider_Property_POPUP_VISUAL_get();
441             internal static readonly int POPUP_ARROW_VISUAL = NDalicPINVOKE.Slider_Property_POPUP_ARROW_VISUAL_get();
442             internal static readonly int DISABLED_COLOR = NDalicPINVOKE.Slider_Property_DISABLED_COLOR_get();
443             internal static readonly int VALUE_PRECISION = NDalicPINVOKE.Slider_Property_VALUE_PRECISION_get();
444             internal static readonly int SHOW_POPUP = NDalicPINVOKE.Slider_Property_SHOW_POPUP_get();
445             internal static readonly int SHOW_VALUE = NDalicPINVOKE.Slider_Property_SHOW_VALUE_get();
446             internal static readonly int MARKS = NDalicPINVOKE.Slider_Property_MARKS_get();
447             internal static readonly int SNAP_TO_MARKS = NDalicPINVOKE.Slider_Property_SNAP_TO_MARKS_get();
448             internal static readonly int MARK_TOLERANCE = NDalicPINVOKE.Slider_Property_MARK_TOLERANCE_get();
449
450         }
451
452         /// <summary>
453         /// Creates the Slider control.
454         /// </summary>
455         public Slider() : this(NDalicPINVOKE.Slider_New(), true)
456         {
457             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
458
459         }
460         internal Slider(Slider handle) : this(NDalicPINVOKE.new_Slider__SWIG_1(Slider.getCPtr(handle)), true)
461         {
462             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
463         }
464
465         internal Slider Assign(Slider handle)
466         {
467             Slider ret = new Slider(NDalicPINVOKE.Slider_Assign(swigCPtr, Slider.getCPtr(handle)), false);
468             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
469             return ret;
470         }
471
472         /// <summary>
473         /// Downcasts an Object handle to Slider.<br>
474         /// If handle points to a Slider, the downcast produces valid handle.<br>
475         /// If not, the returned handle is left uninitialized.<br>
476         /// </summary>
477         /// <param name="handle">Handle to an object</param>
478         /// <returns>Handle to a Slider or an uninitialized handle</returns>
479         public new static Slider DownCast(BaseHandle handle)
480         {
481             Slider ret = new Slider(NDalicPINVOKE.Slider_DownCast(BaseHandle.getCPtr(handle)), true);
482             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
483             return ret;
484         }
485
486         internal SliderValueChangedSignal ValueChangedSignal()
487         {
488             SliderValueChangedSignal ret = new SliderValueChangedSignal(NDalicPINVOKE.Slider_ValueChangedSignal(swigCPtr), false);
489             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
490             return ret;
491         }
492
493         internal SliderValueChangedSignal SlidingFinishedSignal()
494         {
495             SliderValueChangedSignal ret = new SliderValueChangedSignal(NDalicPINVOKE.Slider_SlidingFinishedSignal(swigCPtr), false);
496             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
497             return ret;
498         }
499
500         internal SliderMarkReachedSignal MarkReachedSignal()
501         {
502             SliderMarkReachedSignal ret = new SliderMarkReachedSignal(NDalicPINVOKE.Slider_MarkReachedSignal(swigCPtr), false);
503             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
504             return ret;
505         }
506
507         /// <summary>
508         /// Lower bound property
509         /// </summary>
510         public float LowerBound
511         {
512             get
513             {
514                 float temp = 0.0f;
515                 GetProperty(Slider.Property.LOWER_BOUND).Get(out temp);
516                 return temp;
517             }
518             set
519             {
520                 SetProperty(Slider.Property.LOWER_BOUND, new Tizen.NUI.PropertyValue(value));
521             }
522         }
523
524         /// <summary>
525         /// Upper bound property
526         /// </summary>
527         public float UpperBound
528         {
529             get
530             {
531                 float temp = 0.0f;
532                 GetProperty(Slider.Property.UPPER_BOUND).Get(out temp);
533                 return temp;
534             }
535             set
536             {
537                 SetProperty(Slider.Property.UPPER_BOUND, new Tizen.NUI.PropertyValue(value));
538             }
539         }
540
541         /// <summary>
542         /// Value property
543         /// </summary>
544         public float Value
545         {
546             get
547             {
548                 float temp = 0.0f;
549                 GetProperty(Slider.Property.VALUE).Get(out temp);
550                 return temp;
551             }
552             set
553             {
554                 SetProperty(Slider.Property.VALUE, new Tizen.NUI.PropertyValue(value));
555             }
556         }
557
558         /// <summary>
559         /// Track visual property
560         /// </summary>
561         public PropertyMap TrackVisual
562         {
563             get
564             {
565                 PropertyMap temp = new PropertyMap();
566                 GetProperty(Slider.Property.TRACK_VISUAL).Get(temp);
567                 return temp;
568             }
569             set
570             {
571                 SetProperty(Slider.Property.TRACK_VISUAL, new Tizen.NUI.PropertyValue(value));
572             }
573         }
574
575         /// <summary>
576         /// Handle visual property
577         /// </summary>
578         public PropertyMap HandleVisual
579         {
580             get
581             {
582                 PropertyMap temp = new PropertyMap();
583                 GetProperty(Slider.Property.HANDLE_VISUAL).Get(temp);
584                 return temp;
585             }
586             set
587             {
588                 SetProperty(Slider.Property.HANDLE_VISUAL, new Tizen.NUI.PropertyValue(value));
589             }
590         }
591
592         /// <summary>
593         /// Progress visual property
594         /// </summary>
595         public PropertyMap ProgressVisual
596         {
597             get
598             {
599                 PropertyMap temp = new PropertyMap();
600                 GetProperty(Slider.Property.PROGRESS_VISUAL).Get(temp);
601                 return temp;
602             }
603             set
604             {
605                 SetProperty(Slider.Property.PROGRESS_VISUAL, new Tizen.NUI.PropertyValue(value));
606             }
607         }
608
609         /// <summary>
610         /// Popup visual property
611         /// </summary>
612         public PropertyMap PopupVisual
613         {
614             get
615             {
616                 PropertyMap temp = new PropertyMap();
617                 GetProperty(Slider.Property.POPUP_VISUAL).Get(temp);
618                 return temp;
619             }
620             set
621             {
622                 SetProperty(Slider.Property.POPUP_VISUAL, new Tizen.NUI.PropertyValue(value));
623             }
624         }
625
626         /// <summary>
627         /// Popup arrow visual property
628         /// </summary>
629         public PropertyMap PopupArrowVisual
630         {
631             get
632             {
633                 PropertyMap temp = new PropertyMap();
634                 GetProperty(Slider.Property.POPUP_ARROW_VISUAL).Get(temp);
635                 return temp;
636             }
637             set
638             {
639                 SetProperty(Slider.Property.POPUP_ARROW_VISUAL, new Tizen.NUI.PropertyValue(value));
640             }
641         }
642
643         /// <summary>
644         /// Disable color property
645         /// </summary>
646         public Vector4 DisabledColor
647         {
648             get
649             {
650                 Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
651                 GetProperty(Slider.Property.DISABLED_COLOR).Get(temp);
652                 return temp;
653             }
654             set
655             {
656                 SetProperty(Slider.Property.DISABLED_COLOR, new Tizen.NUI.PropertyValue(value));
657             }
658         }
659
660         /// <summary>
661         /// Value presicion property
662         /// </summary>
663         public int ValuePrecision
664         {
665             get
666             {
667                 int temp = 0;
668                 GetProperty(Slider.Property.VALUE_PRECISION).Get(out temp);
669                 return temp;
670             }
671             set
672             {
673                 SetProperty(Slider.Property.VALUE_PRECISION, new Tizen.NUI.PropertyValue(value));
674             }
675         }
676
677         /// <summary>
678         /// Show popup property
679         /// </summary>
680         public bool ShowPopup
681         {
682             get
683             {
684                 bool temp = false;
685                 GetProperty(Slider.Property.SHOW_POPUP).Get(out temp);
686                 return temp;
687             }
688             set
689             {
690                 SetProperty(Slider.Property.SHOW_POPUP, new Tizen.NUI.PropertyValue(value));
691             }
692         }
693
694         /// <summary>
695         /// Show value property
696         /// </summary>
697         public bool ShowValue
698         {
699             get
700             {
701                 bool temp = false;
702                 GetProperty(Slider.Property.SHOW_VALUE).Get(out temp);
703                 return temp;
704             }
705             set
706             {
707                 SetProperty(Slider.Property.SHOW_VALUE, new Tizen.NUI.PropertyValue(value));
708             }
709         }
710
711         /// <summary>
712         /// Marks property
713         /// </summary>
714         public Tizen.NUI.PropertyArray Marks
715         {
716             get
717             {
718                 Tizen.NUI.PropertyArray temp = new Tizen.NUI.PropertyArray();
719                 GetProperty(Slider.Property.MARKS).Get(temp);
720                 return temp;
721             }
722             set
723             {
724                 SetProperty(Slider.Property.MARKS, new Tizen.NUI.PropertyValue(value));
725             }
726         }
727
728         /// <summary>
729         /// Snap to marks property
730         /// </summary>
731         public bool SnapToMarks
732         {
733             get
734             {
735                 bool temp = false;
736                 GetProperty(Slider.Property.SNAP_TO_MARKS).Get(out temp);
737                 return temp;
738             }
739             set
740             {
741                 SetProperty(Slider.Property.SNAP_TO_MARKS, new Tizen.NUI.PropertyValue(value));
742             }
743         }
744
745         /// <summary>
746         /// Mark tolerance property
747         /// </summary>
748         public float MarkTolerance
749         {
750             get
751             {
752                 float temp = 0.0f;
753                 GetProperty(Slider.Property.MARK_TOLERANCE).Get(out temp);
754                 return temp;
755             }
756             set
757             {
758                 SetProperty(Slider.Property.MARK_TOLERANCE, new Tizen.NUI.PropertyValue(value));
759             }
760         }
761
762     }
763
764 }