From 76cdf41c05120649e0c8223b4dfc9824f315e46e Mon Sep 17 00:00:00 2001 From: Shinwoo Kim Date: Mon, 15 Nov 2021 20:00:49 +0900 Subject: [PATCH] [NUI][ATSPI] Calculate states based on DALi We do not have to same job calculating states. This patch sets make the View use DALi states. If there is NUI specific state, then it will be overwritten. --- src/Tizen.NUI.Components/Controls/AlertDialog.cs | 8 +++---- src/Tizen.NUI.Components/Controls/Button.cs | 10 ++++----- src/Tizen.NUI.Components/Controls/Dialog.cs | 8 +++---- src/Tizen.NUI.Components/Controls/Popup.cs | 8 +++---- src/Tizen.NUI.Components/Controls/Switch.cs | 8 +++---- .../src/internal/Interop/Interop.ControlDevel.cs | 2 +- .../src/public/BaseComponents/ViewAccessibility.cs | 25 +++++++++++----------- .../src/public/BaseComponents/ViewPublicMethods.cs | 4 ++-- 8 files changed, 36 insertions(+), 37 deletions(-) diff --git a/src/Tizen.NUI.Components/Controls/AlertDialog.cs b/src/Tizen.NUI.Components/Controls/AlertDialog.cs index 68212cf..9e3a600 100755 --- a/src/Tizen.NUI.Components/Controls/AlertDialog.cs +++ b/src/Tizen.NUI.Components/Controls/AlertDialog.cs @@ -412,11 +412,11 @@ namespace Tizen.NUI.Components /// Informs AT-SPI bridge about the set of AT-SPI states associated with this object. /// [EditorBrowsable(EditorBrowsableState.Never)] - protected override AccessibilityStates AccessibilityCalculateStates() + protected override AccessibilityStates AccessibilityCalculateStates(ulong states) { - var states = base.AccessibilityCalculateStates(); - FlagSetter(ref states, AccessibilityStates.Modal, true); - return states; + var accessibilityStates = base.AccessibilityCalculateStates(states); + FlagSetter(ref accessibilityStates, AccessibilityStates.Modal, true); + return accessibilityStates; } diff --git a/src/Tizen.NUI.Components/Controls/Button.cs b/src/Tizen.NUI.Components/Controls/Button.cs index 857e178..05cec8e 100755 --- a/src/Tizen.NUI.Components/Controls/Button.cs +++ b/src/Tizen.NUI.Components/Controls/Button.cs @@ -217,12 +217,12 @@ namespace Tizen.NUI.Components /// Calculates current states for the button
/// [EditorBrowsable(EditorBrowsableState.Never)] - protected override AccessibilityStates AccessibilityCalculateStates() + protected override AccessibilityStates AccessibilityCalculateStates(ulong states) { - var states = base.AccessibilityCalculateStates(); - FlagSetter(ref states, AccessibilityStates.Checked, this.IsSelected); - FlagSetter(ref states, AccessibilityStates.Enabled, this.IsEnabled); - return states; + var accessibilityStates = base.AccessibilityCalculateStates(states); + FlagSetter(ref accessibilityStates, AccessibilityStates.Checked, this.IsSelected); + FlagSetter(ref accessibilityStates, AccessibilityStates.Enabled, this.IsEnabled); + return accessibilityStates; } /// diff --git a/src/Tizen.NUI.Components/Controls/Dialog.cs b/src/Tizen.NUI.Components/Controls/Dialog.cs index 6d36239..56a0b49 100644 --- a/src/Tizen.NUI.Components/Controls/Dialog.cs +++ b/src/Tizen.NUI.Components/Controls/Dialog.cs @@ -111,11 +111,11 @@ namespace Tizen.NUI.Components /// Informs AT-SPI bridge about the set of AT-SPI states associated with this object. /// [EditorBrowsable(EditorBrowsableState.Never)] - protected override AccessibilityStates AccessibilityCalculateStates() + protected override AccessibilityStates AccessibilityCalculateStates(ulong states) { - var states = base.AccessibilityCalculateStates(); - FlagSetter(ref states, AccessibilityStates.Modal, true); - return states; + var accessibilityStates = base.AccessibilityCalculateStates(states); + FlagSetter(ref accessibilityStates, AccessibilityStates.Modal, true); + return accessibilityStates; } private void OnRelayout(object sender, EventArgs e) diff --git a/src/Tizen.NUI.Components/Controls/Popup.cs b/src/Tizen.NUI.Components/Controls/Popup.cs index 5027331..ed4d436 100755 --- a/src/Tizen.NUI.Components/Controls/Popup.cs +++ b/src/Tizen.NUI.Components/Controls/Popup.cs @@ -726,11 +726,11 @@ namespace Tizen.NUI.Components /// Informs AT-SPI bridge about the set of AT-SPI states associated with this object. /// [EditorBrowsable(EditorBrowsableState.Never)] - protected override AccessibilityStates AccessibilityCalculateStates() + protected override AccessibilityStates AccessibilityCalculateStates(ulong states) { - var states = base.AccessibilityCalculateStates(); - FlagSetter(ref states, AccessibilityStates.Modal, true); - return states; + var accessibilityStates = base.AccessibilityCalculateStates(states); + FlagSetter(ref accessibilityStates, AccessibilityStates.Modal, true); + return accessibilityStates; } private void UpdateView() diff --git a/src/Tizen.NUI.Components/Controls/Switch.cs b/src/Tizen.NUI.Components/Controls/Switch.cs index 43bf7321..6e2bd80 100644 --- a/src/Tizen.NUI.Components/Controls/Switch.cs +++ b/src/Tizen.NUI.Components/Controls/Switch.cs @@ -78,11 +78,11 @@ namespace Tizen.NUI.Components /// Informs AT-SPI bridge about the set of AT-SPI states associated with this object. /// [EditorBrowsable(EditorBrowsableState.Never)] - protected override AccessibilityStates AccessibilityCalculateStates() + protected override AccessibilityStates AccessibilityCalculateStates(ulong states) { - var states = base.AccessibilityCalculateStates(); - FlagSetter(ref states, AccessibilityStates.Checked, this.IsSelected); - return states; + var accessibilityStates = base.AccessibilityCalculateStates(states); + FlagSetter(ref accessibilityStates, AccessibilityStates.Checked, this.IsSelected); + return accessibilityStates; } /// diff --git a/src/Tizen.NUI/src/internal/Interop/Interop.ControlDevel.cs b/src/Tizen.NUI/src/internal/Interop/Interop.ControlDevel.cs index 7284ee9..ced21d9 100755 --- a/src/Tizen.NUI/src/internal/Interop/Interop.ControlDevel.cs +++ b/src/Tizen.NUI/src/internal/Interop/Interop.ControlDevel.cs @@ -208,7 +208,7 @@ namespace Tizen.NUI public AccessibilityDoAction DoAction; // 3 [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate IntPtr AccessibilityCalculateStates(); + public delegate IntPtr AccessibilityCalculateStates(ulong states); [EditorBrowsable(EditorBrowsableState.Never)] public AccessibilityCalculateStates CalculateStates; // 4 diff --git a/src/Tizen.NUI/src/public/BaseComponents/ViewAccessibility.cs b/src/Tizen.NUI/src/public/BaseComponents/ViewAccessibility.cs index 47e2793..708da7e 100755 --- a/src/Tizen.NUI/src/public/BaseComponents/ViewAccessibility.cs +++ b/src/Tizen.NUI/src/public/BaseComponents/ViewAccessibility.cs @@ -481,7 +481,7 @@ namespace Tizen.NUI.BaseComponents GetName = () => DuplicateString(AccessibilityGetName()), GetDescription = () => DuplicateString(AccessibilityGetDescription()), DoAction = (name) => AccessibilityDoAction(Marshal.PtrToStringAnsi(name)), - CalculateStates = () => DuplicateStates(AccessibilityCalculateStates()), + CalculateStates = (states) => DuplicateStates(AccessibilityCalculateStates(states)), GetActionCount = () => AccessibilityGetActionCount(), GetActionName = (index) => DuplicateString(AccessibilityGetActionName(index)), ShouldReportZeroChildren = () => AccessibilityShouldReportZeroChildren(), @@ -626,21 +626,20 @@ namespace Tizen.NUI.BaseComponents } [EditorBrowsable(EditorBrowsableState.Never)] - protected virtual AccessibilityStates AccessibilityCalculateStates() + protected virtual AccessibilityStates AccessibilityCalculateStates(ulong states) { - AccessibilityStates states = 0; + AccessibilityStates _states = (AccessibilityStates)states; - FlagSetter(ref states, AccessibilityStates.Highlightable, this.AccessibilityHighlightable); - FlagSetter(ref states, AccessibilityStates.Focusable, this.Focusable); - FlagSetter(ref states, AccessibilityStates.Focused, this.State == States.Focused); - FlagSetter(ref states, AccessibilityStates.Highlighted, this.IsHighlighted); - FlagSetter(ref states, AccessibilityStates.Enabled, this.State != States.Disabled); - FlagSetter(ref states, AccessibilityStates.Sensitive, this.Sensitive); - FlagSetter(ref states, AccessibilityStates.Visible, true); - FlagSetter(ref states, AccessibilityStates.Showing, this.Visibility); - FlagSetter(ref states, AccessibilityStates.Defunct, !this.IsOnWindow); + FlagSetter(ref _states, AccessibilityStates.Highlightable, this.AccessibilityHighlightable); + FlagSetter(ref _states, AccessibilityStates.Focusable, this.Focusable); + FlagSetter(ref _states, AccessibilityStates.Focused, this.State == States.Focused); + FlagSetter(ref _states, AccessibilityStates.Highlighted, this.IsHighlighted); + FlagSetter(ref _states, AccessibilityStates.Enabled, this.State != States.Disabled); + FlagSetter(ref _states, AccessibilityStates.Sensitive, this.Sensitive); + FlagSetter(ref _states, AccessibilityStates.Visible, true); + FlagSetter(ref _states, AccessibilityStates.Defunct, !this.IsOnWindow); - return states; + return _states; } [EditorBrowsable(EditorBrowsableState.Never)] diff --git a/src/Tizen.NUI/src/public/BaseComponents/ViewPublicMethods.cs b/src/Tizen.NUI/src/public/BaseComponents/ViewPublicMethods.cs index 3bfc5a5..1d7dac3 100755 --- a/src/Tizen.NUI/src/public/BaseComponents/ViewPublicMethods.cs +++ b/src/Tizen.NUI/src/public/BaseComponents/ViewPublicMethods.cs @@ -303,7 +303,7 @@ namespace Tizen.NUI.BaseComponents /// 3 public void Show() { - if (Accessibility.Accessibility.Enabled && ((AccessibilityCalculateStates() & AccessibilityStates.Modal) != 0)) + if (Accessibility.Accessibility.Enabled && ((GetAccessibilityStates() & AccessibilityStates.Modal) != 0)) { RegisterPopup(); } @@ -324,7 +324,7 @@ namespace Tizen.NUI.BaseComponents { SetVisible(false); - if (Accessibility.Accessibility.Enabled && ((AccessibilityCalculateStates() & AccessibilityStates.Modal) != 0)) + if (Accessibility.Accessibility.Enabled && ((GetAccessibilityStates() & AccessibilityStates.Modal) != 0)) { RemovePopup(); } -- 2.7.4