1 /** Copyright (c) 2017 Samsung Electronics Co., Ltd.
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
7 * http://www.apache.org/licenses/LICENSE-2.0
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.
16 // This File has been auto-generated by SWIG and then modified using DALi Ruby Scripts
17 //------------------------------------------------------------------------------
20 // This file was automatically generated by SWIG (http://www.swig.org).
23 // Do not make changes to this file unless you know what you are doing--modify
24 // the SWIG interface file instead.
25 //------------------------------------------------------------------------------
27 namespace Tizen.NUI.UIComponents
31 using System.Runtime.InteropServices;
32 using Tizen.NUI.BaseComponents;
35 /// Slider is a control to enable sliding an indicator between two values.
37 public class Slider : View
39 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
41 internal Slider(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.Slider_SWIGUpcast(cPtr), cMemoryOwn)
43 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
44 // By default, we do not want the position to use the anchor point
45 PositionUsesAnchorPoint = false;
48 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Slider obj)
50 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
56 protected override void Dispose(DisposeTypes type)
63 if (type == DisposeTypes.Explicit)
66 //Release your own managed resources here.
67 //You should release all of your own disposable objects here.
71 //Release your own unmanaged resources here.
72 //You should not access any managed member here except static instance.
73 //because the execution order of Finalizes is non-deterministic.
75 //Unreference this from if a static instance refer to this.
76 ViewRegistry.UnregisterView(this);
78 if (swigCPtr.Handle != global::System.IntPtr.Zero)
83 NDalicPINVOKE.delete_Slider(swigCPtr);
85 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
92 /// Value changed event arguments.
94 public class ValueChangedEventArgs : EventArgs
96 private Slider _slider;
97 private float _slideValue;
117 public float SlideValue
131 /// Sliding finished event arguments.
133 public class SlidingFinishedEventArgs : EventArgs
135 private Slider _slider;
136 private float _slideValue;
156 public float SlideValue
170 /// Mark reached event arguments.
172 public class MarkReachedEventArgs : EventArgs
174 private Slider _slider;
175 private int _slideValue;
195 public int SlideValue
209 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
210 private delegate bool ValueChangedCallbackDelegate(IntPtr slider, float slideValue);
211 private EventHandlerWithReturnType<object, ValueChangedEventArgs, bool> _sliderValueChangedEventHandler;
212 private ValueChangedCallbackDelegate _sliderValueChangedCallbackDelegate;
214 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
215 private delegate bool SlidingFinishedCallbackDelegate(IntPtr slider, float slideValue);
216 private EventHandlerWithReturnType<object, SlidingFinishedEventArgs, bool> _sliderSlidingFinishedEventHandler;
217 private SlidingFinishedCallbackDelegate _sliderSlidingFinishedCallbackDelegate;
219 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
220 private delegate bool MarkReachedCallbackDelegate(IntPtr slider, int slideValue);
221 private EventHandlerWithReturnType<object, MarkReachedEventArgs, bool> _sliderMarkReachedEventHandler;
222 private MarkReachedCallbackDelegate _sliderMarkReachedCallbackDelegate;
225 /// Event emitted when the slider value changes.
227 public event EventHandlerWithReturnType<object, ValueChangedEventArgs, bool> ValueChanged
231 if (_sliderValueChangedEventHandler == null)
233 _sliderValueChangedCallbackDelegate = (OnValueChanged);
234 ValueChangedSignal().Connect(_sliderValueChangedCallbackDelegate);
236 _sliderValueChangedEventHandler += value;
240 _sliderValueChangedEventHandler -= value;
241 if (_sliderValueChangedEventHandler == null && ValueChangedSignal().Empty() == false)
243 ValueChangedSignal().Disconnect(_sliderValueChangedCallbackDelegate);
248 // Callback for Slider ValueChanged signal
249 private bool OnValueChanged(IntPtr slider, float slideValue)
251 ValueChangedEventArgs e = new ValueChangedEventArgs();
253 // Populate all members of "e" (ValueChangedEventArgs) with real page
254 e.Slider = Slider.GetSliderFromPtr(slider);
255 e.SlideValue = slideValue;
257 if (_sliderValueChangedEventHandler != null)
259 //here we send all page to user event handlers
260 return _sliderValueChangedEventHandler(this, e);
266 /// Event emitted when the sliding is finished.
268 public event EventHandlerWithReturnType<object, SlidingFinishedEventArgs, bool> SlidingFinished
272 if (_sliderSlidingFinishedEventHandler == null)
274 _sliderSlidingFinishedCallbackDelegate = (OnSlidingFinished);
275 SlidingFinishedSignal().Connect(_sliderSlidingFinishedCallbackDelegate);
277 _sliderSlidingFinishedEventHandler += value;
281 _sliderSlidingFinishedEventHandler -= value;
282 if (_sliderSlidingFinishedEventHandler == null && SlidingFinishedSignal().Empty() == false)
284 SlidingFinishedSignal().Disconnect(_sliderSlidingFinishedCallbackDelegate);
289 // Callback for Slider SlidingFinished signal
290 private bool OnSlidingFinished(IntPtr slider, float slideValue)
292 SlidingFinishedEventArgs e = new SlidingFinishedEventArgs();
294 // Populate all members of "e" (SlidingFinishedEventArgs) with real page
295 e.Slider = Slider.GetSliderFromPtr(slider);
296 e.SlideValue = slideValue;
298 if (_sliderSlidingFinishedEventHandler != null)
300 //here we send all page to user event handlers
301 return _sliderSlidingFinishedEventHandler(this, e);
307 /// Event emitted when the slider handle reaches a mark.
309 public event EventHandlerWithReturnType<object, MarkReachedEventArgs, bool> MarkReached
313 if (_sliderMarkReachedEventHandler == null)
315 _sliderMarkReachedCallbackDelegate = (OnMarkReached);
316 MarkReachedSignal().Connect(_sliderMarkReachedCallbackDelegate);
318 _sliderMarkReachedEventHandler += value;
322 _sliderMarkReachedEventHandler -= value;
323 if (_sliderMarkReachedEventHandler == null && MarkReachedSignal().Empty() == false)
325 MarkReachedSignal().Disconnect(_sliderMarkReachedCallbackDelegate);
330 // Callback for Slider MarkReached signal
331 private bool OnMarkReached(IntPtr slider, int slideValue)
333 MarkReachedEventArgs e = new MarkReachedEventArgs();
335 // Populate all members of "e" (MarkReachedEventArgs) with real page
336 e.Slider = Slider.GetSliderFromPtr(slider);
337 e.SlideValue = slideValue;
339 if (_sliderMarkReachedEventHandler != null)
341 //here we send all page to user event handlers
342 return _sliderMarkReachedEventHandler(this, e);
348 /// Get Slider from the pointer.
350 /// <param name="cPtr">The pointer of Slider</param>
351 /// <returns>Object of Slider type</returns>
352 internal static Slider GetSliderFromPtr(global::System.IntPtr cPtr)
354 Slider ret = new Slider(cPtr, false);
355 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
359 internal class Property : global::System.IDisposable
361 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
362 protected bool swigCMemOwn;
364 internal Property(global::System.IntPtr cPtr, bool cMemoryOwn)
366 swigCMemOwn = cMemoryOwn;
367 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
370 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Property obj)
372 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
375 //A Flag to check who called Dispose(). (By User or DisposeQueue)
\r
376 private bool isDisposeQueued = false;
\r
377 //A Flat to check if it is already disposed.
\r
378 protected bool disposed = false;
382 if (!isDisposeQueued)
\r
384 isDisposeQueued = true;
\r
385 DisposeQueue.Instance.Add(this);
\r
389 public void Dispose()
\r
391 //Throw excpetion if Dispose() is called in separate thread.
\r
392 if (!Window.IsInstalled())
\r
394 throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread.");
\r
397 if (isDisposeQueued)
\r
399 Dispose(DisposeTypes.Implicit);
\r
403 Dispose(DisposeTypes.Explicit);
\r
404 System.GC.SuppressFinalize(this);
\r
408 protected virtual void Dispose(DisposeTypes type)
\r
415 if (type == DisposeTypes.Explicit)
\r
418 //Release your own managed resources here.
\r
419 //You should release all of your own disposable objects here.
\r
423 //Release your own unmanaged resources here.
\r
424 //You should not access any managed member here except static instance.
\r
425 //because the execution order of Finalizes is non-deterministic.
\r
427 if (swigCPtr.Handle != global::System.IntPtr.Zero)
\r
431 swigCMemOwn = false;
\r
432 NDalicPINVOKE.delete_Slider_Property(swigCPtr);
\r
434 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
\r
440 internal Property() : this(NDalicPINVOKE.new_Slider_Property(), true)
442 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
445 internal static readonly int LOWER_BOUND = NDalicPINVOKE.Slider_Property_LOWER_BOUND_get();
446 internal static readonly int UPPER_BOUND = NDalicPINVOKE.Slider_Property_UPPER_BOUND_get();
447 internal static readonly int VALUE = NDalicPINVOKE.Slider_Property_VALUE_get();
448 internal static readonly int TRACK_VISUAL = NDalicPINVOKE.Slider_Property_TRACK_VISUAL_get();
449 internal static readonly int HANDLE_VISUAL = NDalicPINVOKE.Slider_Property_HANDLE_VISUAL_get();
450 internal static readonly int PROGRESS_VISUAL = NDalicPINVOKE.Slider_Property_PROGRESS_VISUAL_get();
451 internal static readonly int POPUP_VISUAL = NDalicPINVOKE.Slider_Property_POPUP_VISUAL_get();
452 internal static readonly int POPUP_ARROW_VISUAL = NDalicPINVOKE.Slider_Property_POPUP_ARROW_VISUAL_get();
453 internal static readonly int DISABLED_COLOR = NDalicPINVOKE.Slider_Property_DISABLED_COLOR_get();
454 internal static readonly int VALUE_PRECISION = NDalicPINVOKE.Slider_Property_VALUE_PRECISION_get();
455 internal static readonly int SHOW_POPUP = NDalicPINVOKE.Slider_Property_SHOW_POPUP_get();
456 internal static readonly int SHOW_VALUE = NDalicPINVOKE.Slider_Property_SHOW_VALUE_get();
457 internal static readonly int MARKS = NDalicPINVOKE.Slider_Property_MARKS_get();
458 internal static readonly int SNAP_TO_MARKS = NDalicPINVOKE.Slider_Property_SNAP_TO_MARKS_get();
459 internal static readonly int MARK_TOLERANCE = NDalicPINVOKE.Slider_Property_MARK_TOLERANCE_get();
464 /// Creates the Slider control.
466 public Slider() : this(NDalicPINVOKE.Slider_New(), true)
468 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
471 internal Slider(Slider handle) : this(NDalicPINVOKE.new_Slider__SWIG_1(Slider.getCPtr(handle)), true)
473 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
476 internal Slider Assign(Slider handle)
478 Slider ret = new Slider(NDalicPINVOKE.Slider_Assign(swigCPtr, Slider.getCPtr(handle)), false);
479 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
484 /// Downcasts an Object handle to Slider.<br>
485 /// If handle points to a Slider, the downcast produces valid handle.<br>
486 /// If not, the returned handle is left uninitialized.<br>
488 /// <param name="handle">Handle to an object</param>
489 /// <returns>Handle to a Slider or an uninitialized handle</returns>
490 public new static Slider DownCast(BaseHandle handle)
492 Slider ret = new Slider(NDalicPINVOKE.Slider_DownCast(BaseHandle.getCPtr(handle)), true);
493 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
497 internal SliderValueChangedSignal ValueChangedSignal()
499 SliderValueChangedSignal ret = new SliderValueChangedSignal(NDalicPINVOKE.Slider_ValueChangedSignal(swigCPtr), false);
500 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
504 internal SliderValueChangedSignal SlidingFinishedSignal()
506 SliderValueChangedSignal ret = new SliderValueChangedSignal(NDalicPINVOKE.Slider_SlidingFinishedSignal(swigCPtr), false);
507 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
511 internal SliderMarkReachedSignal MarkReachedSignal()
513 SliderMarkReachedSignal ret = new SliderMarkReachedSignal(NDalicPINVOKE.Slider_MarkReachedSignal(swigCPtr), false);
514 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
518 internal enum PropertyRange
520 PROPERTY_START_INDEX = PropertyRanges.PROPERTY_REGISTRATION_START_INDEX,
521 PROPERTY_END_INDEX = View.PropertyRange.PROPERTY_START_INDEX + 1000
525 /// Lower bound property
527 public float LowerBound
532 GetProperty(Slider.Property.LOWER_BOUND).Get(ref temp);
537 SetProperty(Slider.Property.LOWER_BOUND, new Tizen.NUI.PropertyValue(value));
542 /// Upper bound property
544 public float UpperBound
549 GetProperty(Slider.Property.UPPER_BOUND).Get(ref temp);
554 SetProperty(Slider.Property.UPPER_BOUND, new Tizen.NUI.PropertyValue(value));
566 GetProperty(Slider.Property.VALUE).Get(ref temp);
571 SetProperty(Slider.Property.VALUE, new Tizen.NUI.PropertyValue(value));
576 /// Track visual property
578 public PropertyMap TrackVisual
582 PropertyMap temp = new PropertyMap();
583 GetProperty(Slider.Property.TRACK_VISUAL).Get(temp);
588 SetProperty(Slider.Property.TRACK_VISUAL, new Tizen.NUI.PropertyValue(value));
593 /// Handle visual property
595 public PropertyMap HandleVisual
599 PropertyMap temp = new PropertyMap();
600 GetProperty(Slider.Property.HANDLE_VISUAL).Get(temp);
605 SetProperty(Slider.Property.HANDLE_VISUAL, new Tizen.NUI.PropertyValue(value));
610 /// Progress visual property
612 public PropertyMap ProgressVisual
616 PropertyMap temp = new PropertyMap();
617 GetProperty(Slider.Property.PROGRESS_VISUAL).Get(temp);
622 SetProperty(Slider.Property.PROGRESS_VISUAL, new Tizen.NUI.PropertyValue(value));
627 /// Popup visual property
629 public PropertyMap PopupVisual
633 PropertyMap temp = new PropertyMap();
634 GetProperty(Slider.Property.POPUP_VISUAL).Get(temp);
639 SetProperty(Slider.Property.POPUP_VISUAL, new Tizen.NUI.PropertyValue(value));
644 /// Popup arrow visual property
646 public PropertyMap PopupArrowVisual
650 PropertyMap temp = new PropertyMap();
651 GetProperty(Slider.Property.POPUP_ARROW_VISUAL).Get(temp);
656 SetProperty(Slider.Property.POPUP_ARROW_VISUAL, new Tizen.NUI.PropertyValue(value));
661 /// Disable color property
663 public Vector4 DisabledColor
667 Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
668 GetProperty(Slider.Property.DISABLED_COLOR).Get(temp);
673 SetProperty(Slider.Property.DISABLED_COLOR, new Tizen.NUI.PropertyValue(value));
678 /// Value presicion property
680 public int ValuePrecision
685 GetProperty(Slider.Property.VALUE_PRECISION).Get(ref temp);
690 SetProperty(Slider.Property.VALUE_PRECISION, new Tizen.NUI.PropertyValue(value));
695 /// Show popup property
697 public bool ShowPopup
702 GetProperty(Slider.Property.SHOW_POPUP).Get(ref temp);
707 SetProperty(Slider.Property.SHOW_POPUP, new Tizen.NUI.PropertyValue(value));
712 /// Show value property
714 public bool ShowValue
719 GetProperty(Slider.Property.SHOW_VALUE).Get(ref temp);
724 SetProperty(Slider.Property.SHOW_VALUE, new Tizen.NUI.PropertyValue(value));
731 public Tizen.NUI.PropertyArray Marks
735 Tizen.NUI.PropertyArray temp = new Tizen.NUI.PropertyArray();
736 GetProperty(Slider.Property.MARKS).Get(temp);
741 SetProperty(Slider.Property.MARKS, new Tizen.NUI.PropertyValue(value));
746 /// Snap to marks property
748 public bool SnapToMarks
753 GetProperty(Slider.Property.SNAP_TO_MARKS).Get(ref temp);
758 SetProperty(Slider.Property.SNAP_TO_MARKS, new Tizen.NUI.PropertyValue(value));
763 /// Mark tolerance property
765 public float MarkTolerance
770 GetProperty(Slider.Property.MARK_TOLERANCE).Get(ref temp);
775 SetProperty(Slider.Property.MARK_TOLERANCE, new Tizen.NUI.PropertyValue(value));