Commit manual merge for dali-csharp.
[platform/core/csapi/nui.git] / 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 // This File has been auto-generated by SWIG and then modified using DALi Ruby Scripts
17 //------------------------------------------------------------------------------
18 // <auto-generated />
19 //
20 // This file was automatically generated by SWIG (http://www.swig.org).
21 // Version 3.0.9
22 //
23 // Do not make changes to this file unless you know what you are doing--modify
24 // the SWIG interface file instead.
25 //------------------------------------------------------------------------------
26
27 namespace Tizen.NUI.UIComponents
28 {
29
30     using System;
31     using System.Runtime.InteropServices;
32     using Tizen.NUI.BaseComponents;
33     
34     /// <summary>
35     /// Slider is a control to enable sliding an indicator between two values.
36     /// </summary>
37     public class Slider : View
38     {
39         private global::System.Runtime.InteropServices.HandleRef swigCPtr;
40
41         internal Slider(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.Slider_SWIGUpcast(cPtr), cMemoryOwn)
42         {
43             swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
44         }
45
46         internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Slider obj)
47         {
48             return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
49         }
50
51         /// <summary>
52         /// Dispose
53         /// </summary>
54         public override void Dispose()
55         {
56             if (!Window.IsInstalled())
57             {
58                 DisposeQueue.Instance.Add(this);
59                 return;
60             }
61
62             lock (this)
63             {
64                 if (swigCPtr.Handle != global::System.IntPtr.Zero)
65                 {
66                     if (swigCMemOwn)
67                     {
68                         swigCMemOwn = false;
69                         NDalicPINVOKE.delete_Slider(swigCPtr);
70                     }
71                     swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
72                 }
73                 global::System.GC.SuppressFinalize(this);
74                 base.Dispose();
75             }
76         }
77
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             ~Property()
365             {
366                 Dispose();
367             }
368
369             public virtual void Dispose()
370             {
371                 lock (this)
372                 {
373                     if (swigCPtr.Handle != global::System.IntPtr.Zero)
374                     {
375                         if (swigCMemOwn)
376                         {
377                             swigCMemOwn = false;
378                             NDalicPINVOKE.delete_Slider_Property(swigCPtr);
379                         }
380                         swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
381                     }
382                     global::System.GC.SuppressFinalize(this);
383                 }
384             }
385
386             internal Property() : this(NDalicPINVOKE.new_Slider_Property(), true)
387             {
388                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
389             }
390
391             internal static readonly int LOWER_BOUND = NDalicPINVOKE.Slider_Property_LOWER_BOUND_get();
392             internal static readonly int UPPER_BOUND = NDalicPINVOKE.Slider_Property_UPPER_BOUND_get();
393             internal static readonly int VALUE = NDalicPINVOKE.Slider_Property_VALUE_get();
394             internal static readonly int TRACK_VISUAL = NDalicPINVOKE.Slider_Property_TRACK_VISUAL_get();
395             internal static readonly int HANDLE_VISUAL = NDalicPINVOKE.Slider_Property_HANDLE_VISUAL_get();
396             internal static readonly int PROGRESS_VISUAL = NDalicPINVOKE.Slider_Property_PROGRESS_VISUAL_get();
397             internal static readonly int POPUP_VISUAL = NDalicPINVOKE.Slider_Property_POPUP_VISUAL_get();
398             internal static readonly int POPUP_ARROW_VISUAL = NDalicPINVOKE.Slider_Property_POPUP_ARROW_VISUAL_get();
399             internal static readonly int DISABLED_COLOR = NDalicPINVOKE.Slider_Property_DISABLED_COLOR_get();
400             internal static readonly int VALUE_PRECISION = NDalicPINVOKE.Slider_Property_VALUE_PRECISION_get();
401             internal static readonly int SHOW_POPUP = NDalicPINVOKE.Slider_Property_SHOW_POPUP_get();
402             internal static readonly int SHOW_VALUE = NDalicPINVOKE.Slider_Property_SHOW_VALUE_get();
403             internal static readonly int MARKS = NDalicPINVOKE.Slider_Property_MARKS_get();
404             internal static readonly int SNAP_TO_MARKS = NDalicPINVOKE.Slider_Property_SNAP_TO_MARKS_get();
405             internal static readonly int MARK_TOLERANCE = NDalicPINVOKE.Slider_Property_MARK_TOLERANCE_get();
406
407         }
408
409         /// <summary>
410         /// Creates the Slider control.
411         /// </summary>
412         public Slider() : this(NDalicPINVOKE.Slider_New(), true)
413         {
414             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
415
416         }
417         internal Slider(Slider handle) : this(NDalicPINVOKE.new_Slider__SWIG_1(Slider.getCPtr(handle)), true)
418         {
419             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
420         }
421
422         internal Slider Assign(Slider handle)
423         {
424             Slider ret = new Slider(NDalicPINVOKE.Slider_Assign(swigCPtr, Slider.getCPtr(handle)), false);
425             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
426             return ret;
427         }
428
429         /// <summary>
430         /// Downcasts an Object handle to Slider.<br>
431         /// If handle points to a Slider, the downcast produces valid handle.<br>
432         /// If not, the returned handle is left uninitialized.<br>
433         /// </summary>
434         /// <param name="handle">Handle to an object</param>
435         /// <returns>Handle to a Slider or an uninitialized handle</returns>
436         public new static Slider DownCast(BaseHandle handle)
437         {
438             Slider ret = new Slider(NDalicPINVOKE.Slider_DownCast(BaseHandle.getCPtr(handle)), true);
439             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
440             return ret;
441         }
442
443         internal SliderValueChangedSignal ValueChangedSignal()
444         {
445             SliderValueChangedSignal ret = new SliderValueChangedSignal(NDalicPINVOKE.Slider_ValueChangedSignal(swigCPtr), false);
446             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
447             return ret;
448         }
449
450         internal SliderValueChangedSignal SlidingFinishedSignal()
451         {
452             SliderValueChangedSignal ret = new SliderValueChangedSignal(NDalicPINVOKE.Slider_SlidingFinishedSignal(swigCPtr), false);
453             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
454             return ret;
455         }
456
457         internal SliderMarkReachedSignal MarkReachedSignal()
458         {
459             SliderMarkReachedSignal ret = new SliderMarkReachedSignal(NDalicPINVOKE.Slider_MarkReachedSignal(swigCPtr), false);
460             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
461             return ret;
462         }
463
464         internal enum PropertyRange
465         {
466             PROPERTY_START_INDEX = PropertyRanges.PROPERTY_REGISTRATION_START_INDEX,
467             PROPERTY_END_INDEX = View.PropertyRange.PROPERTY_START_INDEX + 1000
468         }
469
470         /// <summary>
471         /// Lower bound property
472         /// </summary>
473         public float LowerBound
474         {
475             get
476             {
477                 float temp = 0.0f;
478                 GetProperty(Slider.Property.LOWER_BOUND).Get(ref temp);
479                 return temp;
480             }
481             set
482             {
483                 SetProperty(Slider.Property.LOWER_BOUND, new Tizen.NUI.PropertyValue(value));
484             }
485         }
486
487         /// <summary>
488         /// Upper bound property
489         /// </summary>
490         public float UpperBound
491         {
492             get
493             {
494                 float temp = 0.0f;
495                 GetProperty(Slider.Property.UPPER_BOUND).Get(ref temp);
496                 return temp;
497             }
498             set
499             {
500                 SetProperty(Slider.Property.UPPER_BOUND, new Tizen.NUI.PropertyValue(value));
501             }
502         }
503
504         /// <summary>
505         /// Value property
506         /// </summary>
507         public float Value
508         {
509             get
510             {
511                 float temp = 0.0f;
512                 GetProperty(Slider.Property.VALUE).Get(ref temp);
513                 return temp;
514             }
515             set
516             {
517                 SetProperty(Slider.Property.VALUE, new Tizen.NUI.PropertyValue(value));
518             }
519         }
520
521         /// <summary>
522         /// Track visual property
523         /// </summary>
524         public PropertyMap TrackVisual
525         {
526             get
527             {
528                 PropertyMap temp = new PropertyMap();
529                 GetProperty(Slider.Property.TRACK_VISUAL).Get(temp);
530                 return temp;
531             }
532             set
533             {
534                 SetProperty(Slider.Property.TRACK_VISUAL, new Tizen.NUI.PropertyValue(value));
535             }
536         }
537
538         /// <summary>
539         /// Handle visual property
540         /// </summary>
541         public PropertyMap HandleVisual
542         {
543             get
544             {
545                 PropertyMap temp = new PropertyMap();
546                 GetProperty(Slider.Property.HANDLE_VISUAL).Get(temp);
547                 return temp;
548             }
549             set
550             {
551                 SetProperty(Slider.Property.HANDLE_VISUAL, new Tizen.NUI.PropertyValue(value));
552             }
553         }
554
555         /// <summary>
556         /// Progress visual property
557         /// </summary>
558         public PropertyMap ProgressVisual
559         {
560             get
561             {
562                 PropertyMap temp = new PropertyMap();
563                 GetProperty(Slider.Property.PROGRESS_VISUAL).Get(temp);
564                 return temp;
565             }
566             set
567             {
568                 SetProperty(Slider.Property.PROGRESS_VISUAL, new Tizen.NUI.PropertyValue(value));
569             }
570         }
571
572         /// <summary>
573         /// Popup visual property
574         /// </summary>
575         public PropertyMap PopupVisual
576         {
577             get
578             {
579                 PropertyMap temp = new PropertyMap();
580                 GetProperty(Slider.Property.POPUP_VISUAL).Get(temp);
581                 return temp;
582             }
583             set
584             {
585                 SetProperty(Slider.Property.POPUP_VISUAL, new Tizen.NUI.PropertyValue(value));
586             }
587         }
588
589         /// <summary>
590         /// Popup arrow visual property
591         /// </summary>
592         public PropertyMap PopupArrowVisual
593         {
594             get
595             {
596                 PropertyMap temp = new PropertyMap();
597                 GetProperty(Slider.Property.POPUP_ARROW_VISUAL).Get(temp);
598                 return temp;
599             }
600             set
601             {
602                 SetProperty(Slider.Property.POPUP_ARROW_VISUAL, new Tizen.NUI.PropertyValue(value));
603             }
604         }
605
606         /// <summary>
607         /// Disable color property
608         /// </summary>
609         public Vector4 DisabledColor
610         {
611             get
612             {
613                 Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
614                 GetProperty(Slider.Property.DISABLED_COLOR).Get(temp);
615                 return temp;
616             }
617             set
618             {
619                 SetProperty(Slider.Property.DISABLED_COLOR, new Tizen.NUI.PropertyValue(value));
620             }
621         }
622
623         /// <summary>
624         /// Value presicion property
625         /// </summary>
626         public int ValuePrecision
627         {
628             get
629             {
630                 int temp = 0;
631                 GetProperty(Slider.Property.VALUE_PRECISION).Get(ref temp);
632                 return temp;
633             }
634             set
635             {
636                 SetProperty(Slider.Property.VALUE_PRECISION, new Tizen.NUI.PropertyValue(value));
637             }
638         }
639
640         /// <summary>
641         /// Show popup property
642         /// </summary>
643         public bool ShowPopup
644         {
645             get
646             {
647                 bool temp = false;
648                 GetProperty(Slider.Property.SHOW_POPUP).Get(ref temp);
649                 return temp;
650             }
651             set
652             {
653                 SetProperty(Slider.Property.SHOW_POPUP, new Tizen.NUI.PropertyValue(value));
654             }
655         }
656
657         /// <summary>
658         /// Show value property
659         /// </summary>
660         public bool ShowValue
661         {
662             get
663             {
664                 bool temp = false;
665                 GetProperty(Slider.Property.SHOW_VALUE).Get(ref temp);
666                 return temp;
667             }
668             set
669             {
670                 SetProperty(Slider.Property.SHOW_VALUE, new Tizen.NUI.PropertyValue(value));
671             }
672         }
673
674         /// <summary>
675         /// Marks property
676         /// </summary>
677         public Tizen.NUI.PropertyArray Marks
678         {
679             get
680             {
681                 Tizen.NUI.PropertyArray temp = new Tizen.NUI.PropertyArray();
682                 GetProperty(Slider.Property.MARKS).Get(temp);
683                 return temp;
684             }
685             set
686             {
687                 SetProperty(Slider.Property.MARKS, new Tizen.NUI.PropertyValue(value));
688             }
689         }
690
691         /// <summary>
692         /// Snap to marks property
693         /// </summary>
694         public bool SnapToMarks
695         {
696             get
697             {
698                 bool temp = false;
699                 GetProperty(Slider.Property.SNAP_TO_MARKS).Get(ref temp);
700                 return temp;
701             }
702             set
703             {
704                 SetProperty(Slider.Property.SNAP_TO_MARKS, new Tizen.NUI.PropertyValue(value));
705             }
706         }
707
708         /// <summary>
709         /// Mark tolerance property
710         /// </summary>
711         public float MarkTolerance
712         {
713             get
714             {
715                 float temp = 0.0f;
716                 GetProperty(Slider.Property.MARK_TOLERANCE).Get(ref temp);
717                 return temp;
718             }
719             set
720             {
721                 SetProperty(Slider.Property.MARK_TOLERANCE, new Tizen.NUI.PropertyValue(value));
722             }
723         }
724
725     }
726
727 }