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