2 * Copyright(c) 2017 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 using System.ComponentModel;
19 using System.Runtime.InteropServices;
20 using Tizen.NUI.Binding;
22 namespace Tizen.NUI.BaseComponents
25 /// Base class for derived Scrollables that contains actors that can be scrolled manually
26 /// (via touch) or automatically.
28 /// <since_tizen> 3 </since_tizen>
29 public class Scrollable : View
31 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
32 [EditorBrowsable(EditorBrowsableState.Never)]
33 public static readonly BindableProperty OvershootEffectColorProperty = BindableProperty.Create("OvershootEffectColor", typeof(Vector4), typeof(Scrollable), Vector4.Zero, propertyChanged: (bindable, oldValue, newValue) =>
35 var scrollable = (Scrollable)bindable;
38 Tizen.NUI.Object.SetProperty(scrollable.swigCPtr, Scrollable.Property.OVERSHOOT_EFFECT_COLOR, new Tizen.NUI.PropertyValue((Vector4)newValue));
41 defaultValueCreator:(bindable) =>
43 var scrollable = (Scrollable)bindable;
44 Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
45 Tizen.NUI.Object.GetProperty(scrollable.swigCPtr, Scrollable.Property.OVERSHOOT_EFFECT_COLOR).Get(temp);
48 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
49 [EditorBrowsable(EditorBrowsableState.Never)]
50 public static readonly BindableProperty OvershootAnimationSpeedProperty = BindableProperty.Create("OvershootAnimationSpeed", typeof(float), typeof(Scrollable), default(float), propertyChanged: (bindable, oldValue, newValue) =>
52 var scrollable = (Scrollable)bindable;
55 Tizen.NUI.Object.SetProperty(scrollable.swigCPtr, Scrollable.Property.OVERSHOOT_ANIMATION_SPEED, new Tizen.NUI.PropertyValue((float)newValue));
58 defaultValueCreator:(bindable) =>
60 var scrollable = (Scrollable)bindable;
62 Tizen.NUI.Object.GetProperty(scrollable.swigCPtr, Scrollable.Property.OVERSHOOT_ANIMATION_SPEED).Get(out temp);
65 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
66 [EditorBrowsable(EditorBrowsableState.Never)]
67 public static readonly BindableProperty OvershootEnabledProperty = BindableProperty.Create("OvershootEnabled", typeof(bool), typeof(Scrollable), false, propertyChanged: (bindable, oldValue, newValue) =>
69 var scrollable = (Scrollable)bindable;
72 Tizen.NUI.Object.SetProperty(scrollable.swigCPtr, Scrollable.Property.OVERSHOOT_ENABLED, new Tizen.NUI.PropertyValue((bool)newValue));
75 defaultValueCreator:(bindable) =>
77 var scrollable = (Scrollable)bindable;
79 Tizen.NUI.Object.GetProperty(scrollable.swigCPtr, Scrollable.Property.OVERSHOOT_ENABLED).Get(out temp);
82 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
83 [EditorBrowsable(EditorBrowsableState.Never)]
84 public static readonly BindableProperty OvershootSizeProperty = BindableProperty.Create("OvershootSize", typeof(Vector2), typeof(Scrollable), Vector2.Zero, propertyChanged: (bindable, oldValue, newValue) =>
86 var scrollable = (Scrollable)bindable;
89 Tizen.NUI.Object.SetProperty(scrollable.swigCPtr, Scrollable.Property.OVERSHOOT_SIZE, new Tizen.NUI.PropertyValue((Vector2)newValue));
92 defaultValueCreator:(bindable) =>
94 var scrollable = (Scrollable)bindable;
95 Vector2 temp = new Vector2(0.0f, 0.0f);
96 Tizen.NUI.Object.GetProperty(scrollable.swigCPtr, Scrollable.Property.OVERSHOOT_SIZE).Get(temp);
99 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
100 [EditorBrowsable(EditorBrowsableState.Never)]
101 public static readonly BindableProperty ScrollToAlphaFunctionProperty = BindableProperty.Create("ScrollToAlphaFunction", typeof(int), typeof(Scrollable), default(int), propertyChanged: (bindable, oldValue, newValue) =>
103 var scrollable = (Scrollable)bindable;
104 if (newValue != null)
106 Tizen.NUI.Object.SetProperty(scrollable.swigCPtr, Scrollable.Property.SCROLL_TO_ALPHA_FUNCTION, new Tizen.NUI.PropertyValue((int)newValue));
109 defaultValueCreator:(bindable) =>
111 var scrollable = (Scrollable)bindable;
113 Tizen.NUI.Object.GetProperty(scrollable.swigCPtr, Scrollable.Property.SCROLL_TO_ALPHA_FUNCTION).Get(out temp);
116 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
117 [EditorBrowsable(EditorBrowsableState.Never)]
118 public static readonly BindableProperty ScrollRelativePositionProperty = BindableProperty.Create("ScrollRelativePosition", typeof(Vector2), typeof(Scrollable), Vector2.Zero, propertyChanged: (bindable, oldValue, newValue) =>
120 var scrollable = (Scrollable)bindable;
121 if (newValue != null)
123 Tizen.NUI.Object.SetProperty(scrollable.swigCPtr, Scrollable.Property.SCROLL_RELATIVE_POSITION, new Tizen.NUI.PropertyValue((Vector2)newValue));
126 defaultValueCreator:(bindable) =>
128 var scrollable = (Scrollable)bindable;
129 Vector2 temp = new Vector2(0.0f, 0.0f);
130 Tizen.NUI.Object.GetProperty(scrollable.swigCPtr, Scrollable.Property.SCROLL_RELATIVE_POSITION).Get(temp);
133 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
134 [EditorBrowsable(EditorBrowsableState.Never)]
135 public static readonly BindableProperty ScrollPositionMinProperty = BindableProperty.Create("ScrollPositionMin", typeof(Vector2), typeof(Scrollable), Vector2.Zero, propertyChanged: (bindable, oldValue, newValue) =>
137 var scrollable = (Scrollable)bindable;
138 if (newValue != null)
140 Tizen.NUI.Object.SetProperty(scrollable.swigCPtr, Scrollable.Property.SCROLL_POSITION_MIN, new Tizen.NUI.PropertyValue((Vector2)newValue));
143 defaultValueCreator:(bindable) =>
145 var scrollable = (Scrollable)bindable;
146 Vector2 temp = new Vector2(0.0f, 0.0f);
147 Tizen.NUI.Object.GetProperty(scrollable.swigCPtr, Scrollable.Property.SCROLL_POSITION_MIN).Get(temp);
150 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
151 [EditorBrowsable(EditorBrowsableState.Never)]
152 public static readonly BindableProperty ScrollPositionMaxProperty = BindableProperty.Create("ScrollPositionMax", typeof(Vector2), typeof(Scrollable), Vector2.Zero, propertyChanged: (bindable, oldValue, newValue) =>
154 var scrollable = (Scrollable)bindable;
155 if (newValue != null)
157 Tizen.NUI.Object.SetProperty(scrollable.swigCPtr, Scrollable.Property.SCROLL_POSITION_MAX, new Tizen.NUI.PropertyValue((Vector2)newValue));
160 defaultValueCreator:(bindable) =>
162 var scrollable = (Scrollable)bindable;
163 Vector2 temp = new Vector2(0.0f, 0.0f);
164 Tizen.NUI.Object.GetProperty(scrollable.swigCPtr, Scrollable.Property.SCROLL_POSITION_MAX).Get(temp);
167 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
168 [EditorBrowsable(EditorBrowsableState.Never)]
169 public static readonly BindableProperty CanScrollVerticalProperty = BindableProperty.Create("CanScrollVertical", typeof(bool), typeof(Scrollable), false, propertyChanged: (bindable, oldValue, newValue) =>
171 var scrollable = (Scrollable)bindable;
172 if (newValue != null)
174 Tizen.NUI.Object.SetProperty(scrollable.swigCPtr, Scrollable.Property.CAN_SCROLL_VERTICAL, new Tizen.NUI.PropertyValue((bool)newValue));
177 defaultValueCreator:(bindable) =>
179 var scrollable = (Scrollable)bindable;
181 Tizen.NUI.Object.GetProperty(scrollable.swigCPtr, Scrollable.Property.CAN_SCROLL_VERTICAL).Get(out temp);
184 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
185 [EditorBrowsable(EditorBrowsableState.Never)]
186 public static readonly BindableProperty CanScrollHorizontalProperty = BindableProperty.Create("CanScrollHorizontal", typeof(bool), typeof(Scrollable), false, propertyChanged: (bindable, oldValue, newValue) =>
188 var scrollable = (Scrollable)bindable;
189 if (newValue != null)
191 Tizen.NUI.Object.SetProperty(scrollable.swigCPtr, Scrollable.Property.CAN_SCROLL_HORIZONTAL, new Tizen.NUI.PropertyValue((bool)newValue));
194 defaultValueCreator:(bindable) =>
196 var scrollable = (Scrollable)bindable;
198 Tizen.NUI.Object.GetProperty(scrollable.swigCPtr, Scrollable.Property.CAN_SCROLL_HORIZONTAL).Get(out temp);
202 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
204 internal Scrollable(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.Scrollable_SWIGUpcast(cPtr), cMemoryOwn)
206 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
209 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Scrollable obj)
211 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
215 /// you can override it to clean-up your own resources.
217 /// <param name="type">DisposeTypes</param>
218 /// <since_tizen> 3 </since_tizen>
219 protected override void Dispose(DisposeTypes type)
226 if (type == DisposeTypes.Explicit)
229 //Release your own managed resources here.
230 //You should release all of your own disposable objects here.
234 //Release your own unmanaged resources here.
235 //You should not access any managed member here except static instance.
236 //because the execution order of Finalizes is non-deterministic.
239 DisConnectFromSignals();
242 if (swigCPtr.Handle != global::System.IntPtr.Zero)
247 NDalicPINVOKE.delete_Scrollable(swigCPtr);
249 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
255 private void DisConnectFromSignals()
257 // Save current CPtr.
258 global::System.Runtime.InteropServices.HandleRef currentCPtr = swigCPtr;
260 // Use BaseHandle CPtr as current might have been deleted already in derived classes.
261 swigCPtr = GetBaseHandleCPtrHandleRef;
263 if (_scrollableCompletedCallbackDelegate != null)
265 this.ScrollCompletedSignal().Disconnect(_scrollableCompletedCallbackDelegate);
268 if (_scrollableUpdatedCallbackDelegate != null)
270 this.ScrollUpdatedSignal().Disconnect(_scrollableUpdatedCallbackDelegate);
273 if (_scrollableStartedCallbackDelegate != null)
275 this.ScrollStartedSignal().Disconnect(_scrollableStartedCallbackDelegate);
278 // BaseHandle CPtr is used in Registry and there is danger of deletion if we keep using it here.
279 // Restore current CPtr.
280 swigCPtr = currentCPtr;
284 /// The scroll animation started event arguments.
286 /// <since_tizen> 3 </since_tizen>
287 public class StartedEventArgs : EventArgs
289 private Vector2 _vector2;
294 /// <since_tizen> 3 </since_tizen>
295 public Vector2 Vector2
309 /// The scrollable updated event arguments.
311 /// <since_tizen> 3 </since_tizen>
312 public class UpdatedEventArgs : EventArgs
314 private Vector2 _vector2;
319 /// <since_tizen> 3 </since_tizen>
320 public Vector2 Vector2
334 /// The scroll animation completed event arguments.
336 /// <since_tizen> 3 </since_tizen>
337 public class CompletedEventArgs : EventArgs
339 private Vector2 _vector2;
344 /// <since_tizen> 3 </since_tizen>
345 public Vector2 Vector2
358 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
359 private delegate void StartedCallbackDelegate(IntPtr vector2);
360 private DaliEventHandler<object, StartedEventArgs> _scrollableStartedEventHandler;
361 private StartedCallbackDelegate _scrollableStartedCallbackDelegate;
363 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
364 private delegate void UpdatedCallbackDelegate(IntPtr vector2);
365 private DaliEventHandler<object, UpdatedEventArgs> _scrollableUpdatedEventHandler;
366 private UpdatedCallbackDelegate _scrollableUpdatedCallbackDelegate;
368 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
369 private delegate void CompletedCallbackDelegate(IntPtr vector2);
370 private DaliEventHandler<object, CompletedEventArgs> _scrollableCompletedEventHandler;
371 private CompletedCallbackDelegate _scrollableCompletedCallbackDelegate;
374 /// The ScrollStarted event emitted when the Scrollable has moved (whether by touch or animation).
376 /// <since_tizen> 3 </since_tizen>
377 public event DaliEventHandler<object, StartedEventArgs> ScrollStarted
383 // Restricted to only one listener
384 if (_scrollableStartedEventHandler == null)
386 _scrollableStartedEventHandler += value;
388 _scrollableStartedCallbackDelegate = new StartedCallbackDelegate(OnStarted);
389 this.ScrollStartedSignal().Connect(_scrollableStartedCallbackDelegate);
398 if (_scrollableStartedEventHandler != null)
400 this.ScrollStartedSignal().Disconnect(_scrollableStartedCallbackDelegate);
403 _scrollableStartedEventHandler -= value;
408 private void OnStarted(IntPtr vector2)
410 StartedEventArgs e = new StartedEventArgs();
412 // Populate all members of "e" (StartedEventArgs) with real data
413 e.Vector2 = Tizen.NUI.Vector2.GetVector2FromPtr(vector2);
415 if (_scrollableStartedEventHandler != null)
417 //here we send all data to user event handlers
418 _scrollableStartedEventHandler(this, e);
424 /// The ScrollUpdated event emitted when the Scrollable has moved (whether by touch or animation).
426 /// <since_tizen> 3 </since_tizen>
427 public event DaliEventHandler<object, UpdatedEventArgs> ScrollUpdated
433 // Restricted to only one listener
434 if (_scrollableUpdatedEventHandler == null)
436 _scrollableUpdatedEventHandler += value;
438 _scrollableUpdatedCallbackDelegate = new UpdatedCallbackDelegate(OnUpdated);
439 this.ScrollUpdatedSignal().Connect(_scrollableUpdatedCallbackDelegate);
448 if (_scrollableUpdatedEventHandler != null)
450 this.ScrollUpdatedSignal().Disconnect(_scrollableUpdatedCallbackDelegate);
453 _scrollableUpdatedEventHandler -= value;
458 private void OnUpdated(IntPtr vector2)
460 UpdatedEventArgs e = new UpdatedEventArgs();
462 // Populate all members of "e" (UpdatedEventArgs) with real data
463 e.Vector2 = Tizen.NUI.Vector2.GetVector2FromPtr(vector2);
465 if (_scrollableUpdatedEventHandler != null)
467 //here we send all data to user event handlers
468 _scrollableUpdatedEventHandler(this, e);
474 /// The ScrollCompleted event emitted when the Scrollable has completed movement
475 /// (whether by touch or animation).
477 /// <since_tizen> 3 </since_tizen>
478 public event DaliEventHandler<object, CompletedEventArgs> ScrollCompleted
484 // Restricted to only one listener
485 if (_scrollableCompletedEventHandler == null)
487 _scrollableCompletedEventHandler += value;
489 _scrollableCompletedCallbackDelegate = new CompletedCallbackDelegate(OnCompleted);
490 this.ScrollCompletedSignal().Connect(_scrollableCompletedCallbackDelegate);
499 if (_scrollableCompletedEventHandler != null)
501 this.ScrollCompletedSignal().Disconnect(_scrollableCompletedCallbackDelegate);
504 _scrollableCompletedEventHandler -= value;
509 private void OnCompleted(IntPtr vector2)
511 CompletedEventArgs e = new CompletedEventArgs();
513 // Populate all members of "e" (CompletedEventArgs) with real data
514 e.Vector2 = Tizen.NUI.Vector2.GetVector2FromPtr(vector2);
516 if (_scrollableCompletedEventHandler != null)
518 //here we send all data to user event handlers
519 _scrollableCompletedEventHandler(this, e);
525 /// Enumeration for the instance of properties belonging to the Scrollable class.
527 /// <since_tizen> 3 </since_tizen>
528 public new class Property
531 /// The color of the overshoot effect.
533 /// <since_tizen> 3 </since_tizen>
534 public static readonly int OVERSHOOT_EFFECT_COLOR = NDalicPINVOKE.Scrollable_Property_OVERSHOOT_EFFECT_COLOR_get();
536 /// The speed of overshoot animation in pixels per second.
538 /// <since_tizen> 3 </since_tizen>
539 public static readonly int OVERSHOOT_ANIMATION_SPEED = NDalicPINVOKE.Scrollable_Property_OVERSHOOT_ANIMATION_SPEED_get();
541 /// Whether to enables or disable scroll overshoot.
543 /// <since_tizen> 3 </since_tizen>
544 public static readonly int OVERSHOOT_ENABLED = NDalicPINVOKE.Scrollable_Property_OVERSHOOT_ENABLED_get();
546 /// The size of the overshoot.
548 /// <since_tizen> 3 </since_tizen>
549 public static readonly int OVERSHOOT_SIZE = NDalicPINVOKE.Scrollable_Property_OVERSHOOT_SIZE_get();
551 /// scrollToAlphaFunction.
553 /// <since_tizen> 3 </since_tizen>
554 public static readonly int SCROLL_TO_ALPHA_FUNCTION = NDalicPINVOKE.Scrollable_Property_SCROLL_TO_ALPHA_FUNCTION_get();
556 /// scrollRelativePosition
558 /// <since_tizen> 3 </since_tizen>
559 public static readonly int SCROLL_RELATIVE_POSITION = NDalicPINVOKE.Scrollable_Property_SCROLL_RELATIVE_POSITION_get();
561 /// scrollPositionMin
563 /// <since_tizen> 3 </since_tizen>
564 public static readonly int SCROLL_POSITION_MIN = NDalicPINVOKE.Scrollable_Property_SCROLL_POSITION_MIN_get();
566 /// scrollPositionMinX.
568 /// <since_tizen> 3 </since_tizen>
569 public static readonly int SCROLL_POSITION_MIN_X = NDalicPINVOKE.Scrollable_Property_SCROLL_POSITION_MIN_X_get();
571 /// scrollPositionMinY.
573 /// <since_tizen> 3 </since_tizen>
574 public static readonly int SCROLL_POSITION_MIN_Y = NDalicPINVOKE.Scrollable_Property_SCROLL_POSITION_MIN_Y_get();
576 /// scrollPositionMax.
578 /// <since_tizen> 3 </since_tizen>
579 public static readonly int SCROLL_POSITION_MAX = NDalicPINVOKE.Scrollable_Property_SCROLL_POSITION_MAX_get();
581 /// scrollPositionMaxX.
583 /// <since_tizen> 3 </since_tizen>
584 public static readonly int SCROLL_POSITION_MAX_X = NDalicPINVOKE.Scrollable_Property_SCROLL_POSITION_MAX_X_get();
586 /// scrollPositionMaxY.
588 /// <since_tizen> 3 </since_tizen>
589 public static readonly int SCROLL_POSITION_MAX_Y = NDalicPINVOKE.Scrollable_Property_SCROLL_POSITION_MAX_Y_get();
591 /// canScrollVertical
593 /// <since_tizen> 3 </since_tizen>
594 public static readonly int CAN_SCROLL_VERTICAL = NDalicPINVOKE.Scrollable_Property_CAN_SCROLL_VERTICAL_get();
596 /// canScrollHorizontal.
598 /// <since_tizen> 3 </since_tizen>
599 public static readonly int CAN_SCROLL_HORIZONTAL = NDalicPINVOKE.Scrollable_Property_CAN_SCROLL_HORIZONTAL_get();
604 /// Create an instance of scrollable.
606 /// <since_tizen> 3 </since_tizen>
607 public Scrollable() : this(NDalicPINVOKE.new_Scrollable__SWIG_0(), true)
609 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
612 private bool IsOvershootEnabled()
614 bool ret = NDalicPINVOKE.Scrollable_IsOvershootEnabled(swigCPtr);
615 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
619 private void SetOvershootEnabled(bool enable)
621 NDalicPINVOKE.Scrollable_SetOvershootEnabled(swigCPtr, enable);
622 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
625 private void SetOvershootEffectColor(Vector4 color)
627 NDalicPINVOKE.Scrollable_SetOvershootEffectColor(swigCPtr, Vector4.getCPtr(color));
628 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
631 private Vector4 GetOvershootEffectColor()
633 Vector4 ret = new Vector4(NDalicPINVOKE.Scrollable_GetOvershootEffectColor(swigCPtr), true);
634 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
638 private void SetOvershootAnimationSpeed(float pixelsPerSecond)
640 NDalicPINVOKE.Scrollable_SetOvershootAnimationSpeed(swigCPtr, pixelsPerSecond);
641 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
644 private float GetOvershootAnimationSpeed()
646 float ret = NDalicPINVOKE.Scrollable_GetOvershootAnimationSpeed(swigCPtr);
647 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
651 internal ScrollableSignal ScrollStartedSignal()
653 ScrollableSignal ret = new ScrollableSignal(NDalicPINVOKE.Scrollable_ScrollStartedSignal(swigCPtr), false);
654 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
658 internal ScrollableSignal ScrollUpdatedSignal()
660 ScrollableSignal ret = new ScrollableSignal(NDalicPINVOKE.Scrollable_ScrollUpdatedSignal(swigCPtr), false);
661 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
665 internal ScrollableSignal ScrollCompletedSignal()
667 ScrollableSignal ret = new ScrollableSignal(NDalicPINVOKE.Scrollable_ScrollCompletedSignal(swigCPtr), false);
668 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
673 /// Sets and Gets the color of the overshoot effect.
675 /// <since_tizen> 3 </since_tizen>
676 public Vector4 OvershootEffectColor
680 return (Vector4)GetValue(OvershootEffectColorProperty);
684 SetValue(OvershootEffectColorProperty, value);
685 NotifyPropertyChanged();
690 /// Sets and Gets the speed of overshoot animation in pixels per second.
692 /// <since_tizen> 3 </since_tizen>
693 public float OvershootAnimationSpeed
697 return (float)GetValue(OvershootAnimationSpeedProperty);
701 SetValue(OvershootAnimationSpeedProperty, value);
702 NotifyPropertyChanged();
707 /// Checks if scroll overshoot has been enabled or not.
709 /// <since_tizen> 3 </since_tizen>
710 public bool OvershootEnabled
714 return (bool)GetValue(OvershootEnabledProperty);
718 SetValue(OvershootEnabledProperty, value);
719 NotifyPropertyChanged();
724 /// Gets and Sets OvershootSize property.
726 /// <since_tizen> 3 </since_tizen>
727 public Vector2 OvershootSize
731 return (Vector2)GetValue(OvershootSizeProperty);
735 SetValue(OvershootSizeProperty, value);
736 NotifyPropertyChanged();
741 /// Gets and Sets ScrollToAlphaFunction property.
743 /// <since_tizen> 3 </since_tizen>
744 public int ScrollToAlphaFunction
748 return (int)GetValue(ScrollToAlphaFunctionProperty);
752 SetValue(ScrollToAlphaFunctionProperty, value);
753 NotifyPropertyChanged();
758 /// Gets and Sets ScrollRelativePosition property.
760 /// <since_tizen> 3 </since_tizen>
761 public Vector2 ScrollRelativePosition
765 return (Vector2)GetValue(ScrollRelativePositionProperty);
769 SetValue(ScrollRelativePositionProperty, value);
770 NotifyPropertyChanged();
775 /// Gets and Sets ScrollPositionMin property.
777 /// <since_tizen> 3 </since_tizen>
778 public Vector2 ScrollPositionMin
782 return (Vector2)GetValue(ScrollPositionMinProperty);
786 SetValue(ScrollPositionMinProperty, value);
787 NotifyPropertyChanged();
792 /// Gets and Sets ScrollPositionMax property.
794 /// <since_tizen> 3 </since_tizen>
795 public Vector2 ScrollPositionMax
799 return (Vector2)GetValue(ScrollPositionMaxProperty);
803 SetValue(ScrollPositionMaxProperty, value);
804 NotifyPropertyChanged();
809 /// Gets and Sets CanScrollVertical property.
811 /// <since_tizen> 3 </since_tizen>
812 public bool CanScrollVertical
816 return (bool)GetValue(CanScrollVerticalProperty);
820 SetValue(CanScrollVerticalProperty, value);
821 NotifyPropertyChanged();
826 /// Gets and Sets CanScrollHorizontal property.
828 /// <since_tizen> 3 </since_tizen>
829 public bool CanScrollHorizontal
833 return (bool)GetValue(CanScrollHorizontalProperty);
837 SetValue(CanScrollHorizontalProperty, value);
838 NotifyPropertyChanged();