From 8d3d2dd63211e7c969e846ff22c5ec6b27fea7d4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Artur=20=C5=9Awigo=C5=84?= Date: Thu, 14 Apr 2022 10:32:30 +0200 Subject: [PATCH] [NUI][AT-SPI] Add indexable AccessibilitySuppressedEvents 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 | 2 +- .../src/public/BaseComponents/ViewAccessibility.cs | 25 ++++------------- .../public/BaseComponents/ViewAccessibilityEnum.cs | 32 +++++++++++++++++++++- .../Tizen.NUI.Samples/Samples/AtspiSample.cs | 10 +++---- 4 files changed, 43 insertions(+), 26 deletions(-) diff --git a/src/Tizen.NUI.Components/Controls/Picker.cs b/src/Tizen.NUI.Components/Controls/Picker.cs index 019a87b..19dd8c1 100755 --- a/src/Tizen.NUI.Components/Controls/Picker.cs +++ b/src/Tizen.NUI.Components/Controls/Picker.cs @@ -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); } diff --git a/src/Tizen.NUI/src/public/BaseComponents/ViewAccessibility.cs b/src/Tizen.NUI/src/public/BaseComponents/ViewAccessibility.cs index 99a389a..be93bbe 100755 --- a/src/Tizen.NUI/src/public/BaseComponents/ViewAccessibility.cs +++ b/src/Tizen.NUI/src/public/BaseComponents/ViewAccessibility.cs @@ -423,28 +423,15 @@ namespace Tizen.NUI.BaseComponents } /// - /// Gets a value indicating given accessibility event is suppressed. + /// Modifiable collection of suppressed AT-SPI events (D-Bus signals). /// - /// The accessibility event - /// True if given accessibility event is suppressed, otherwise false [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; - } - - /// - /// Sets a suppressed value of given accessibility event. - /// - /// The accessibility event - /// The value indicating given accessibility event is suppressed - [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}; + } } /////////////////////////////////////////////////////////////////// diff --git a/src/Tizen.NUI/src/public/BaseComponents/ViewAccessibilityEnum.cs b/src/Tizen.NUI/src/public/BaseComponents/ViewAccessibilityEnum.cs index da1ee42..b89c7c1 100755 --- a/src/Tizen.NUI/src/public/BaseComponents/ViewAccessibilityEnum.cs +++ b/src/Tizen.NUI/src/public/BaseComponents/ViewAccessibilityEnum.cs @@ -569,7 +569,7 @@ namespace Tizen.NUI.BaseComponents }; /// - /// A collection of AccessibilityStates + /// AccessibilityStates is a collection of AccessibilityState's /// /// [EditorBrowsable(EditorBrowsableState.Never)] @@ -613,6 +613,7 @@ namespace Tizen.NUI.BaseComponents /// /// Enumeration of possible AT-SPI events. /// + /// /// /// Accessible can emit differty type of event. /// @@ -737,6 +738,35 @@ namespace Tizen.NUI.BaseComponents }; /// + /// AccessibilityEvents is a collection of AccessibilityEvent's + /// + /// + [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(); + } + } + } + + /// /// Notify mode for AccessibilityStates. /// [EditorBrowsable(EditorBrowsableState.Never)] diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/AtspiSample.cs b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/AtspiSample.cs index 259cb98..4240a28 100755 --- a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/AtspiSample.cs +++ b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/AtspiSample.cs @@ -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"); -- 2.7.4