[NUI] Add EmitScrollStartedEvent and EmitScrollFinishedEvent
authorHosang Kim <hosang12.kim@samsung.com>
Mon, 14 Nov 2022 11:53:33 +0000 (20:53 +0900)
committerdongsug-song <35130733+dongsug-song@users.noreply.github.com>
Tue, 27 Dec 2022 05:50:29 +0000 (14:50 +0900)
This allows the user to know scrollable object scroll is started or
finished.

Requires:
https://review.tizen.org/gerrit/284124/
https://review.tizen.org/gerrit/284126/

src/Tizen.NUI.Components/Controls/ScrollableBase.cs
src/Tizen.NUI/src/internal/Interop/Interop.ControlDevel.cs
src/Tizen.NUI/src/public/BaseComponents/ViewAccessibility.cs

index b08af63..2027803 100755 (executable)
@@ -1158,6 +1158,7 @@ namespace Tizen.NUI.Components
         {
             ScrollEventArgs eventArgs = new ScrollEventArgs(ContentContainer.CurrentPosition);
             ScrollDragStarted?.Invoke(this, eventArgs);
+            EmitScrollStartedEvent();
 
             if (!hideScrollbar && fadeScrollbar)
             {
@@ -1169,6 +1170,7 @@ namespace Tizen.NUI.Components
         {
             ScrollEventArgs eventArgs = new ScrollEventArgs(ContentContainer.CurrentPosition);
             ScrollDragEnded?.Invoke(this, eventArgs);
+            EmitScrollFinishedEvent();
 
             if (!hideScrollbar && fadeScrollbar)
             {
@@ -1180,6 +1182,7 @@ namespace Tizen.NUI.Components
         {
             ScrollEventArgs eventArgs = new ScrollEventArgs(ContentContainer.CurrentPosition);
             ScrollAnimationStarted?.Invoke(this, eventArgs);
+            EmitScrollStartedEvent();
 
             if (!hideScrollbar && fadeScrollbar)
             {
@@ -1194,6 +1197,7 @@ namespace Tizen.NUI.Components
 
             ScrollEventArgs eventArgs = new ScrollEventArgs(ContentContainer.CurrentPosition);
             ScrollAnimationEnded?.Invoke(this, eventArgs);
+            EmitScrollFinishedEvent();
 
             if (!hideScrollbar && fadeScrollbar)
             {
index 8aadebe..ae7a04d 100755 (executable)
@@ -130,6 +130,14 @@ namespace Tizen.NUI
             public static extern IntPtr DaliAccessibilityEmitTextCursorMovedEvent(HandleRef arg1, int arg2_pos);
 
             [EditorBrowsable(EditorBrowsableState.Never)]
+            [DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Accessibility_EmitScrollStartedEvent")]
+            public static extern IntPtr DaliAccessibilityEmitScrollStartedEvent(HandleRef arg1_actor);
+
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            [DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Accessibility_EmitScrollFinishedEvent")]
+            public static extern IntPtr DaliAccessibilityEmitScrollFinishedEvent(HandleRef arg1_actor);
+
+            [EditorBrowsable(EditorBrowsableState.Never)]
             [DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Accessibility_IsSuppressedEvent")]
             public static extern bool DaliAccessibilityIsSuppressedEvent(HandleRef arg1, int accessibilityEvent);
 
index eae077f..23c8af4 100755 (executable)
@@ -320,6 +320,26 @@ namespace Tizen.NUI.BaseComponents
         }
 
         /// <summary>
+        /// Emits accessibility scroll started event.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void EmitScrollStartedEvent()
+        {
+            Interop.ControlDevel.DaliAccessibilityEmitScrollStartedEvent(SwigCPtr);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
+        /// Emits accessibility scroll finished event.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void EmitScrollFinishedEvent()
+        {
+            Interop.ControlDevel.DaliAccessibilityEmitScrollFinishedEvent(SwigCPtr);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+        }
+
+        /// <summary>
         /// Modifiable collection of suppressed AT-SPI events (D-Bus signals).
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]