[NUI][AT-SPI] Add indexable AccessibilitySuppressedEvents
authorArtur Świgoń <a.swigon@samsung.com>
Thu, 14 Apr 2022 08:32:30 +0000 (10:32 +0200)
committerJaehyun Cho <jaehyun0cho@gmail.com>
Wed, 20 Apr 2022 08:38:08 +0000 (17:38 +0900)
This commit changes the syntax used to modify the collection of
suppressed AT-SPI events (D-Bus signals) to match the indexing syntax
used in DALi:

accessible->GetSuppressedEvents()[AtspiEvent::MOVED_OUT] = true;

view.AccessibilitySuppressedEvents[AccessibilityEvent.MovedOut] = true;

src/Tizen.NUI.Components/Controls/Picker.cs
src/Tizen.NUI/src/public/BaseComponents/ViewAccessibility.cs
src/Tizen.NUI/src/public/BaseComponents/ViewAccessibilityEnum.cs
test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/AtspiSample.cs

index 019a87b..19dd8c1 100755 (executable)
@@ -526,7 +526,7 @@ namespace Tizen.NUI.Components
                 Name = idx.ToString(),
             };
 
-            temp.SetAccessibilityEventSuppressed(AccessibilityEvent.MovedOut, true);
+            temp.AccessibilitySuppressedEvents[AccessibilityEvent.MovedOut] = true;
             itemList.Add(temp);
             pickerScroller.Add(temp);
         }
index 99a389a..be93bbe 100755 (executable)
@@ -423,28 +423,15 @@ namespace Tizen.NUI.BaseComponents
         }
 
         /// <summary>
-        /// Gets a value indicating given accessibility event is suppressed.
+        /// Modifiable collection of suppressed AT-SPI events (D-Bus signals).
         /// </summary>
-        /// <param name="accessibilityEvent">The accessibility event</param>
-        /// <returns>True if given accessibility event is suppressed, otherwise false</returns>
         [EditorBrowsable(EditorBrowsableState.Never)]
-        public bool IsAccessibilityEventSuppressed(AccessibilityEvent accessibilityEvent)
+        public AccessibilityEvents AccessibilitySuppressedEvents
         {
-            bool result = Interop.ControlDevel.DaliAccessibilityIsSuppressedEvent(SwigCPtr, (int)accessibilityEvent);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
-            return result;
-        }
-
-        /// <summary>
-        /// Sets a suppressed value of given accessibility event.
-        /// </summary>
-        /// <param name="accessibilityEvent">The accessibility event</param>
-        /// <param name="isSuppressed">The value indicating given accessibility event is suppressed</param>
-        [EditorBrowsable(EditorBrowsableState.Never)]
-        public void SetAccessibilityEventSuppressed(AccessibilityEvent accessibilityEvent, bool isSuppressed)
-        {
-            Interop.ControlDevel.DaliAccessibilitySetSuppressedEvent(SwigCPtr, (int)accessibilityEvent, isSuppressed);
-            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            get
+            {
+                return new AccessibilityEvents {Owner = this};
+            }
         }
 
         ///////////////////////////////////////////////////////////////////
index da1ee42..b89c7c1 100755 (executable)
@@ -569,7 +569,7 @@ namespace Tizen.NUI.BaseComponents
     };
 
     /// <summary>
-    /// A collection of AccessibilityStates
+    /// AccessibilityStates is a collection of AccessibilityState's
     /// </summary>
     /// <seealso cref="AccessibilityState"/>
     [EditorBrowsable(EditorBrowsableState.Never)]
@@ -613,6 +613,7 @@ namespace Tizen.NUI.BaseComponents
     /// <summary>
     /// Enumeration of possible AT-SPI events.
     /// </summary>
+    /// <seealso cref="AccessibilityEvents"/>
     /// <remarks>
     /// Accessible can emit differty type of event.
     /// </remarks>
@@ -737,6 +738,35 @@ namespace Tizen.NUI.BaseComponents
     };
 
     /// <summary>
+    /// AccessibilityEvents is a collection of AccessibilityEvent's
+    /// </summary>
+    /// <seealso cref="AccessibilityEvent"/>
+    [EditorBrowsable(EditorBrowsableState.Never)]
+    public class AccessibilityEvents
+    {
+        // Target object for interop call
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        internal View Owner { get; set; }
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public bool this[AccessibilityEvent accessibilityEvent]
+        {
+            [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1065:DoNotRaiseExceptionsInUnexpectedLocations", Justification = "SWIG boilerplate, no exceptions are expected")]
+            get
+            {
+                bool result = Interop.ControlDevel.DaliAccessibilityIsSuppressedEvent(Owner.SwigCPtr, (int)accessibilityEvent);
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+                return result;
+            }
+            set
+            {
+                Interop.ControlDevel.DaliAccessibilitySetSuppressedEvent(Owner.SwigCPtr, (int)accessibilityEvent, value);
+                if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            }
+        }
+    }
+
+    /// <summary>
     /// Notify mode for AccessibilityStates.
     /// </summary>
     [EditorBrowsable(EditorBrowsableState.Never)]
index 259cb98..4240a28 100755 (executable)
@@ -20,23 +20,23 @@ namespace Tizen.NUI.Samples
             text.WidthResizePolicy = ResizePolicyType.FillToParent;
             window.Add(text);
 
-            if (text.IsAccessibilityEventSuppressed(AccessibilityEvent.MovedOut))
+            if (text.AccessibilitySuppressedEvents[AccessibilityEvent.MovedOut])
             {
                 text.Text = "FAIL";
                 Tizen.Log.Error("NUITEST", "Default value shoud be false\n");
                 return;
             }
 
-            text.SetAccessibilityEventSuppressed(AccessibilityEvent.MovedOut, true);
-            if (!text.IsAccessibilityEventSuppressed(AccessibilityEvent.MovedOut))
+            text.AccessibilitySuppressedEvents[AccessibilityEvent.MovedOut] = true;
+            if (!text.AccessibilitySuppressedEvents[AccessibilityEvent.MovedOut])
             {
                 text.Text = "FAIL";
                 Tizen.Log.Error("NUITEST", "Cannot set to true\n");
                 return;
             }
 
-            text.SetAccessibilityEventSuppressed(AccessibilityEvent.MovedOut, false);
-            if (text.IsAccessibilityEventSuppressed(AccessibilityEvent.MovedOut))
+            text.AccessibilitySuppressedEvents[AccessibilityEvent.MovedOut] = false;
+            if (text.AccessibilitySuppressedEvents[AccessibilityEvent.MovedOut])
             {
                 text.Text = "FAIL";
                 Tizen.Log.Error("NUITEST", "Cannot set to false\n");