[NUI] Fix Tizen.NUI.Samples build errors
authorDongsug Song <dongsug.song@samsung.com>
Fri, 26 Feb 2021 03:39:49 +0000 (12:39 +0900)
committerdongsug-song <35130733+dongsug-song@users.noreply.github.com>
Wed, 3 Mar 2021 07:56:53 +0000 (16:56 +0900)
13 files changed:
src/Tizen.NUI/src/internal/Common/ScrollViewSnapStartedSignal.cs [new file with mode: 0755]
src/Tizen.NUI/src/internal/Interop/Interop.ScrollView.cs
src/Tizen.NUI/src/public/Common/PropertyBuffer.cs
src/Tizen.NUI/src/public/Utility/DirectionBias.cs [moved from src/Tizen.NUI/src/public/UIComponents/DirectionBias.cs with 100% similarity]
src/Tizen.NUI/src/public/Utility/ScrollView.cs [new file with mode: 0755]
src/Tizen.NUI/src/public/Utility/ScrollViewBindableProperty.cs [new file with mode: 0755]
src/Tizen.NUI/src/public/Utility/ScrollViewEffect.cs [moved from src/Tizen.NUI/src/public/UIComponents/ScrollViewEffect.cs with 100% similarity]
src/Tizen.NUI/src/public/Utility/ScrollViewEvent.cs [new file with mode: 0755]
src/Tizen.NUI/src/public/Utility/ScrollViewPagePathEffect.cs [moved from src/Tizen.NUI/src/public/UIComponents/ScrollViewPagePathEffect.cs with 100% similarity]
test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/ContactCard/ClippedImage.cs
test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/ContactCard/ContactCard.cs
test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/ContactCard/MaskedImage.cs
test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/DaliDemo/DaliTableView.cs

