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.Diagnostics.CodeAnalysis;
19 using System.ComponentModel;
20 using System.Runtime.InteropServices;
21 using Tizen.NUI.Binding;
23 namespace Tizen.NUI.BaseComponents
26 /// Base class for derived Scrollables that contains actors that can be scrolled manually
27 /// (via touch) or automatically.
29 /// <since_tizen> 3 </since_tizen>
30 public class Scrollable : View
32 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
33 [EditorBrowsable(EditorBrowsableState.Never)]
34 public static readonly BindableProperty OvershootEffectColorProperty = BindableProperty.Create(nameof(OvershootEffectColor), typeof(Vector4), typeof(Scrollable), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
36 var scrollable = (Scrollable)bindable;
39 Tizen.NUI.Object.SetProperty((HandleRef)scrollable.SwigCPtr, Scrollable.Property.OvershootEffectColor, new Tizen.NUI.PropertyValue((Vector4)newValue));
42 defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
44 var scrollable = (Scrollable)bindable;
45 Vector4 temp = new Vector4(0.0f, 0.0f, 0.0f, 0.0f);
46 Tizen.NUI.Object.GetProperty((HandleRef)scrollable.SwigCPtr, Scrollable.Property.OvershootEffectColor).Get(temp);
49 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
50 [EditorBrowsable(EditorBrowsableState.Never)]
51 public static readonly BindableProperty OvershootAnimationSpeedProperty = BindableProperty.Create(nameof(OvershootAnimationSpeed), typeof(float), typeof(Scrollable), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
53 var scrollable = (Scrollable)bindable;
56 Tizen.NUI.Object.SetProperty((HandleRef)scrollable.SwigCPtr, Scrollable.Property.OvershootAnimationSpeed, new Tizen.NUI.PropertyValue((float)newValue));
59 defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
61 var scrollable = (Scrollable)bindable;
63 Tizen.NUI.Object.GetProperty((HandleRef)scrollable.SwigCPtr, Scrollable.Property.OvershootAnimationSpeed).Get(out temp);
66 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
67 [EditorBrowsable(EditorBrowsableState.Never)]
68 public static readonly BindableProperty OvershootEnabledProperty = BindableProperty.Create(nameof(OvershootEnabled), typeof(bool), typeof(Scrollable), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
70 var scrollable = (Scrollable)bindable;
73 Tizen.NUI.Object.SetProperty((HandleRef)scrollable.SwigCPtr, Scrollable.Property.OvershootEnabled, new Tizen.NUI.PropertyValue((bool)newValue));
76 defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
78 var scrollable = (Scrollable)bindable;
80 Tizen.NUI.Object.GetProperty((HandleRef)scrollable.SwigCPtr, Scrollable.Property.OvershootEnabled).Get(out temp);
83 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
84 [EditorBrowsable(EditorBrowsableState.Never)]
85 public static readonly BindableProperty OvershootSizeProperty = BindableProperty.Create(nameof(OvershootSize), typeof(Vector2), typeof(Scrollable), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
87 var scrollable = (Scrollable)bindable;
90 Tizen.NUI.Object.SetProperty((HandleRef)scrollable.SwigCPtr, Scrollable.Property.OvershootSize, new Tizen.NUI.PropertyValue((Vector2)newValue));
93 defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
95 var scrollable = (Scrollable)bindable;
96 Vector2 temp = new Vector2(0.0f, 0.0f);
97 Tizen.NUI.Object.GetProperty((HandleRef)scrollable.SwigCPtr, Scrollable.Property.OvershootSize).Get(temp);
100 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
101 [EditorBrowsable(EditorBrowsableState.Never)]
102 public static readonly BindableProperty ScrollToAlphaFunctionProperty = BindableProperty.Create(nameof(ScrollToAlphaFunction), typeof(int), typeof(Scrollable), default(int), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
104 var scrollable = (Scrollable)bindable;
105 if (newValue != null)
107 Tizen.NUI.Object.SetProperty((HandleRef)scrollable.SwigCPtr, Scrollable.Property.ScrollToAlphaFunction, new Tizen.NUI.PropertyValue((int)newValue));
110 defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
112 var scrollable = (Scrollable)bindable;
114 Tizen.NUI.Object.GetProperty((HandleRef)scrollable.SwigCPtr, Scrollable.Property.ScrollToAlphaFunction).Get(out temp);
117 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
118 [EditorBrowsable(EditorBrowsableState.Never)]
119 public static readonly BindableProperty ScrollRelativePositionProperty = BindableProperty.Create(nameof(ScrollRelativePosition), typeof(Vector2), typeof(Scrollable), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
121 var scrollable = (Scrollable)bindable;
122 if (newValue != null)
124 Tizen.NUI.Object.SetProperty((HandleRef)scrollable.SwigCPtr, Scrollable.Property.ScrollRelativePosition, new Tizen.NUI.PropertyValue((Vector2)newValue));
127 defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
129 var scrollable = (Scrollable)bindable;
130 Vector2 temp = new Vector2(0.0f, 0.0f);
131 Tizen.NUI.Object.GetProperty((HandleRef)scrollable.SwigCPtr, Scrollable.Property.ScrollRelativePosition).Get(temp);
134 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
135 [EditorBrowsable(EditorBrowsableState.Never)]
136 public static readonly BindableProperty ScrollPositionMinProperty = BindableProperty.Create(nameof(ScrollPositionMin), typeof(Vector2), typeof(Scrollable), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
138 var scrollable = (Scrollable)bindable;
139 if (newValue != null)
141 Tizen.NUI.Object.SetProperty((HandleRef)scrollable.SwigCPtr, Scrollable.Property.ScrollPositionMin, new Tizen.NUI.PropertyValue((Vector2)newValue));
144 defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
146 var scrollable = (Scrollable)bindable;
147 Vector2 temp = new Vector2(0.0f, 0.0f);
148 Tizen.NUI.Object.GetProperty((HandleRef)scrollable.SwigCPtr, Scrollable.Property.ScrollPositionMin).Get(temp);
151 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
152 [EditorBrowsable(EditorBrowsableState.Never)]
153 public static readonly BindableProperty ScrollPositionMaxProperty = BindableProperty.Create(nameof(ScrollPositionMax), typeof(Vector2), typeof(Scrollable), null, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
155 var scrollable = (Scrollable)bindable;
156 if (newValue != null)
158 Tizen.NUI.Object.SetProperty((HandleRef)scrollable.SwigCPtr, Scrollable.Property.ScrollPositionMax, new Tizen.NUI.PropertyValue((Vector2)newValue));
161 defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
163 var scrollable = (Scrollable)bindable;
164 Vector2 temp = new Vector2(0.0f, 0.0f);
165 Tizen.NUI.Object.GetProperty((HandleRef)scrollable.SwigCPtr, Scrollable.Property.ScrollPositionMax).Get(temp);
168 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
169 [EditorBrowsable(EditorBrowsableState.Never)]
170 public static readonly BindableProperty CanScrollVerticalProperty = BindableProperty.Create(nameof(CanScrollVertical), typeof(bool), typeof(Scrollable), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
172 var scrollable = (Scrollable)bindable;
173 if (newValue != null)
175 Tizen.NUI.Object.SetProperty((HandleRef)scrollable.SwigCPtr, Scrollable.Property.CanScrollVertical, new Tizen.NUI.PropertyValue((bool)newValue));
178 defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
180 var scrollable = (Scrollable)bindable;
182 Tizen.NUI.Object.GetProperty((HandleRef)scrollable.SwigCPtr, Scrollable.Property.CanScrollVertical).Get(out temp);
185 /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
186 [EditorBrowsable(EditorBrowsableState.Never)]
187 public static readonly BindableProperty CanScrollHorizontalProperty = BindableProperty.Create(nameof(CanScrollHorizontal), typeof(bool), typeof(Scrollable), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
189 var scrollable = (Scrollable)bindable;
190 if (newValue != null)
192 Tizen.NUI.Object.SetProperty((HandleRef)scrollable.SwigCPtr, Scrollable.Property.CanScrollHorizontal, new Tizen.NUI.PropertyValue((bool)newValue));
195 defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
197 var scrollable = (Scrollable)bindable;
199 Tizen.NUI.Object.GetProperty((HandleRef)scrollable.SwigCPtr, Scrollable.Property.CanScrollHorizontal).Get(out temp);
203 private DaliEventHandler<object, StartedEventArgs> _scrollableStartedEventHandler;
204 private StartedCallbackDelegate _scrollableStartedCallbackDelegate;
205 private DaliEventHandler<object, UpdatedEventArgs> _scrollableUpdatedEventHandler;
206 private UpdatedCallbackDelegate _scrollableUpdatedCallbackDelegate;
207 private DaliEventHandler<object, CompletedEventArgs> _scrollableCompletedEventHandler;
208 private CompletedCallbackDelegate _scrollableCompletedCallbackDelegate;
211 /// Create an instance of scrollable.
213 /// <since_tizen> 3 </since_tizen>
214 public Scrollable() : this(Interop.Scrollable.NewScrollable(), true)
216 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
219 internal Scrollable(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
223 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
224 private delegate void StartedCallbackDelegate(IntPtr vector2);
226 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
227 private delegate void UpdatedCallbackDelegate(IntPtr vector2);
229 [UnmanagedFunctionPointer(CallingConvention.StdCall)]
230 private delegate void CompletedCallbackDelegate(IntPtr vector2);
233 /// The ScrollStarted event emitted when the Scrollable has moved (whether by touch or animation).
235 /// <since_tizen> 3 </since_tizen>
236 public event DaliEventHandler<object, StartedEventArgs> ScrollStarted
240 // Restricted to only one listener
241 if (_scrollableStartedEventHandler == null)
243 _scrollableStartedEventHandler += value;
245 _scrollableStartedCallbackDelegate = new StartedCallbackDelegate(OnStarted);
246 this.ScrollStartedSignal().Connect(_scrollableStartedCallbackDelegate);
252 if (_scrollableStartedEventHandler != null)
254 this.ScrollStartedSignal().Disconnect(_scrollableStartedCallbackDelegate);
257 _scrollableStartedEventHandler -= value;
262 /// The ScrollUpdated event emitted when the Scrollable has moved (whether by touch or animation).
264 /// <since_tizen> 3 </since_tizen>
265 public event DaliEventHandler<object, UpdatedEventArgs> ScrollUpdated
269 // Restricted to only one listener
270 if (_scrollableUpdatedEventHandler == null)
272 _scrollableUpdatedEventHandler += value;
274 _scrollableUpdatedCallbackDelegate = new UpdatedCallbackDelegate(OnUpdated);
275 this.ScrollUpdatedSignal().Connect(_scrollableUpdatedCallbackDelegate);
281 if (_scrollableUpdatedEventHandler != null)
283 this.ScrollUpdatedSignal().Disconnect(_scrollableUpdatedCallbackDelegate);
286 _scrollableUpdatedEventHandler -= value;
291 /// The ScrollCompleted event emitted when the Scrollable has completed movement
292 /// (whether by touch or animation).
294 /// <since_tizen> 3 </since_tizen>
295 public event DaliEventHandler<object, CompletedEventArgs> ScrollCompleted
299 // Restricted to only one listener
300 if (_scrollableCompletedEventHandler == null)
302 _scrollableCompletedEventHandler += value;
304 _scrollableCompletedCallbackDelegate = new CompletedCallbackDelegate(OnCompleted);
305 this.ScrollCompletedSignal().Connect(_scrollableCompletedCallbackDelegate);
311 if (_scrollableCompletedEventHandler != null)
313 this.ScrollCompletedSignal().Disconnect(_scrollableCompletedCallbackDelegate);
316 _scrollableCompletedEventHandler -= value;
321 /// Sets and Gets the color of the overshoot effect.
323 /// <since_tizen> 3 </since_tizen>
324 public Vector4 OvershootEffectColor
328 return (Vector4)GetValue(OvershootEffectColorProperty);
332 SetValue(OvershootEffectColorProperty, value);
333 NotifyPropertyChanged();
338 /// Sets and Gets the speed of overshoot animation in pixels per second.
340 /// <since_tizen> 3 </since_tizen>
341 public float OvershootAnimationSpeed
345 return (float)GetValue(OvershootAnimationSpeedProperty);
349 SetValue(OvershootAnimationSpeedProperty, value);
350 NotifyPropertyChanged();
355 /// Checks if scroll overshoot has been enabled or not.
357 /// <since_tizen> 3 </since_tizen>
358 public bool OvershootEnabled
362 return (bool)GetValue(OvershootEnabledProperty);
366 SetValue(OvershootEnabledProperty, value);
367 NotifyPropertyChanged();
372 /// Gets and Sets OvershootSize property.
374 /// <since_tizen> 3 </since_tizen>
375 public Vector2 OvershootSize
379 return (Vector2)GetValue(OvershootSizeProperty);
383 SetValue(OvershootSizeProperty, value);
384 NotifyPropertyChanged();
389 /// Gets and Sets ScrollToAlphaFunction property.
391 /// <since_tizen> 3 </since_tizen>
392 public int ScrollToAlphaFunction
396 return (int)GetValue(ScrollToAlphaFunctionProperty);
400 SetValue(ScrollToAlphaFunctionProperty, value);
401 NotifyPropertyChanged();
406 /// Gets and Sets ScrollRelativePosition property.
408 /// <since_tizen> 3 </since_tizen>
409 public Vector2 ScrollRelativePosition
413 return (Vector2)GetValue(ScrollRelativePositionProperty);
417 SetValue(ScrollRelativePositionProperty, value);
418 NotifyPropertyChanged();
423 /// Gets and Sets ScrollPositionMin property.
425 /// <since_tizen> 3 </since_tizen>
426 public Vector2 ScrollPositionMin
430 return (Vector2)GetValue(ScrollPositionMinProperty);
434 SetValue(ScrollPositionMinProperty, value);
435 NotifyPropertyChanged();
440 /// Gets and Sets ScrollPositionMax property.
442 /// <since_tizen> 3 </since_tizen>
443 public Vector2 ScrollPositionMax
447 return (Vector2)GetValue(ScrollPositionMaxProperty);
451 SetValue(ScrollPositionMaxProperty, value);
452 NotifyPropertyChanged();
457 /// Gets and Sets CanScrollVertical property.
459 /// <since_tizen> 3 </since_tizen>
460 public bool CanScrollVertical
464 return (bool)GetValue(CanScrollVerticalProperty);
468 SetValue(CanScrollVerticalProperty, value);
469 NotifyPropertyChanged();
474 /// Gets and Sets CanScrollHorizontal property.
476 /// <since_tizen> 3 </since_tizen>
477 public bool CanScrollHorizontal
481 return (bool)GetValue(CanScrollHorizontalProperty);
485 SetValue(CanScrollHorizontalProperty, value);
486 NotifyPropertyChanged();
490 internal ScrollableSignal ScrollStartedSignal()
492 ScrollableSignal ret = new ScrollableSignal(Interop.Scrollable.ScrollStartedSignal(SwigCPtr), false);
493 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
497 internal ScrollableSignal ScrollUpdatedSignal()
499 ScrollableSignal ret = new ScrollableSignal(Interop.Scrollable.ScrollUpdatedSignal(SwigCPtr), false);
500 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
504 internal ScrollableSignal ScrollCompletedSignal()
506 ScrollableSignal ret = new ScrollableSignal(Interop.Scrollable.ScrollCompletedSignal(SwigCPtr), false);
507 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
512 /// you can override it to clean-up your own resources.
514 /// <param name="type">DisposeTypes</param>
515 /// <since_tizen> 3 </since_tizen>
516 protected override void Dispose(DisposeTypes type)
523 //Release your own unmanaged resources here.
524 //You should not access any managed member here except static instance.
525 //because the execution order of Finalizes is non-deterministic.
528 DisConnectFromSignals();
534 /// This will not be public opened.
535 [EditorBrowsable(EditorBrowsableState.Never)]
536 protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
538 Interop.Scrollable.DeleteScrollable(swigCPtr);
541 private void DisConnectFromSignals()
543 // Save current CPtr.
544 global::System.Runtime.InteropServices.HandleRef currentCPtr = SwigCPtr;
546 // Use BaseHandle CPtr as current might have been deleted already in derived classes.
547 SwigCPtr = GetBaseHandleCPtrHandleRef;
549 if (_scrollableCompletedCallbackDelegate != null)
551 this.ScrollCompletedSignal().Disconnect(_scrollableCompletedCallbackDelegate);
554 if (_scrollableUpdatedCallbackDelegate != null)
556 this.ScrollUpdatedSignal().Disconnect(_scrollableUpdatedCallbackDelegate);
559 if (_scrollableStartedCallbackDelegate != null)
561 this.ScrollStartedSignal().Disconnect(_scrollableStartedCallbackDelegate);
564 // BaseHandle CPtr is used in Registry and there is danger of deletion if we keep using it here.
565 // Restore current CPtr.
566 SwigCPtr = currentCPtr;
569 private void OnStarted(IntPtr vector2)
571 StartedEventArgs e = new StartedEventArgs();
573 // Populate all members of "e" (StartedEventArgs) with real data
574 e.Vector2 = Tizen.NUI.Vector2.GetVector2FromPtr(vector2);
576 if (_scrollableStartedEventHandler != null)
578 //here we send all data to user event handlers
579 _scrollableStartedEventHandler(this, e);
584 private void OnUpdated(IntPtr vector2)
586 UpdatedEventArgs e = new UpdatedEventArgs();
588 // Populate all members of "e" (UpdatedEventArgs) with real data
589 e.Vector2 = Tizen.NUI.Vector2.GetVector2FromPtr(vector2);
591 if (_scrollableUpdatedEventHandler != null)
593 //here we send all data to user event handlers
594 _scrollableUpdatedEventHandler(this, e);
599 private void OnCompleted(IntPtr vector2)
601 CompletedEventArgs e = new CompletedEventArgs();
603 // Populate all members of "e" (CompletedEventArgs) with real data
604 e.Vector2 = Tizen.NUI.Vector2.GetVector2FromPtr(vector2);
606 if (_scrollableCompletedEventHandler != null)
608 //here we send all data to user event handlers
609 _scrollableCompletedEventHandler(this, e);
614 private bool IsOvershootEnabled()
616 bool ret = Interop.Scrollable.IsOvershootEnabled(SwigCPtr);
617 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
621 private void SetOvershootEnabled(bool enable)
623 Interop.Scrollable.SetOvershootEnabled(SwigCPtr, enable);
624 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
627 private void SetOvershootEffectColor(Vector4 color)
629 Interop.Scrollable.SetOvershootEffectColor(SwigCPtr, Vector4.getCPtr(color));
630 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
633 private Vector4 GetOvershootEffectColor()
635 Vector4 ret = new Vector4(Interop.Scrollable.GetOvershootEffectColor(SwigCPtr), true);
636 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
640 private void SetOvershootAnimationSpeed(float pixelsPerSecond)
642 Interop.Scrollable.SetOvershootAnimationSpeed(SwigCPtr, pixelsPerSecond);
643 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
646 private float GetOvershootAnimationSpeed()
648 float ret = Interop.Scrollable.GetOvershootAnimationSpeed(SwigCPtr);
649 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
654 /// The scroll animation started event arguments.
656 /// <since_tizen> 3 </since_tizen>
657 public class StartedEventArgs : EventArgs
659 private Vector2 _vector2;
664 /// <since_tizen> 3 </since_tizen>
665 public Vector2 Vector2
679 /// The scrollable updated event arguments.
681 /// <since_tizen> 3 </since_tizen>
682 public class UpdatedEventArgs : EventArgs
684 private Vector2 _vector2;
689 /// <since_tizen> 3 </since_tizen>
690 public Vector2 Vector2
704 /// The scroll animation completed event arguments.
706 /// <since_tizen> 3 </since_tizen>
707 public class CompletedEventArgs : EventArgs
709 private Vector2 _vector2;
714 /// <since_tizen> 3 </since_tizen>
715 public Vector2 Vector2
729 /// Enumeration for the instance of properties belonging to the Scrollable class.
731 internal new class Property
734 /// The color of the overshoot effect.
736 internal static readonly int OvershootEffectColor = Interop.Scrollable.OvershootEffectColorGet();
738 /// The speed of overshoot animation in pixels per second.
740 internal static readonly int OvershootAnimationSpeed = Interop.Scrollable.OvershootAnimationSpeedGet();
742 /// Whether to enables or disable scroll overshoot.
744 internal static readonly int OvershootEnabled = Interop.Scrollable.OvershootEnabledGet();
746 /// The size of the overshoot.
748 internal static readonly int OvershootSize = Interop.Scrollable.OvershootSizeGet();
750 /// scrollToAlphaFunction.
752 internal static readonly int ScrollToAlphaFunction = Interop.Scrollable.ScrollToAlphaFunctionGet();
754 /// scrollRelativePosition
756 internal static readonly int ScrollRelativePosition = Interop.Scrollable.ScrollRelativePositionGet();
758 /// scrollPositionMin
760 internal static readonly int ScrollPositionMin = Interop.Scrollable.ScrollPositionMinGet();
762 /// scrollPositionMinX.
764 internal static readonly int ScrollPositionMinX = Interop.Scrollable.ScrollPositionMinXGet();
766 /// scrollPositionMinY.
768 internal static readonly int ScrollPositionMinY = Interop.Scrollable.ScrollPositionMinYGet();
770 /// scrollPositionMax.
772 internal static readonly int ScrollPositionMax = Interop.Scrollable.ScrollPositionMaxGet();
774 /// scrollPositionMaxX.
776 internal static readonly int ScrollPositionMaxX = Interop.Scrollable.ScrollPositionMaxXGet();
778 /// scrollPositionMaxY.
780 internal static readonly int ScrollPositionMaxY = Interop.Scrollable.ScrollPositionMaxYGet();
782 /// canScrollVertical
784 internal static readonly int CanScrollVertical = Interop.Scrollable.CanScrollVerticalGet();
786 /// canScrollHorizontal.
788 internal static readonly int CanScrollHorizontal = Interop.Scrollable.CanScrollHorizontalGet();