/// Informs AT-SPI bridge about the set of AT-SPI states associated with this object.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- protected override AccessibilityStates AccessibilityCalculateStates(ulong states)
+ protected override AccessibilityStates AccessibilityCalculateStates()
{
- var accessibilityStates = base.AccessibilityCalculateStates(states);
- FlagSetter(ref accessibilityStates, AccessibilityStates.Modal, true);
- return accessibilityStates;
- }
+ var states = base.AccessibilityCalculateStates();
+
+ states[AccessibilityState.Modal] = true;
+ return states;
+ }
/// <summary>
/// Default title content of AlertDialog.
if (Accessibility.Accessibility.IsEnabled && instance.IsHighlighted)
{
- instance.EmitAccessibilityStatesChangedEvent(AccessibilityStates.Checked, newSelected);
+ instance.EmitAccessibilityStateChangedEvent(AccessibilityState.Checked, newSelected);
}
}
}
/// Calculates current states for the button<br />
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- protected override AccessibilityStates AccessibilityCalculateStates(ulong states)
+ protected override AccessibilityStates AccessibilityCalculateStates()
{
- var accessibilityStates = base.AccessibilityCalculateStates(states);
- FlagSetter(ref accessibilityStates, AccessibilityStates.Checked, this.IsSelected);
- FlagSetter(ref accessibilityStates, AccessibilityStates.Enabled, this.IsEnabled);
- return accessibilityStates;
+ var states = base.AccessibilityCalculateStates();
+
+ states[AccessibilityState.Checked] = this.IsSelected;
+ states[AccessibilityState.Enabled] = this.IsEnabled;
+
+ return states;
}
/// <summary>
/// Informs AT-SPI bridge about the set of AT-SPI states associated with this object.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- protected override AccessibilityStates AccessibilityCalculateStates(ulong states)
+ protected override AccessibilityStates AccessibilityCalculateStates()
{
- var accessibilityStates = base.AccessibilityCalculateStates(states);
- FlagSetter(ref accessibilityStates, AccessibilityStates.Modal, true);
- return accessibilityStates;
+ var states = base.AccessibilityCalculateStates();
+
+ states[AccessibilityState.Modal] = true;
+
+ return states;
}
private void OnRelayout(object sender, EventArgs e)
CalculateSizeAndPosition();
RegisterDefaultLabel();
- NotifyAccessibilityStatesChange(AccessibilityStates.Visible | AccessibilityStates.Showing, AccessibilityStatesNotifyMode.Recursive);
+ NotifyAccessibilityStatesChange(new AccessibilityStates(AccessibilityState.Visible, AccessibilityState.Showing), AccessibilityStatesNotifyMode.Recursive);
}
/// <summary>
{
Hide();
UnregisterDefaultLabel();
- NotifyAccessibilityStatesChange(AccessibilityStates.Visible | AccessibilityStates.Showing, AccessibilityStatesNotifyMode.Recursive);
+ NotifyAccessibilityStatesChange(new AccessibilityStates(AccessibilityState.Visible, AccessibilityState.Showing), AccessibilityStatesNotifyMode.Recursive);
Dispose();
}
/// Informs AT-SPI bridge about the set of AT-SPI states associated with this object.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- protected override AccessibilityStates AccessibilityCalculateStates(ulong states)
+ protected override AccessibilityStates AccessibilityCalculateStates()
{
- var accessibilityStates = base.AccessibilityCalculateStates(states);
- FlagSetter(ref accessibilityStates, AccessibilityStates.Modal, true);
- return accessibilityStates;
+ var states = base.AccessibilityCalculateStates();
+
+ states[AccessibilityState.Modal] = true;
+
+ return states;
}
}
}
View curHighlightedView = Accessibility.Accessibility.Instance.GetCurrentlyHighlightedView();
if (curHighlightedView != null)
{
- curHighlightedView.NotifyAccessibilityStatesChange(AccessibilityStates.Visible | AccessibilityStates.Showing, AccessibilityStatesNotifyMode.Single);
+ curHighlightedView.NotifyAccessibilityStatesChange(new AccessibilityStates(AccessibilityState.Visible, AccessibilityState.Showing), AccessibilityStatesNotifyMode.Single);
}
}
if (appearedPage != null)
{
appearedPage.RegisterDefaultLabel();
- appearedPage.NotifyAccessibilityStatesChange(AccessibilityStates.Visible | AccessibilityStates.Showing, AccessibilityStatesNotifyMode.Single);
+ appearedPage.NotifyAccessibilityStatesChange(new AccessibilityStates(AccessibilityState.Visible, AccessibilityState.Showing), AccessibilityStatesNotifyMode.Single);
}
}
/// Informs AT-SPI bridge about the set of AT-SPI states associated with this object.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- protected override AccessibilityStates AccessibilityCalculateStates(ulong states)
+ protected override AccessibilityStates AccessibilityCalculateStates()
{
- var accessibilityStates = base.AccessibilityCalculateStates(states);
- FlagSetter(ref accessibilityStates, AccessibilityStates.Modal, true);
- return accessibilityStates;
+ var states = base.AccessibilityCalculateStates();
+
+ states[AccessibilityState.Modal] = true;
+
+ return states;
}
private void UpdateView()
{
if (Accessibility.Accessibility.IsEnabled && IsHighlighted)
{
- EmitAccessibilityStatesChangedEvent(AccessibilityStates.Checked, info.CurrentState.Contains(ControlState.Selected));
+ EmitAccessibilityStateChangedEvent(AccessibilityState.Checked, info.CurrentState.Contains(ControlState.Selected));
}
// SelectedChanged is invoked when button or key is unpressed.
/// Informs AT-SPI bridge about the set of AT-SPI states associated with this object.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- protected override AccessibilityStates AccessibilityCalculateStates(ulong states)
+ protected override AccessibilityStates AccessibilityCalculateStates()
{
- var accessibilityStates = base.AccessibilityCalculateStates(states);
- FlagSetter(ref accessibilityStates, AccessibilityStates.Checked, this.IsSelected);
- return accessibilityStates;
+ var states = base.AccessibilityCalculateStates();
+
+ states[AccessibilityState.Checked] = this.IsSelected;
+
+ return states;
}
/// <summary>
{
if (Accessibility.Accessibility.IsEnabled && IsHighlighted)
{
- EmitAccessibilityStatesChangedEvent(AccessibilityStates.Checked, IsSelected);
+ EmitAccessibilityStateChangedEvent(AccessibilityState.Checked, IsSelected);
}
((SwitchExtension)Extension)?.OnSelectedChanged(this);
public static extern bool DaliToolkitDevelControlGrabAccessibilityHighlight(global::System.Runtime.InteropServices.HandleRef arg1);
[EditorBrowsable(EditorBrowsableState.Never)]
- [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Toolkit_DevelControl_GetAccessibilityState")]
+ [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Toolkit_DevelControl_GetAccessibilityStates")]
public static extern ulong DaliToolkitDevelControlGetAccessibilityStates(global::System.Runtime.InteropServices.HandleRef arg1);
[EditorBrowsable(EditorBrowsableState.Never)]
- [DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Toolkit_DevelControl_ConvertState")]
- public static extern IntPtr DaliToolkitDevelControlConvertState(ulong arg1);
-
- [EditorBrowsable(EditorBrowsableState.Never)]
- [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Toolkit_DevelControl_NotifyAccessibilityStateChange2")]
- public static extern global::System.IntPtr DaliToolkitDevelControlNotifyAccessibilityStatesChange(global::System.Runtime.InteropServices.HandleRef arg1, ulong arg2, int arg3);
+ [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Toolkit_DevelControl_NotifyAccessibilityStateChange")]
+ public static extern global::System.IntPtr DaliToolkitDevelControlNotifyAccessibilityStateChange(global::System.Runtime.InteropServices.HandleRef arg1, ulong arg2, int arg3);
[EditorBrowsable(EditorBrowsableState.Never)]
[global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Accessibility_EmitAccessibilityEvent")]
public static extern global::System.IntPtr DaliAccessibilityEmitAccessibilityEvent(global::System.Runtime.InteropServices.HandleRef arg1, int arg2_event);
[EditorBrowsable(EditorBrowsableState.Never)]
- [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Accessibility_EmitAccessibilityStateChangedEvent2")]
- public static extern global::System.IntPtr DaliAccessibilityEmitAccessibilityStatesChangedEvent(global::System.Runtime.InteropServices.HandleRef arg1, ulong arg2_state, int arg3);
+ [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Accessibility_EmitAccessibilityStateChangedEvent")]
+ public static extern global::System.IntPtr DaliAccessibilityEmitAccessibilityStateChangedEvent(global::System.Runtime.InteropServices.HandleRef arg1, int arg2_state, int arg3);
[EditorBrowsable(EditorBrowsableState.Never)]
[global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Accessibility_EmitTextInsertedEvent")]
[EditorBrowsable(EditorBrowsableState.Never)]
public AccessibilityDoAction DoAction; // 3
+ // Note: this method departs from the usual idiom of having the same
+ // parameter types as the Accessible method in DALi, because states
+ // calculated by ControlAccessible::CalculateStates are passed here
+ // as a parameter.
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- public delegate IntPtr AccessibilityCalculateStates(ulong states);
+ public delegate ulong AccessibilityCalculateStates(ulong states);
[EditorBrowsable(EditorBrowsableState.Never)]
public AccessibilityCalculateStates CalculateStates; // 4
/// Notifies sending notifications about the current states to accessibility clients.
/// </summary>
/// <remarks>
- /// If recursive is true, all children of the Accessibility object will also re-emit the states.
+ /// In essence, this is equivalent to calling EmitAccessibilityStateChangedEvent in a loop for all specified states.
+ /// If recursive mode is specified, all children of the Accessibility object will also re-emit the states.
/// </remarks>
/// <param name="states">Accessibility States</param>
/// <param name="notifyMode">Controls the notification strategy</param>
[EditorBrowsable(EditorBrowsableState.Never)]
public void NotifyAccessibilityStatesChange(AccessibilityStates states, AccessibilityStatesNotifyMode notifyMode)
{
- Interop.ControlDevel.DaliToolkitDevelControlNotifyAccessibilityStatesChange(SwigCPtr, (ulong)states, (int)notifyMode);
+ if (states is null)
+ {
+ throw new ArgumentNullException(nameof(states));
+ }
+
+ Interop.ControlDevel.DaliToolkitDevelControlNotifyAccessibilityStateChange(SwigCPtr, states.BitMask, (int)notifyMode);
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
[EditorBrowsable(EditorBrowsableState.Never)]
public AccessibilityStates GetAccessibilityStates()
{
- AccessibilityStates result = (AccessibilityStates) Interop.ControlDevel.DaliToolkitDevelControlGetAccessibilityStates(SwigCPtr);
+ var result = new AccessibilityStates {BitMask = Interop.ControlDevel.DaliToolkitDevelControlGetAccessibilityStates(SwigCPtr)};
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
return result;
}
/// <param name="state">Accessibility state</param>
/// <param name="equal">True if the state is set or enabled, otherwise false</param>
[EditorBrowsable(EditorBrowsableState.Never)]
- public void EmitAccessibilityStatesChangedEvent(AccessibilityStates state, bool equal)
+ public void EmitAccessibilityStateChangedEvent(AccessibilityState state, bool equal)
{
- Interop.ControlDevel.DaliAccessibilityEmitAccessibilityStatesChangedEvent(SwigCPtr, (ulong)state, Convert.ToInt32(equal));
+ Interop.ControlDevel.DaliAccessibilityEmitAccessibilityStateChangedEvent(SwigCPtr, (int)state, Convert.ToInt32(equal));
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
return Interop.ControlDevel.DaliToolkitDevelControlAccessibleImplNUIDuplicateString(value ?? "");
}
- private IntPtr DuplicateStates(AccessibilityStates states)
+ private IntPtr DuplicateRange(AccessibilityRange range)
{
- return Interop.ControlDevel.DaliToolkitDevelControlConvertState((ulong)states);
+ return Interop.ControlDevel.DaliAccessibilityNewRange(range.StartOffset, range.EndOffset, range.Content);
}
- private IntPtr DuplicateRange(AccessibilityRange range)
+ private static AccessibilityStates AccessibilityInitialStates = new AccessibilityStates();
+
+ private ulong AccessibilityCalculateStatesWrapper(ulong initialStates)
{
- return Interop.ControlDevel.DaliAccessibilityNewRange(range.StartOffset, range.EndOffset, range.Content);
+ lock (AccessibilityInitialStates)
+ {
+ AccessibilityInitialStates.BitMask = initialStates;
+
+ return AccessibilityCalculateStates().BitMask;
+ }
}
private Interop.ControlDevel.AccessibilityDelegate accessibilityDelegate = null;
GetName = () => DuplicateString(AccessibilityGetName()),
GetDescription = () => DuplicateString(AccessibilityGetDescription()),
DoAction = (name) => AccessibilityDoAction(Marshal.PtrToStringAnsi(name)),
- CalculateStates = (states) => DuplicateStates(AccessibilityCalculateStates(states)),
+ CalculateStates = (states) => AccessibilityCalculateStatesWrapper(states),
GetActionCount = () => AccessibilityGetActionCount(),
GetActionName = (index) => DuplicateString(AccessibilityGetActionName(index)),
ShouldReportZeroChildren = () => AccessibilityShouldReportZeroChildren(),
if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
}
- /// <summary>
- /// A helper method to manipulate individual bit flags (e.g. turn them on or off)
- /// </summary>
- /// <param name="obj">An object that accumulates combination of bit flags</param>
- /// <param name="bit">A bit flag to be operated</param>
- /// <param name="state">A state of the bit flag to be set (0 == off, 1 == on)</param>
- [EditorBrowsable(EditorBrowsableState.Never)]
- static public void FlagSetter<T>(ref T obj ,T bit, bool state)
- {
- dynamic result = obj;
- dynamic param = bit;
- if (state)
- {
- result |= param;
- }
- else
- {
- result &= (~param);
- }
- obj = result;
- }
-
[EditorBrowsable(EditorBrowsableState.Never)]
protected override void Dispose(bool disposing)
{
}
[EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual AccessibilityStates AccessibilityCalculateStates(ulong states)
+ protected virtual AccessibilityStates AccessibilityCalculateStates()
{
- AccessibilityStates accessibilityStates = (AccessibilityStates)states;
+ var states = AccessibilityInitialStates;
- FlagSetter(ref accessibilityStates, AccessibilityStates.Focused, this.State == States.Focused);
- FlagSetter(ref accessibilityStates, AccessibilityStates.Enabled, this.State != States.Disabled);
- FlagSetter(ref accessibilityStates, AccessibilityStates.Sensitive, this.Sensitive);
+ states[AccessibilityState.Focused] = this.State == States.Focused;
+ states[AccessibilityState.Enabled] = this.State != States.Disabled;
+ states[AccessibilityState.Sensitive] = this.Sensitive;
- return accessibilityStates;
+ return states;
}
[EditorBrowsable(EditorBrowsableState.Never)]
};
/// <summary>
- /// The states of accessibility object.
+ /// Enumeration of possible AT-SPI states for an object.
/// </summary>
+ /// <seealso cref="AccessibilityStates"/>
/// <remarks>
/// Object can be in many states at the same time.
/// </remarks>
[EditorBrowsable(EditorBrowsableState.Never)]
- [Flags]
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1028:EnumStorageShouldBeInt32", Justification = "System.Int32 type wouldn't have sufficient capacity")]
- public enum AccessibilityStates : ulong
+ public enum AccessibilityState
{
/// <summary>
/// Invalid state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Invalid = (1UL << 0),
+ Invalid = 0,
/// <summary>
/// Active state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Active = (1UL << 1),
+ Active = 1,
/// <summary>
/// Armed state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Armed = (1UL << 2),
+ Armed = 2,
/// <summary>
/// Busy state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Busy = (1UL << 3),
+ Busy = 3,
/// <summary>
/// Checked state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Checked = (1UL << 4),
+ Checked = 4,
/// <summary>
/// Collapsed state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Collapsed = (1UL << 5),
+ Collapsed = 5,
/// <summary>
/// Defunct state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Defunct = (1UL << 6),
+ Defunct = 6,
/// <summary>
/// Editable state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Editable = (1UL << 7),
+ Editable = 7,
/// <summary>
/// Enabled state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Enabled = (1UL << 8),
+ Enabled = 8,
/// <summary>
/// Expandable state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Expandable = (1UL << 9),
+ Expandable = 9,
/// <summary>
/// Expanded state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Expanded = (1UL << 10),
+ Expanded = 10,
/// <summary>
/// Focusable state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Focusable = (1UL << 11),
+ Focusable = 11,
/// <summary>
/// Focused state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Focused = (1UL << 12),
+ Focused = 12,
/// <summary>
/// Had tooltip state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- HasTooltip = (1UL << 13),
+ HasTooltip = 13,
/// <summary>
/// Horizontal state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Horizontal = (1UL << 14),
+ Horizontal = 14,
/// <summary>
/// Iconified state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Iconified = (1UL << 15),
+ Iconified = 15,
/// <summary>
/// Modal state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Modal = (1UL << 16),
+ Modal = 16,
/// <summary>
/// Multi-line state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- MultiLine = (1UL << 17),
+ MultiLine = 17,
/// <summary>
/// Multi-selectable state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- MultiSelectable = (1UL << 18),
+ MultiSelectable = 18,
/// <summary>
/// Opaque state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Opaque = (1UL << 19),
+ Opaque = 19,
/// <summary>
/// Pressed state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Pressed = (1UL << 20),
+ Pressed = 20,
/// <summary>
/// Resizeable state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Resizeable = (1UL << 21),
+ Resizeable = 21,
/// <summary>
/// Selectable state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Selectable = (1UL << 22),
+ Selectable = 22,
/// <summary>
/// Selected state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Selected = (1UL << 23),
+ Selected = 23,
/// <summary>
/// Sensitive state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Sensitive = (1UL << 24),
+ Sensitive = 24,
/// <summary>
/// Showing state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Showing = (1UL << 25),
+ Showing = 25,
/// <summary>
/// Single line state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- SingleLine = (1UL << 26),
+ SingleLine = 26,
/// <summary>
/// Stale state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Stale = (1UL << 27),
+ Stale = 27,
/// <summary>
/// Transient state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Transient = (1UL << 28),
+ Transient = 28,
/// <summary>
/// Vertical state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Vertical = (1UL << 29),
+ Vertical = 29,
/// <summary>
/// Visible state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Visible = (1UL << 30),
+ Visible = 30,
/// <summary>
/// Managed descendants state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- ManagesDescendants = (1UL << 31),
+ ManagesDescendants = 31,
/// <summary>
/// Indeterminate state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Indeterminate = (1UL << 32),
+ Indeterminate = 32,
/// <summary>
/// Required state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Required = (1UL << 33),
+ Required = 33,
/// <summary>
/// Truncated state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Truncated = (1UL << 34),
+ Truncated = 34,
/// <summary>
/// Animated state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Animated = (1UL << 35),
+ Animated = 35,
/// <summary>
/// Invalid entry state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- InvalidEntry = (1UL << 36),
+ InvalidEntry = 36,
/// <summary>
/// Supported auto completion state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- SupportsAutocompletion = (1UL << 37),
+ SupportsAutocompletion = 37,
/// <summary>
/// Selectable text state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- SelectableText = (1UL << 38),
+ SelectableText = 38,
/// <summary>
/// Default state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- IsDefault = (1UL << 39),
+ IsDefault = 39,
/// <summary>
/// Visited state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Visited = (1UL << 40),
+ Visited = 40,
/// <summary>
/// Checkable state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Checkable = (1UL << 41),
+ Checkable = 41,
/// <summary>
/// Had popup state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- HasPopup = (1UL << 42),
+ HasPopup = 42,
/// <summary>
/// Read only state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- ReadOnly = (1UL << 43),
+ ReadOnly = 43,
/// <summary>
/// Highlighted state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Highlighted = (1UL << 44),
+ Highlighted = 44,
/// <summary>
/// Highlightable state.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
- Highlightable = (1UL << 45),
+ Highlightable = 45,
};
/// <summary>
+ /// A collection of AccessibilityStates
+ /// </summary>
+ /// <seealso cref="AccessibilityState"/>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public class AccessibilityStates
+ {
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public AccessibilityStates(params AccessibilityState[] states)
+ {
+ foreach (var state in states)
+ {
+ BitMask |= (1UL << (int)state);
+ }
+ }
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ internal ulong BitMask { get; set; } = 0UL;
+
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public bool this[AccessibilityState state]
+ {
+ get
+ {
+ return Convert.ToBoolean(BitMask & (1UL << (int)state));
+ }
+ set
+ {
+ if (value)
+ {
+ // Set N-th bit
+ BitMask |= (1UL << (int)state);
+ }
+ else
+ {
+ // Clear N-th bit
+ BitMask &= ~(1UL << (int)state);
+ }
+ }
+ }
+ }
+
+ /// <summary>
/// Notify mode for AccessibilityStates.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
{
SetVisible(true);
- if (((GetAccessibilityStates() & AccessibilityStates.Modal) != 0))
+ if (GetAccessibilityStates()[AccessibilityState.Modal])
{
RegisterDefaultLabel();
if (Accessibility.Accessibility.IsEnabled)
{
- EmitAccessibilityStatesChangedEvent(AccessibilityStates.Showing, true);
+ EmitAccessibilityStateChangedEvent(AccessibilityState.Showing, true);
}
}
}
{
SetVisible(false);
- if (((GetAccessibilityStates() & AccessibilityStates.Modal) != 0))
+ if (GetAccessibilityStates()[AccessibilityState.Modal])
{
UnregisterDefaultLabel();
if (Accessibility.Accessibility.IsEnabled)
{
- EmitAccessibilityStatesChangedEvent(AccessibilityStates.Showing, false);
+ EmitAccessibilityStateChangedEvent(AccessibilityState.Showing, false);
}
}
}
var testingTarget = new AccessibilityRange();
Assert.IsNotNull(testingTarget, "Can't create success object AccessibilityRange");
Assert.IsInstanceOf<AccessibilityRange>(testingTarget, "Should be an instance of AccessibilityRange type.");
-
+
testingTarget.StartOffset = 10;
Assert.AreEqual(10, testingTarget.StartOffset, "Should be equal!");
testingTarget.AppendAccessibilityRelation(child, AccessibilityRelationType.MemberOf);
var result = testingTarget.GetAccessibilityRelations();
tlog.Debug(tag, "AccessibilityRelations : " + result);
-
+
testingTarget.RemoveAccessibilityRelation(child, AccessibilityRelationType.MemberOf);
testingTarget.ClearAccessibilityRelations();
}
Assert.IsNotNull(testingTarget, "Can't create success object View");
Assert.IsInstanceOf<View>(testingTarget, "Should be an instance of View type.");
-
+
testingTarget.SetAccessibilityReadingInfoTypes(AccessibilityReadingInfoTypes.Description);
var result = testingTarget.GetAccessibilityReadingInfoTypes();
tlog.Debug(tag, "AccessibilityReadingInfoTypes : " + result);
Assert.IsNotNull(testingTarget, "Can't create success object View");
Assert.IsInstanceOf<View>(testingTarget, "Should be an instance of View type.");
- testingTarget.NotifyAccessibilityStatesChange(AccessibilityStates.Busy, AccessibilityStatesNotifyMode.Recursive);
+ testingTarget.NotifyAccessibilityStatesChange(new AccessibilityStates(AccessibilityState.Busy), AccessibilityStatesNotifyMode.Recursive);
var result = testingTarget.GetAccessibilityStates();
tlog.Debug(tag, "AccessibilityStates : " + result);
[Test]
[Category("P1")]
- [Description("ViewAccessibility.EmitAccessibilityStatesChangedEvent.")]
- [Property("SPEC", "Tizen.NUI.ViewAccessibility.EmitAccessibilityStatesChangedEvent M")]
+ [Description("ViewAccessibility.EmitAccessibilityStateChangedEvent.")]
+ [Property("SPEC", "Tizen.NUI.ViewAccessibility.EmitAccessibilityStateChangedEvent M")]
[Property("SPEC_URL", "-")]
[Property("CRITERIA", "MR")]
[Property("AUTHOR", "guowei.wang@samsung.com")]
- public void ViewAccessibilityEmitAccessibilityStatesChangedEvent()
+ public void ViewAccessibilityEmitAccessibilityStateChangedEvent()
{
- tlog.Debug(tag, $"ViewAccessibilityEmitAccessibilityStatesChangedEvent START");
+ tlog.Debug(tag, $"ViewAccessibilityEmitAccessibilityStateChangedEvent START");
var testingTarget = new CheckBox()
{
try
{
- testingTarget.EmitAccessibilityStatesChangedEvent(AccessibilityStates.Checked, true);
+ testingTarget.EmitAccessibilityStateChangedEvent(AccessibilityState.Checked, true);
}
catch (Exception e)
{
}
testingTarget.Dispose();
- tlog.Debug(tag, $"ViewAccessibilityEmitAccessibilityStatesChangedEvent END (OK)");
+ tlog.Debug(tag, $"ViewAccessibilityEmitAccessibilityStateChangedEvent END (OK)");
}
[Test]