[NUI][AT-SPI] Add SetTextContents, InsertText and DeleteText (#2981)
authorBartłomiej Grzelewski <grzelewski@users.noreply.github.com>
Tue, 1 Jun 2021 09:54:35 +0000 (11:54 +0200)
committerdongsug-song <35130733+dongsug-song@users.noreply.github.com>
Tue, 8 Jun 2021 05:35:32 +0000 (14:35 +0900)
Support for SetTextContents and InsertText (part of ATSPI text interface)

Requires:
https://review.tizen.org/gerrit/256956
https://review.tizen.org/gerrit/256957
https://review.tizen.org/gerrit/256963

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

index 2c300bb..5ea9ee2 100755 (executable)
@@ -304,6 +304,21 @@ namespace Tizen.NUI
                 public delegate bool AccessibilityCutText(int startPosition, int endPosition);
                 [EditorBrowsable(EditorBrowsableState.Never)]
                 public AccessibilityCutText CutText; // 23
+
+                [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+                public delegate bool AccessibilityInsertText(int startPosition, IntPtr text);
+                [EditorBrowsable(EditorBrowsableState.Never)]
+                public AccessibilityInsertText InsertText; // 24
+
+                [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+                public delegate bool AccessibilitySetTextContents(IntPtr newContents);
+                [EditorBrowsable(EditorBrowsableState.Never)]
+                public AccessibilitySetTextContents SetTextContents; // 25
+
+                [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+                public delegate bool AccessibilityDeleteText(int startPosition, int endPosition);
+                [EditorBrowsable(EditorBrowsableState.Never)]
+                public AccessibilityDeleteText DeleteText; // 26
             }
 
             [DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Toolkit_DevelControl_SetAccessibilityConstructor_NUI")]
index 8cfd4bb..3bd1f76 100755 (executable)
@@ -501,6 +501,9 @@ namespace Tizen.NUI.BaseComponents
                     SetSelection = (selectionNumber, startOffset, endOffset) => AccessibilitySetSelection(selectionNumber, startOffset, endOffset),
                     CopyText = (startPosition, endPosition) => AccessibilityCopyText(startPosition, endPosition),
                     CutText = (startPosition, endPosition) => AccessibilityCutText(startPosition, endPosition),
+                    InsertText = (startPosition, text) => AccessibilityInsertText(startPosition, Marshal.PtrToStringAnsi(text)),
+                    SetTextContents = (newContents) => AccessibilitySetTextContents(Marshal.PtrToStringAnsi(newContents)),
+                    DeleteText = (startPosition, endPosition) => AccessibilityDeleteText(startPosition, endPosition),
                 };
 
                 accessibilityDelegatePtr = Marshal.AllocHGlobal(size);
@@ -726,5 +729,23 @@ namespace Tizen.NUI.BaseComponents
         {
             return false;
         }
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        protected virtual bool AccessibilityInsertText(int startPosition, string text)
+        {
+            return false;
+        }
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        protected virtual bool AccessibilitySetTextContents(string newContents)
+        {
+            return false;
+        }
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        protected virtual bool AccessibilityDeleteText(int startPosition, int endPosition)
+        {
+            return false;
+        }
     }
 }