diff --git a/src/Tizen.NUI/src/internal/Common/ScrollViewSnapStartedSignal.cs b/src/Tizen.NUI/src/internal/Common/ScrollViewSnapStartedSignal.cs
new file mode 100755 (executable)
index 0000000..f33a4af
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Copyright(c) 2021 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+namespace Tizen.NUI
+{
+    internal class ScrollViewSnapStartedSignal : Disposable
+    {
+        internal ScrollViewSnapStartedSignal(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
+        {
+        }
+
+        protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
+        {
+            Interop.ScrollView.DeleteScrollViewSnapStartedSignal(swigCPtr);
+        }
+
+        public bool Empty()
+        {
+            bool ret = Interop.ScrollView.ScrollViewSnapStartedSignalEmpty(SwigCPtr);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            return ret;
+        }
+
+        public uint GetConnectionCount()
+        {
+            uint ret = Interop.ScrollView.ScrollViewSnapStartedSignalGetConnectionCount(SwigCPtr);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            return ret;
+        }
+
+        public void Connect(System.Delegate func)
+        {
+            System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate<System.Delegate>(func);
+            {
+                Interop.ScrollView.ScrollViewSnapStartedSignalConnect(SwigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            }
+        }
+
+        public void Disconnect(System.Delegate func)
+        {
+            System.IntPtr ip = System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate<System.Delegate>(func);
+            {
+                Interop.ScrollView.ScrollViewSnapStartedSignalDisconnect(SwigCPtr, new System.Runtime.InteropServices.HandleRef(this, ip));
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            }
+        }
+
+        public void Emit(ScrollView.SnapEvent arg)
+        {
+            Interop.ScrollView.ScrollViewSnapStartedSignalEmit(SwigCPtr, ScrollView.SnapEvent.getCPtr(arg));
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        public ScrollViewSnapStartedSignal() : this(Interop.ScrollView.NewScrollViewSnapStartedSignal(), true)
+        {
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+    }
+}
index e01577b..bddac07 100755 (executable)
@@ -288,12 +288,6 @@ namespace Tizen.NUI
             [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_ScrollView_SetMaxFlickSpeed")]
             public static extern void SetMaxFlickSpeed(global::System.Runtime.InteropServices.HandleRef jarg1, float jarg2);
 
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_ScrollView_GetWheelScrollDistanceStep")]
-            public static extern global::System.IntPtr GetWheelScrollDistanceStep(global::System.Runtime.InteropServices.HandleRef jarg1);
-
-            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_ScrollView_SetWheelScrollDistanceStep")]
-            public static extern void SetWheelScrollDistanceStep(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);
-
             [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_ScrollView_GetCurrentScrollPosition")]
             public static extern global::System.IntPtr GetCurrentScrollPosition(global::System.Runtime.InteropServices.HandleRef jarg1);
 
index 85e46fd..d533e3d 100755 (executable)
@@ -49,7 +49,8 @@ namespace Tizen.NUI
         /// </summary>
         /// <param name="data">A pointer to the data that will be copied to the buffer.</param>
         /// <param name="size">Number of elements to expand or contract the buffer.</param>
-        internal void SetData(System.IntPtr data, uint size)
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetData(System.IntPtr data, uint size)
         {
             Interop.PropertyBuffer.SetData(SwigCPtr, data, size);
             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
diff --git a/src/Tizen.NUI/src/public/Utility/ScrollView.cs b/src/Tizen.NUI/src/public/Utility/ScrollView.cs
new file mode 100755 (executable)
index 0000000..0078219
--- /dev/null
@@ -0,0 +1,1142 @@
+/*
+ * Copyright(c) 2021 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+using System.ComponentModel;
+using Tizen.NUI.BaseComponents;
+
+namespace Tizen.NUI
+{
+    /// <summary>
+    /// ScrollView contains views that can be scrolled manually (via touch).
+    /// </summary>
+    [EditorBrowsable(EditorBrowsableState.Never)]
+    public partial class ScrollView : Scrollable
+    {
+
+        /// <summary>
+        /// Create an instance of ScrollView.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public ScrollView() : this(Interop.ScrollView.New(), true)
+        {
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        internal ScrollView(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
+        {
+        }
+
+        /// <summary>
+        /// Sets and Gets WrapEnabled property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public bool WrapEnabled
+        {
+            get
+            {
+                return (bool)GetValue(WrapEnabledProperty);
+            }
+            set
+            {
+                SetValue(WrapEnabledProperty, value);
+            }
+        }
+
+        /// <summary>
+        /// Sets and Gets PanningEnabled property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public bool PanningEnabled
+        {
+            get
+            {
+                return (bool)GetValue(PanningEnabledProperty);
+            }
+            set
+            {
+                SetValue(PanningEnabledProperty, value);
+            }
+        }
+
+        /// <summary>
+        /// Sets and Gets AxisAutoLockEnabled property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public bool AxisAutoLockEnabled
+        {
+            get
+            {
+                return (bool)GetValue(AxisAutoLockEnabledProperty);
+            }
+            set
+            {
+                SetValue(AxisAutoLockEnabledProperty, value);
+            }
+        }
+
+        /// <summary>
+        /// Sets and Gets WheelScrollDistanceStep property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Vector2 WheelScrollDistanceStep
+        {
+            get
+            {
+                return (Vector2)GetValue(WheelScrollDistanceStepProperty);
+            }
+            set
+            {
+                SetValue(WheelScrollDistanceStepProperty, value);
+            }
+        }
+
+        /// <summary>
+        /// Sets and Gets ScrollPosition property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Vector2 ScrollPosition
+        {
+            get
+            {
+                return (Vector2)GetValue(ScrollPositionProperty);
+            }
+            set
+            {
+                SetValue(ScrollPositionProperty, value);
+            }
+        }
+
+        /// <summary>
+        /// Sets and Gets ScrollPrePosition property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Vector2 ScrollPrePosition
+        {
+            get
+            {
+                return (Vector2)GetValue(ScrollPrePositionProperty);
+            }
+            set
+            {
+                SetValue(ScrollPrePositionProperty, value);
+            }
+        }
+
+        /// <summary>
+        /// Sets and Gets ScrollPrePositionMax property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Vector2 ScrollPrePositionMax
+        {
+            get
+            {
+                return (Vector2)GetValue(ScrollPrePositionMaxProperty);
+            }
+            set
+            {
+                SetValue(ScrollPrePositionMaxProperty, value);
+            }
+        }
+
+        /// <summary>
+        /// Sets and Gets OvershootX property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public float OvershootX
+        {
+            get
+            {
+                return (float)GetValue(OvershootXProperty);
+            }
+            set
+            {
+                SetValue(OvershootXProperty, value);
+            }
+        }
+
+        /// <summary>
+        /// Sets and Gets OvershootY property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public float OvershootY
+        {
+            get
+            {
+                return (float)GetValue(OvershootYProperty);
+            }
+            set
+            {
+                SetValue(OvershootYProperty, value);
+            }
+        }
+
+        /// <summary>
+        /// Sets and Gets ScrollFinal property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Vector2 ScrollFinal
+        {
+            get
+            {
+                return (Vector2)GetValue(ScrollFinalProperty);
+            }
+            set
+            {
+                SetValue(ScrollFinalProperty, value);
+            }
+        }
+
+        /// <summary>
+        /// Sets and Gets Wrap property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public bool Wrap
+        {
+            get
+            {
+                return (bool)GetValue(WrapProperty);
+            }
+            set
+            {
+                SetValue(WrapProperty, value);
+            }
+        }
+
+        /// <summary>
+        /// Sets and Gets Panning property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public bool Panning
+        {
+            get
+            {
+                return (bool)GetValue(PanningProperty);
+            }
+            set
+            {
+                SetValue(PanningProperty, value);
+            }
+        }
+
+        /// <summary>
+        /// Sets and Gets Scrolling property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public bool Scrolling
+        {
+            get
+            {
+                return (bool)GetValue(ScrollingProperty);
+            }
+            set
+            {
+                SetValue(ScrollingProperty, value);
+            }
+        }
+
+        /// <summary>
+        /// Sets and Gets ScrollDomainSize property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Vector2 ScrollDomainSize
+        {
+            get
+            {
+                return (Vector2)GetValue(ScrollDomainSizeProperty);
+            }
+            set
+            {
+                SetValue(ScrollDomainSizeProperty, value);
+            }
+        }
+
+        /// <summary>
+        /// Sets and Gets ScrollDomainOffset property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Vector2 ScrollDomainOffset
+        {
+            get
+            {
+                return (Vector2)GetValue(ScrollDomainOffsetProperty);
+            }
+            set
+            {
+                SetValue(ScrollDomainOffsetProperty, value);
+            }
+        }
+
+        /// <summary>
+        /// Sets and Gets ScrollPositionDelta property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Vector2 ScrollPositionDelta
+        {
+            get
+            {
+                return (Vector2)GetValue(ScrollPositionDeltaProperty);
+            }
+            set
+            {
+                SetValue(ScrollPositionDeltaProperty, value);
+            }
+        }
+
+        /// <summary>
+        /// Sets and Gets StartPagePosition property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Vector3 StartPagePosition
+        {
+            get
+            {
+                return (Vector3)GetValue(StartPagePositionProperty);
+            }
+            set
+            {
+                SetValue(StartPagePositionProperty, value);
+            }
+        }
+
+
+        /// <summary>
+        /// Sets and Gets ScrollMode property.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public PropertyMap ScrollMode
+        {
+            get
+            {
+                return (PropertyMap)GetValue(ScrollModeProperty);
+            }
+            set
+            {
+                SetValue(ScrollModeProperty, value);
+            }
+        }
+
+        /// <summary>
+        /// Gets snap-animation's AlphaFunction.
+        /// </summary>
+        /// <returns>Current easing alpha function of the snap animation.</returns>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public AlphaFunction GetScrollSnapAlphaFunction()
+        {
+            AlphaFunction ret = new AlphaFunction(Interop.ScrollView.GetScrollSnapAlphaFunction(SwigCPtr), true);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            return ret;
+        }
+
+        /// <summary>
+        /// Sets snap-animation's AlphaFunction.
+        /// </summary>
+        /// <param name="alpha">Easing alpha function of the snap animation.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetScrollSnapAlphaFunction(AlphaFunction alpha)
+        {
+            Interop.ScrollView.SetScrollSnapAlphaFunction(SwigCPtr, AlphaFunction.getCPtr(alpha));
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Gets flick-animation's AlphaFunction.
+        /// </summary>
+        /// <returns>Current easing alpha function of the flick animation.</returns>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public AlphaFunction GetScrollFlickAlphaFunction()
+        {
+            AlphaFunction ret = new AlphaFunction(Interop.ScrollView.GetScrollFlickAlphaFunction(SwigCPtr), true);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            return ret;
+        }
+
+        /// <summary>
+        /// Sets flick-animation's AlphaFunction.
+        /// </summary>
+        /// <param name="alpha">Easing alpha function of the flick animation.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetScrollFlickAlphaFunction(AlphaFunction alpha)
+        {
+            Interop.ScrollView.SetScrollFlickAlphaFunction(SwigCPtr, AlphaFunction.getCPtr(alpha));
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Gets the time for the scroll snap-animation.
+        /// </summary>
+        /// <returns>The time in seconds for the animation to take.</returns>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public float GetScrollSnapDuration()
+        {
+            float ret = Interop.ScrollView.GetScrollSnapDuration(SwigCPtr);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            return ret;
+        }
+
+        /// <summary>
+        /// Sets the time for the scroll snap-animation.
+        /// </summary>
+        /// <param name="time">The time in seconds for the animation to take.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetScrollSnapDuration(float time)
+        {
+            Interop.ScrollView.SetScrollSnapDuration(SwigCPtr, time);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Gets the time for the scroll flick-animation.
+        /// </summary>
+        /// <returns>The time in seconds for the animation to take.</returns>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public float GetScrollFlickDuration()
+        {
+            float ret = Interop.ScrollView.GetScrollFlickDuration(SwigCPtr);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            return ret;
+        }
+
+        /// <summary>
+        /// Sets the time for the scroll snap-animation.
+        /// </summary>
+        /// <param name="time">The time in seconds for the animation to take.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetScrollFlickDuration(float time)
+        {
+            Interop.ScrollView.SetScrollFlickDuration(SwigCPtr, time);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Sets scroll sensibility of pan gesture.
+        /// </summary>
+        /// <param name="sensitive">True to enable scroll, false to disable scrolling.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetScrollSensitive(bool sensitive)
+        {
+            Interop.ScrollView.SetScrollSensitive(SwigCPtr, sensitive);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Sets maximum overshoot amount.
+        /// </summary>
+        /// <param name="overshootX">The maximum number of horizontally scrolled pixels before overshoot X reaches 1.0f.</param>
+        /// <param name="overshootY">The maximum number of vertically scrolled pixels before overshoot X reaches 1.0f.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetMaxOvershoot(float overshootX, float overshootY)
+        {
+            Interop.ScrollView.SetMaxOvershoot(SwigCPtr, overshootX, overshootY);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Sets Snap Overshoot animation's AlphaFunction.
+        /// </summary>
+        /// <param name="alpha">Easing alpha function of the overshoot snap animation.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetSnapOvershootAlphaFunction(AlphaFunction alpha)
+        {
+            Interop.ScrollView.SetSnapOvershootAlphaFunction(SwigCPtr, AlphaFunction.getCPtr(alpha));
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Sets Snap Overshoot animation's Duration.
+        /// </summary>
+        /// <param name="duration">duration The duration of the overshoot snap animation.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetSnapOvershootDuration(float duration)
+        {
+            Interop.ScrollView.SetSnapOvershootDuration(SwigCPtr, duration);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Enables or Disables Actor Auto-Snap mode.<br />
+        /// When Actor Auto-Snap mode has been enabled, ScrollView will automatically,
+        /// snap to the closest actor (The closest actor will appear in the center of the ScrollView).
+        /// </summary>
+        /// <param name="enable">Enables (true), or disables (false) Actor AutoSnap.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetViewAutoSnap(bool enable)
+        {
+            Interop.ScrollView.SetActorAutoSnap(SwigCPtr, enable);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Enables or Disables Wrap mode for ScrollView contents.<br />
+        /// When enabled, the ScrollView contents are wrapped over the X/Y Domain.
+        /// </summary>
+        /// <param name="enable">Enables (true), or disables (false) Wrap Mode.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetWrapMode(bool enable)
+        {
+            Interop.ScrollView.SetWrapMode(SwigCPtr, enable);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Gets the current distance needed to scroll for ScrollUpdatedSignal to be emitted.
+        /// </summary>
+        /// <returns>Current scroll update distance.</returns>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public int GetScrollUpdateDistance()
+        {
+            int ret = Interop.ScrollView.GetScrollUpdateDistance(SwigCPtr);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            return ret;
+        }
+
+        /// <summary>
+        /// Sets the distance needed to scroll for ScrollUpdatedSignal to be emitted.<br />
+        /// The scroll update distance tells ScrollView how far to move before ScrollUpdatedSignal the informs application.<br />
+        /// Each time the ScrollView crosses this distance the signal will be emitted.<br />
+        /// </summary>
+        /// <param name="distance">The distance for ScrollView to move before emitting update signal.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetScrollUpdateDistance(int distance)
+        {
+            Interop.ScrollView.SetScrollUpdateDistance(SwigCPtr, distance);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Returns state of Axis Auto Lock mode.
+        /// </summary>
+        /// <returns>Whether Axis Auto Lock mode has been enabled or not.</returns>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public bool GetAxisAutoLock()
+        {
+            bool ret = Interop.ScrollView.GetAxisAutoLock(SwigCPtr);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            return ret;
+        }
+
+        /// <summary>
+        /// Enables or Disables Axis Auto Lock mode for panning within the ScrollView.<br />
+        /// When enabled, any pan gesture that appears mostly horizontal or mostly
+        /// vertical, will be automatically restricted to horizontal only or vertical
+        /// only panning, until the pan gesture has completed.
+        /// </summary>
+        /// <param name="enable">Enables (true), or disables (false) AxisAutoLock mode.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetAxisAutoLock(bool enable)
+        {
+            Interop.ScrollView.SetAxisAutoLock(SwigCPtr, enable);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Gets the gradient threshold at which a panning gesture should be locked to the Horizontal or Vertical axis.
+        /// </summary>
+        /// <returns>The gradient, a value between 0.0 and 1.0f.</returns>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public float GetAxisAutoLockGradient()
+        {
+            float ret = Interop.ScrollView.GetAxisAutoLockGradient(SwigCPtr);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            return ret;
+        }
+
+        /// <summary>
+        /// Sets the gradient threshold at which a panning gesture should be locked to the Horizontal or Vertical axis.<br />
+        /// By default, this is 0.36 (0.36:1) which means angles less than 20 degrees to an axis will lock to that axis.<br />
+        /// </summary>
+        /// <param name="gradient">gradient A value between 0.0 and 1.0 (auto-lock for all angles).</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetAxisAutoLockGradient(float gradient)
+        {
+            Interop.ScrollView.SetAxisAutoLockGradient(SwigCPtr, gradient);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Gets the friction coefficient setting for ScrollView when flicking in free panning mode.
+        /// This is a value in stage-diagonals per second^2, stage-diagonal = Length( stage.width, stage.height )
+        /// </summary>
+        /// <returns>Friction coefficient is returned.</returns>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public float GetFrictionCoefficient()
+        {
+            float ret = Interop.ScrollView.GetFrictionCoefficient(SwigCPtr);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            return ret;
+        }
+
+        /// <summary>
+        /// Sets the friction coefficient for ScrollView when flicking.<br />
+        /// </summary>
+        /// <param name="friction">Friction coefficient must be greater than 0.0 (default = 1.0).</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetFrictionCoefficient(float friction)
+        {
+            Interop.ScrollView.SetFrictionCoefficient(SwigCPtr, friction);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Gets the flick speed coefficient for ScrollView when flicking in free panning mode.<br />
+        /// This is a constant which multiplies the input touch flick velocity to determine the actual velocity at which to move the scrolling area.
+        /// </summary>
+        /// <returns>The flick speed coefficient is returned.</returns>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public float GetFlickSpeedCoefficient()
+        {
+            float ret = Interop.ScrollView.GetFlickSpeedCoefficient(SwigCPtr);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            return ret;
+        }
+
+        /// <summary>
+        /// Sets the flick speed coefficient for ScrollView when flicking in free panning mode.<br />
+        /// This is a constant which multiplies the input touch flick velocity to determine the actual velocity at
+        /// which to move the scrolling area.<br />
+        /// </summary>
+        /// <param name="speed">The flick speed coefficient (default = 1.0).</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetFlickSpeedCoefficient(float speed)
+        {
+            Interop.ScrollView.SetFlickSpeedCoefficient(SwigCPtr, speed);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Gets the minimum pan distance required for a flick gesture in pixels.<br />
+        /// </summary>
+        /// <returns>Minimum pan distance vector with separate x and y distance.</returns>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Vector2 GetMinimumDistanceForFlick()
+        {
+            Vector2 ret = new Vector2(Interop.ScrollView.GetMinimumDistanceForFlick(SwigCPtr), true);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            return ret;
+        }
+
+        /// <summary>
+        /// Sets the minimum pan distance required for a flick in pixels.<br />
+        /// Takes a Vector2 containing separate x and y values. As long as the pan distance exceeds one of these axes, a flick will be allowed.
+        /// </summary>
+        /// <param name="distance">The flick speed coefficient (default = 1.0).</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetMinimumDistanceForFlick(Vector2 distance)
+        {
+            Interop.ScrollView.SetMinimumDistanceForFlick(SwigCPtr, Vector2.getCPtr(distance));
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Returns the minimum pan speed required for a flick gesture in pixels per second.
+        /// </summary>
+        /// <returns>Minimum pan speed.</returns>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public float GetMinimumSpeedForFlick()
+        {
+            float ret = Interop.ScrollView.GetMinimumSpeedForFlick(SwigCPtr);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            return ret;
+        }
+
+        /// <summary>
+        /// Sets the minimum pan speed required for a flick in pixels per second.<br />
+        /// </summary>
+        /// <param name="speed">The minimum pan speed for a flick.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetMinimumSpeedForFlick(float speed)
+        {
+            Interop.ScrollView.SetMinimumSpeedForFlick(SwigCPtr, speed);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Gets the maximum flick speed setting for ScrollView when flicking in free panning mode.<br />
+        /// This is a value in stage-diagonals per second.
+        /// </summary>
+        /// <returns>Maximum flick speed is returned.</returns>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public float GetMaxFlickSpeed()
+        {
+            float ret = Interop.ScrollView.GetMaxFlickSpeed(SwigCPtr);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            return ret;
+        }
+
+        /// <summary>
+        /// Sets the maximum flick speed for the ScrollView when flicking in free panning mode.<br />
+        /// This is a value in stage-diagonals per second. stage-diagonal = Length( stage.width, stage.height ).<br />
+        /// </summary>
+        /// <param name="speed">Maximum flick speed (default = 3.0).</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetMaxFlickSpeed(float speed)
+        {
+            Interop.ScrollView.SetMaxFlickSpeed(SwigCPtr, speed);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Retrieves current scroll position.<br />
+        /// </summary>
+        /// <returns>The current scroll position.</returns>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Vector2 GetCurrentScrollPosition()
+        {
+            Vector2 ret = new Vector2(Interop.ScrollView.GetCurrentScrollPosition(SwigCPtr), true);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            return ret;
+        }
+
+        /// <summary>
+        /// Retrieves current scroll page based on ScrollView dimensions being the size of one page, and all pages laid out in<br />
+        /// a grid fashion, increasing from left to right until the end of the X-domain.
+        /// </summary>
+        /// <returns>The current scroll position.</returns>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public uint GetCurrentPage()
+        {
+            uint ret = Interop.ScrollView.GetCurrentPage(SwigCPtr);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            return ret;
+        }
+
+        /// <summary>
+        /// Scrolls View to position specified (contents will scroll to this position).
+        /// </summary>
+        /// <param name="position">The position to scroll to.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void ScrollTo(Vector2 position)
+        {
+            Interop.ScrollView.ScrollToVector2(SwigCPtr, Vector2.getCPtr(position));
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Scrolls View to position specified (contents will scroll to this position).
+        /// </summary>
+        /// <param name="position">The position to scroll to.</param>
+        /// <param name="duration">The duration of the animation in seconds.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void ScrollTo(Vector2 position, float duration)
+        {
+            Interop.ScrollView.ScrollTo(SwigCPtr, Vector2.getCPtr(position), duration);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Scrolls View to position specified (contents will scroll to this position).
+        /// </summary>
+        /// <param name="position">The position to scroll to.</param>
+        /// <param name="duration">The duration of the animation in seconds.</param>
+        /// <param name="alpha">The alpha function to use.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void ScrollTo(Vector2 position, float duration, AlphaFunction alpha)
+        {
+            Interop.ScrollView.ScrollTo(SwigCPtr, Vector2.getCPtr(position), duration, AlphaFunction.getCPtr(alpha));
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Scrolls View to position specified (contents will scroll to this position).
+        /// </summary>
+        /// <param name="position">The position to scroll to.</param>
+        /// <param name="duration">The duration of the animation in seconds.</param>
+        /// <param name="horizontalBias">Whether to bias scrolling to left or right.</param>
+        /// <param name="verticalBias">Whether to bias scrolling to top or bottom.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void ScrollTo(Vector2 position, float duration, DirectionBias horizontalBias, DirectionBias verticalBias)
+        {
+            Interop.ScrollView.ScrollTo(SwigCPtr, Vector2.getCPtr(position), duration, (int)horizontalBias, (int)verticalBias);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Scrolls View to position specified (contents will scroll to this position).
+        /// </summary>
+        /// <param name="position">The position to scroll to.</param>
+        /// <param name="duration">The duration of the animation in seconds.</param>
+        /// <param name="alpha">Alpha function to use.</param>
+        /// <param name="horizontalBias">Whether to bias scrolling to left or right.</param>
+        /// <param name="verticalBias">Whether to bias scrolling to top or bottom.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void ScrollTo(Vector2 position, float duration, AlphaFunction alpha, DirectionBias horizontalBias, DirectionBias verticalBias)
+        {
+            Interop.ScrollView.ScrollTo(SwigCPtr, Vector2.getCPtr(position), duration, AlphaFunction.getCPtr(alpha), (int)horizontalBias, (int)verticalBias);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Scrolls View to position specified (contents will scroll to this position).
+        /// </summary>
+        /// <param name="page">The page to scroll to.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void ScrollTo(uint page)
+        {
+            Interop.ScrollView.ScrollTo(SwigCPtr, page);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Scrolls View to position specified (contents will scroll to this position).
+        /// </summary>
+        /// <param name="page">The page to scroll to.</param>
+        /// <param name="duration">The duration of the animation in seconds.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void ScrollTo(uint page, float duration)
+        {
+            Interop.ScrollView.ScrollTo(SwigCPtr, page, duration);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Scrolls View to position specified (contents will scroll to this position).
+        /// </summary>
+        /// <param name="page">The page to scroll to.</param>
+        /// <param name="duration">The duration of the animation in seconds.</param>
+        /// <param name="bias">Whether to bias scrolling to left or right.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void ScrollTo(uint page, float duration, DirectionBias bias)
+        {
+            Interop.ScrollView.ScrollTo(SwigCPtr, page, duration, (int)bias);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Scrolls View to position specified (contents will scroll to this position).
+        /// </summary>
+        /// <param name="view">The view to center in on (via Scrolling).</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void ScrollTo(View view)
+        {
+            Interop.ScrollView.ScrollToView(SwigCPtr, View.getCPtr(view));
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Scrolls View to position specified (contents will scroll to this position).
+        /// </summary>
+        /// <param name="view">The view to center in on (via Scrolling).</param>
+        /// <param name="duration">The duration of the animation in seconds.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void ScrollTo(View view, float duration)
+        {
+            Interop.ScrollView.ScrollToViewDuration(SwigCPtr, View.getCPtr(view), duration);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Scrolls View to the nearest snap points as specified by the Rulers.<br />
+        /// If already at snap points, then will return false, and not scroll.<br />
+        /// </summary>
+        /// <returns>True if Snapping necessary.</returns>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public bool ScrollToSnapPoint()
+        {
+            bool ret = Interop.ScrollView.ScrollToSnapPoint(SwigCPtr);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            return ret;
+        }
+
+        /// <summary>
+        /// Applies Effect to ScrollView.
+        /// </summary>
+        /// <param name="effect">The effect to apply to scroll view.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void ApplyEffect(ScrollViewEffect effect)
+        {
+            Interop.ScrollView.ApplyEffect(SwigCPtr, ScrollViewEffect.getCPtr(effect));
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Removes Effect from ScrollView.
+        /// </summary>
+        /// <param name="effect">The effect to remove.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void RemoveEffect(ScrollViewEffect effect)
+        {
+            Interop.ScrollView.RemoveEffect(SwigCPtr, ScrollViewEffect.getCPtr(effect));
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Remove All Effects from ScrollView.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void RemoveAllEffects()
+        {
+            Interop.ScrollView.RemoveAllEffects(SwigCPtr);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Binds view to this ScrollView.
+        /// Once an actor is bound to a ScrollView, it will be subject to that ScrollView's properties.
+        /// </summary>
+        /// <param name="child">The view to add to this ScrollView.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void BindView(View child)
+        {
+            Interop.ScrollView.BindActor(SwigCPtr, View.getCPtr(child));
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Unbinds view to this ScrollView.
+        /// Once an actor is bound to a ScrollView, it will be subject to that ScrollView's properties.
+        /// </summary>
+        /// <param name="child">The view to remove to this ScrollView.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void UnbindView(View child)
+        {
+            Interop.ScrollView.UnbindActor(SwigCPtr, View.getCPtr(child));
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Allows the user to constrain the scroll view in a particular direction.
+        /// </summary>
+        /// <param name="direction">The axis to constrain the scroll-view to.</param>
+        /// <param name="threshold">The threshold to apply around the axis.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetScrollingDirection(Radian direction, Radian threshold)
+        {
+            Interop.ScrollView.SetScrollingDirection(SwigCPtr, Radian.getCPtr(direction), Radian.getCPtr(threshold));
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Allows the user to constrain the scroll view in a particular direction.
+        /// </summary>
+        /// <param name="direction">The axis to constrain the scroll-view to.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetScrollingDirection(Radian direction)
+        {
+            Interop.ScrollView.SetScrollingDirection(SwigCPtr, Radian.getCPtr(direction));
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Removes a direction constraint from the scroll view.
+        /// </summary>
+        /// <param name="direction">The axis to constrain the scroll-view to.</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void RemoveScrollingDirection(Radian direction)
+        {
+            Interop.ScrollView.RemoveScrollingDirection(SwigCPtr, Radian.getCPtr(direction));
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Set ruler X
+        /// </summary>
+        /// This will be public opened in next tizen after ACR done. Before ACR, need to be hidden as inhouse API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetRulerX(RulerPtr ruler)
+        {
+            Interop.ScrollView.SetRulerX(SwigCPtr, RulerPtr.getCPtr(ruler));
+        }
+
+        /// <summary>
+        /// Set ruler Y
+        /// </summary>
+        /// This will be public opened in next tizen after ACR done. Before ACR, need to be hidden as inhouse API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetRulerY(RulerPtr ruler)
+        {
+            Interop.ScrollView.SetRulerY(SwigCPtr, RulerPtr.getCPtr(ruler));
+        }
+
+        internal void ApplyConstraintToChildren(SWIGTYPE_p_Dali__Constraint constraint)
+        {
+            Interop.ScrollView.ApplyConstraintToChildren(SwigCPtr, SWIGTYPE_p_Dali__Constraint.getCPtr(constraint));
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Dispose
+        /// </summary>
+        /// <param name="type">the dispose type</param>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        protected override void Dispose(DisposeTypes type)
+        {
+            if (disposed)
+            {
+                return;
+            }
+
+            //Release your own unmanaged resources here.
+            //You should not access any managed member here except static instance.
+            //because the execution order of Finalizes is non-deterministic.
+
+            if (this != null && scrollViewSnapStartedCallbackDelegate != null)
+            {
+                ScrollViewSnapStartedSignal snapStarted = this.SnapStartedSignal();
+                snapStarted?.Disconnect(scrollViewSnapStartedCallbackDelegate);
+                snapStarted?.Dispose();
+            }
+
+            base.Dispose(type);
+        }
+
+        /// This will not be public opened.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
+        {
+            Interop.ScrollView.DeleteScrollView(swigCPtr);
+        }
+
+        /// <summary>
+        /// This should be internal, please do not use.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+#pragma warning disable CA1716, CA1052, CA1034 // Identifiers should not match keywords
+        public new class Property
+#pragma warning restore CA1716, CA1052, CA1034 // Identifiers should not match keywords
+        {
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int WrapEnabled = Interop.ScrollView.WrapEnabledGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int PanningEnabled = Interop.ScrollView.PanningEnabledGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int AxisAutoLockEnabled = Interop.ScrollView.AxisAutoLockEnabledGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int WheelScrollDistanceStep = Interop.ScrollView.WheelScrollDistanceStepGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int ScrollMode = Interop.ScrollView.ScrollModeGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int ScrollPosition = Interop.ScrollView.ScrollPositionGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int ScrollPrePosition = Interop.ScrollView.ScrollPrePositionGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int ScrollPrePositionX = Interop.ScrollView.ScrollPrePositionXGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int ScrollPrePositionY = Interop.ScrollView.ScrollPrePositionYGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int ScrollPrePositionMax = Interop.ScrollView.ScrollPrePositionMaxGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int ScrollPrePositionMaxX = Interop.ScrollView.ScrollPrePositionMaxXGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int ScrollPrePositionMaxY = Interop.ScrollView.ScrollPrePositionMaxYGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int OvershootX = Interop.ScrollView.OvershootXGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int OvershootY = Interop.ScrollView.OvershootYGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int ScrollFinal = Interop.ScrollView.ScrollFinalGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int ScrollFinalX = Interop.ScrollView.ScrollFinalXGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int ScrollFinalY = Interop.ScrollView.ScrollFinalYGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int WRAP = Interop.ScrollView.WrapGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int PANNING = Interop.ScrollView.PanningGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int SCROLLING = Interop.ScrollView.ScrollingGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int ScrollDomainSize = Interop.ScrollView.ScrollDomainSizeGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int ScrollDomainSizeX = Interop.ScrollView.ScrollDomainSizeXGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int ScrollDomainSizeY = Interop.ScrollView.ScrollDomainSizeYGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int ScrollDomainOffset = Interop.ScrollView.ScrollDomainOffsetGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int ScrollPositionDelta = Interop.ScrollView.ScrollPositionDeltaGet();
+            /// <summary>
+            /// This should be internal, please do not use.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static readonly int StartPagePosition = Interop.ScrollView.StartPagePositionGet();
+        }
+    }
+}
diff --git a/src/Tizen.NUI/src/public/Utility/ScrollViewBindableProperty.cs b/src/Tizen.NUI/src/public/Utility/ScrollViewBindableProperty.cs
new file mode 100755 (executable)
index 0000000..f7521ba
--- /dev/null
@@ -0,0 +1,319 @@
+/*
+ * Copyright(c) 2021 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+using System;
+using System.ComponentModel;
+using Tizen.NUI.Binding;
+
+namespace Tizen.NUI
+{
+    /// <summary>
+    /// ScrollView contains views that can be scrolled manually (via touch).
+    /// </summary>
+    public partial class ScrollView
+    {
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty WrapEnabledProperty = BindableProperty.Create(nameof(WrapEnabled), typeof(bool), typeof(ScrollView), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            if (newValue != null)
+            {
+                Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.WrapEnabled, new Tizen.NUI.PropertyValue((bool)newValue));
+            }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            bool temp = false;
+            Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.WrapEnabled).Get(out temp);
+            return temp;
+        }));
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty PanningEnabledProperty = BindableProperty.Create(nameof(PanningEnabled), typeof(bool), typeof(ScrollView), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            if (newValue != null)
+            {
+                Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.PanningEnabled, new Tizen.NUI.PropertyValue((bool)newValue));
+            }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            bool temp = false;
+            Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.PanningEnabled).Get(out temp);
+            return temp;
+        }));
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty AxisAutoLockEnabledProperty = BindableProperty.Create(nameof(AxisAutoLockEnabled), typeof(bool), typeof(ScrollView), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            if (newValue != null)
+            {
+                Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.AxisAutoLockEnabled, new Tizen.NUI.PropertyValue((bool)newValue));
+            }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            bool temp = false;
+            Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.AxisAutoLockEnabled).Get(out temp);
+            return temp;
+        }));
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty WheelScrollDistanceStepProperty = BindableProperty.Create(nameof(WheelScrollDistanceStep), typeof(Vector2), typeof(ScrollView), Vector2.Zero, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            if (newValue != null)
+            {
+                Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.WheelScrollDistanceStep, new Tizen.NUI.PropertyValue((Vector2)newValue));
+            }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            Vector2 temp = new Vector2(0.0f, 0.0f);
+            Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.WheelScrollDistanceStep).Get(temp);
+            return temp;
+        }));
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty ScrollPositionProperty = BindableProperty.Create(nameof(ScrollPosition), typeof(Vector2), typeof(ScrollView), Vector2.Zero, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            if (newValue != null)
+            {
+                Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.ScrollPosition, new Tizen.NUI.PropertyValue((Vector2)newValue));
+            }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            Vector2 temp = new Vector2(0.0f, 0.0f);
+            Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.ScrollPosition).Get(temp);
+            return temp;
+        }));
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty ScrollPrePositionProperty = BindableProperty.Create(nameof(ScrollPrePosition), typeof(Vector2), typeof(ScrollView), Vector2.Zero, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            if (newValue != null)
+            {
+                Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.ScrollPrePosition, new Tizen.NUI.PropertyValue((Vector2)newValue));
+            }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            Vector2 temp = new Vector2(0.0f, 0.0f);
+            Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.ScrollPrePosition).Get(temp);
+            return temp;
+        }));
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty ScrollPrePositionMaxProperty = BindableProperty.Create(nameof(ScrollPrePositionMax), typeof(Vector2), typeof(ScrollView), Vector2.Zero, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            if (newValue != null)
+            {
+                Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.ScrollPrePositionMax, new Tizen.NUI.PropertyValue((Vector2)newValue));
+            }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            Vector2 temp = new Vector2(0.0f, 0.0f);
+            Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.ScrollPrePositionMax).Get(temp);
+            return temp;
+        }));
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty OvershootXProperty = BindableProperty.Create(nameof(OvershootX), typeof(float), typeof(ScrollView), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            if (newValue != null)
+            {
+                Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.OvershootX, new Tizen.NUI.PropertyValue((float)newValue));
+            }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            float temp = 0.0f;
+            Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.OvershootX).Get(out temp);
+            return temp;
+        }));
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty OvershootYProperty = BindableProperty.Create(nameof(OvershootY), typeof(float), typeof(ScrollView), default(float), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            if (newValue != null)
+            {
+                Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.OvershootY, new Tizen.NUI.PropertyValue((float)newValue));
+            }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            float temp = 0.0f;
+            Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.OvershootY).Get(out temp);
+            return temp;
+        }));
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty ScrollFinalProperty = BindableProperty.Create(nameof(ScrollFinal), typeof(Vector2), typeof(ScrollView), Vector2.Zero, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            if (newValue != null)
+            {
+                Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.ScrollFinal, new Tizen.NUI.PropertyValue((Vector2)newValue));
+            }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            Vector2 temp = new Vector2(0.0f, 0.0f);
+            Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.ScrollFinal).Get(temp);
+            return temp;
+        }));
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty WrapProperty = BindableProperty.Create(nameof(Wrap), typeof(bool), typeof(ScrollView), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            if (newValue != null)
+            {
+                Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.WRAP, new Tizen.NUI.PropertyValue((bool)newValue));
+            }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            bool temp = false;
+            Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.WRAP).Get(out temp);
+            return temp;
+        }));
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty PanningProperty = BindableProperty.Create(nameof(Panning), typeof(bool), typeof(ScrollView), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            if (newValue != null)
+            {
+                Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.PANNING, new Tizen.NUI.PropertyValue((bool)newValue));
+            }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            bool temp = false;
+            Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.PANNING).Get(out temp);
+            return temp;
+        }));
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty ScrollingProperty = BindableProperty.Create(nameof(Scrolling), typeof(bool), typeof(ScrollView), false, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            if (newValue != null)
+            {
+                Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.SCROLLING, new Tizen.NUI.PropertyValue((bool)newValue));
+            }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            bool temp = false;
+            Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.SCROLLING).Get(out temp);
+            return temp;
+        }));
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty ScrollDomainSizeProperty = BindableProperty.Create(nameof(ScrollDomainSize), typeof(Vector2), typeof(ScrollView), Vector2.Zero, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            if (newValue != null)
+            {
+                Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.ScrollDomainSize, new Tizen.NUI.PropertyValue((Vector2)newValue));
+            }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            Vector2 temp = new Vector2(0.0f, 0.0f);
+            Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.ScrollDomainSize).Get(temp);
+            return temp;
+        }));
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty ScrollDomainOffsetProperty = BindableProperty.Create(nameof(ScrollDomainOffset), typeof(Vector2), typeof(ScrollView), Vector2.Zero, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            if (newValue != null)
+            {
+                Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.ScrollDomainOffset, new Tizen.NUI.PropertyValue((Vector2)newValue));
+            }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            Vector2 temp = new Vector2(0.0f, 0.0f);
+            Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.ScrollDomainOffset).Get(temp);
+            return temp;
+        }));
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty ScrollPositionDeltaProperty = BindableProperty.Create(nameof(ScrollPositionDelta), typeof(Vector2), typeof(ScrollView), Vector2.Zero, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            if (newValue != null)
+            {
+                Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.ScrollPositionDelta, new Tizen.NUI.PropertyValue((Vector2)newValue));
+            }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            Vector2 temp = new Vector2(0.0f, 0.0f);
+            Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.ScrollPositionDelta).Get(temp);
+            return temp;
+        }));
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty StartPagePositionProperty = BindableProperty.Create(nameof(StartPagePosition), typeof(Vector3), typeof(ScrollView), Vector3.Zero, propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            if (newValue != null)
+            {
+                Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.StartPagePosition, new Tizen.NUI.PropertyValue((Vector3)newValue));
+            }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            Vector3 temp = new Vector3(0.0f, 0.0f, 0.0f);
+            Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.StartPagePosition).Get(temp);
+            return temp;
+        }));
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly BindableProperty ScrollModeProperty = BindableProperty.Create(nameof(ScrollMode), typeof(PropertyMap), typeof(ScrollView), new PropertyMap(), propertyChanged: (BindableProperty.BindingPropertyChangedDelegate)((bindable, oldValue, newValue) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            if (newValue != null)
+            {
+                Tizen.NUI.Object.SetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.ScrollMode, new Tizen.NUI.PropertyValue((PropertyMap)newValue));
+            }
+        }),
+        defaultValueCreator: (BindableProperty.CreateDefaultValueDelegate)((bindable) =>
+        {
+            var scrollView = (ScrollView)bindable;
+            PropertyValue value = Tizen.NUI.Object.GetProperty((System.Runtime.InteropServices.HandleRef)scrollView.SwigCPtr, ScrollView.Property.ScrollMode);
+            PropertyMap map = new PropertyMap();
+            value.Get(map);
+            return map;
+        }));
+    }
+}
diff --git a/src/Tizen.NUI/src/public/Utility/ScrollViewEvent.cs b/src/Tizen.NUI/src/public/Utility/ScrollViewEvent.cs
new file mode 100755 (executable)
index 0000000..686928e
--- /dev/null
@@ -0,0 +1,249 @@
+/*
+ * Copyright(c) 2021 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+using System;
+using System.ComponentModel;
+using System.Runtime.InteropServices;
+
+namespace Tizen.NUI
+{
+    /// <summary>
+    /// ScrollView contains views that can be scrolled manually (via touch).
+    /// </summary>
+    public partial class ScrollView
+    {
+        private DaliEventHandler<object, SnapStartedEventArgs> scrollViewSnapStartedEventHandler;
+        private SnapStartedCallbackDelegate scrollViewSnapStartedCallbackDelegate;
+
+        [UnmanagedFunctionPointer(CallingConvention.StdCall)]
+        private delegate void SnapStartedCallbackDelegate(IntPtr data);
+
+        /// <summary>
+        /// SnapStarted can be used to subscribe or unsubscribe the event handler
+        /// The SnapStarted signal is emitted when the ScrollView has started to snap or flick (it tells the target
+        ///  position, scale, rotation for the snap or flick).
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public event DaliEventHandler<object, SnapStartedEventArgs> SnapStarted
+        {
+            add
+            {
+                // Restricted to only one listener
+                if (scrollViewSnapStartedEventHandler == null)
+                {
+                    scrollViewSnapStartedEventHandler += value;
+
+                    scrollViewSnapStartedCallbackDelegate = new SnapStartedCallbackDelegate(OnSnapStarted);
+                    ScrollViewSnapStartedSignal snapStarted = this.SnapStartedSignal();
+                    snapStarted?.Connect(scrollViewSnapStartedCallbackDelegate);
+                    snapStarted?.Dispose();
+                }
+            }
+
+            remove
+            {
+                if (scrollViewSnapStartedEventHandler != null)
+                {
+                    ScrollViewSnapStartedSignal snapStarted = this.SnapStartedSignal();
+                    snapStarted?.Disconnect(scrollViewSnapStartedCallbackDelegate);
+                    snapStarted?.Dispose();
+                }
+
+                scrollViewSnapStartedEventHandler -= value;
+            }
+        }
+
+        internal ScrollViewSnapStartedSignal SnapStartedSignal()
+        {
+            ScrollViewSnapStartedSignal ret = new ScrollViewSnapStartedSignal(Interop.ScrollView.SnapStartedSignal(SwigCPtr), false);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            return ret;
+        }
+
+        // Callback for ScrollView SnapStarted signal
+        private void OnSnapStarted(IntPtr data)
+        {
+            SnapStartedEventArgs e = new SnapStartedEventArgs();
+
+            // Populate all members of "e" (SnapStartedEventArgs) with real data
+            e.SnapEventInfo = SnapEvent.GetSnapEventFromPtr(data);
+
+            if (scrollViewSnapStartedEventHandler != null)
+            {
+                //here we send all data to user event handlers
+                scrollViewSnapStartedEventHandler(this, e);
+            }
+        }
+
+        /// <summary>
+        /// Snaps signal event's data.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")]
+        public class SnapEvent : Disposable
+        {
+            /// <summary>
+            /// swigCMemOwn
+            /// </summary>
+            [global::System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:Do not declare visible instance fields")]
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            protected bool swigCMemOwn;
+            private global::System.Runtime.InteropServices.HandleRef swigCPtr;
+
+            /// <summary>
+            /// Create an instance of SnapEvent.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public SnapEvent() : this(Interop.ScrollView.NewScrollViewSnapEvent(), true)
+            {
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            }
+
+            internal SnapEvent(global::System.IntPtr cPtr, bool cMemoryOwn)
+            {
+                swigCMemOwn = cMemoryOwn;
+                swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
+            }
+
+            /// <summary>
+            /// Scroll position.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public Vector2 position
+            {
+                set
+                {
+                    Interop.ScrollView.SnapEventPositionSet(swigCPtr, Vector2.getCPtr(value));
+                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+                }
+                get
+                {
+                    global::System.IntPtr cPtr = Interop.ScrollView.SnapEventPositionGet(swigCPtr);
+                    Vector2 ret = (cPtr == global::System.IntPtr.Zero) ? null : new Vector2(cPtr, false);
+                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw new InvalidOperationException("FATAL: get Exception", NDalicPINVOKE.SWIGPendingException.Retrieve());
+                    return ret;
+                }
+            }
+
+            /// <summary>
+            /// Scroll duration.
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public float duration
+            {
+                set
+                {
+                    Interop.ScrollView.SnapEventDurationSet(swigCPtr, value);
+                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+                }
+                get
+                {
+                    float ret = Interop.ScrollView.SnapEventDurationGet(swigCPtr);
+                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw new InvalidOperationException("FATAL: get Exception", NDalicPINVOKE.SWIGPendingException.Retrieve());
+                    return ret;
+                }
+            }
+
+            internal SnapType type
+            {
+                set
+                {
+                    Interop.ScrollView.SnapEventTypeSet(swigCPtr, (int)value);
+                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+                }
+                get
+                {
+                    SnapType ret = (SnapType)Interop.ScrollView.SnapEventTypeGet(swigCPtr);
+                    if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+                    return ret;
+                }
+            }
+
+            /// <summary>
+            /// Get SnapEvent From Ptr
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public static SnapEvent GetSnapEventFromPtr(global::System.IntPtr cPtr)
+            {
+                SnapEvent ret = new SnapEvent(cPtr, false);
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+                return ret;
+            }
+
+            internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SnapEvent obj)
+            {
+                return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
+            }
+
+            /// <summary>
+            /// Dispose
+            /// </summary>
+            /// <param name="type">the dispose type</param>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            protected override void Dispose(DisposeTypes type)
+            {
+                if (disposed)
+                {
+                    return;
+                }
+
+                //Release your own unmanaged resources here.
+                //You should not access any managed member here except static instance.
+                //because the execution order of Finalizes is non-deterministic.
+
+                if (swigCPtr.Handle != global::System.IntPtr.Zero)
+                {
+                    if (swigCMemOwn)
+                    {
+                        swigCMemOwn = false;
+                        Interop.ScrollView.DeleteScrollViewSnapEvent(swigCPtr);
+                    }
+                    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
+                }
+
+                base.Dispose(type);
+            }
+
+        }
+
+        /// <summary>
+        /// Event arguments that passed via the SnapStarted signal.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")]
+        public class SnapStartedEventArgs : EventArgs
+        {
+            private Tizen.NUI.ScrollView.SnapEvent snapEvent;
+
+            /// <summary>
+            /// SnapEventInfo is the SnapEvent information like snap or flick (it tells the target position, scale, rotation for the snap or flick).
+            /// </summary>
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public Tizen.NUI.ScrollView.SnapEvent SnapEventInfo
+            {
+                get
+                {
+                    return snapEvent;
+                }
+                set
+                {
+                    snapEvent = value;
+                }
+            }
+        }
+    }
+}
index aeb175c..ae5cd7c 100755 (executable)
@@ -3,7 +3,6 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
-using Tizen.NUI.UIComponents;
 using Tizen.NUI.BaseComponents;
 using System.Runtime.InteropServices;
 
index 35c39fb..ee9c691 100755 (executable)
@@ -4,7 +4,6 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using Tizen.NUI.BaseComponents;
-using Tizen.NUI.UIComponents;
 
 namespace Tizen.NUI.Samples
 {
index 15a1aaf..635697a 100755 (executable)
@@ -4,7 +4,6 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using Tizen.NUI.BaseComponents;
-using Tizen.NUI.UIComponents;
 
 namespace Tizen.NUI.Samples
 {
index 4487f68..ba2e1cd 100755 (executable)
@@ -2,7 +2,7 @@
 using System.Collections.Generic;
 using System.Linq;
 using Tizen.NUI.BaseComponents;
-using Tizen.NUI.UIComponents;
+using Tizen.NUI.Components;
 
 namespace Tizen.NUI.Samples
 {
@@ -143,11 +143,6 @@ namespace Tizen.NUI.Samples
             //// The logo should appear on top of everything.
             mRootActor.Add(logo);
 
-            // Show version in a popup when log is tapped
-            //mLogoTapDetector = new TapGestureDetector();
-            //mLogoTapDetector.Attach(logo);
-            //mLogoTapDetector.Detected += OnLogoTapped;
-
             // Scrollview occupying the majority of the screen
             mScrollView = new ScrollView();
             mScrollView.PositionUsesPivotPoint = true;
@@ -257,58 +252,6 @@ namespace Tizen.NUI.Samples
             mCurPage = mScrollView.GetCurrentPage();
         }
 
-        private void OnLogoTapped(object source, TapGestureDetector.DetectedEventArgs e)
-        {
-            // Only show if currently fully hidden. If transitioning-out, the transition will not be interrupted.
-            if (!mVersionPopup || (mVersionPopup.DisplayState == Popup.DisplayStateType.Hidden))
-            {
-                if (!mVersionPopup)
-                {
-                    string stream = "";
-                    stream += "DALi Core: " + CORE_MAJOR_VERSION + "." + CORE_MINOR_VERSION + "." + CORE_MICRO_VERSION + "\n";
-                    stream += "DALi Adaptor: " + ADAPTOR_MAJOR_VERSION + "." + ADAPTOR_MINOR_VERSION + "." + ADAPTOR_MICRO_VERSION + "\n";
-                    stream += "DALi Toolkit: " + TOOLKIT_MAJOR_VERSION + "." + TOOLKIT_MINOR_VERSION + "." + TOOLKIT_MICRO_VERSION + "\n";
-
-                    mVersionPopup = new Popup();
-
-                    TextLabel titleActor = new TextLabel("Version information");
-                    titleActor.Name = "titleActor";
-                    titleActor.HorizontalAlignment = HorizontalAlignment.Center;
-
-                    TextLabel contentActor = new TextLabel(stream);
-                    contentActor.Name = "contentActor";
-                    contentActor.MultiLine = true;
-                    contentActor.HorizontalAlignment = HorizontalAlignment.Center;
-                    contentActor.SetPadding(new PaddingType(0, 0, 20, 0));
-
-                    mVersionPopup.SetTitle(titleActor);
-                    mVersionPopup.SetContent(contentActor);
-
-                    mVersionPopup.WidthResizePolicy = ResizePolicyType.SizeRelativeToParent;
-                    mVersionPopup.SetSizeModeFactor(new Vector3(0.75f, 1.0f, 1.0f));
-                    mVersionPopup.HeightResizePolicy = ResizePolicyType.FitToChildren;
-
-                    mVersionPopup.TouchedOutside += HideVersionPopup;
-                    mVersionPopup.PositionUsesPivotPoint = true;
-                    mVersionPopup.PivotPoint = PivotPoint.Center;
-                    mVersionPopup.ParentOrigin = ParentOrigin.Center;
-
-                    NUIApplication.GetDefaultWindow().Add(mVersionPopup);
-                }
-
-                mVersionPopup.SetDisplayState(Popup.DisplayStateType.Shown);
-            }
-        }
-
-        private void HideVersionPopup(object sender, Popup.TouchedOutsideEventArgs e)
-        {
-            // Only hide if currently fully shown. If transitioning-in, the transition will not be interrupted.
-            if (null != mVersionPopup && (mVersionPopup.DisplayState == Popup.DisplayStateType.Shown))
-            {
-                mVersionPopup.SetDisplayState(Popup.DisplayStateType.Hidden);
-            }
-        }
-
         // Creates the background image
         private View CreateBackground(string stylename)
         {
@@ -795,7 +738,6 @@ namespace Tizen.NUI.Samples
         private View mPressedActor;             //  The currently pressed actor.
         private Timer mAnimationTimer;           //  Timer used to turn off animation after a specific time period
         private TapGestureDetector mLogoTapDetector;          //  To detect taps on the logo
-        private Popup mVersionPopup;             //  Displays DALi library version information
 
         // This struct encapsulates all data relevant to each of the elements used within the custom keyboard focus effect.
         private struct FocusEffect