ScreenReaderEnabled should be distinguished from IsEnabled.
This is because there are things to do only when the screen reader is enabled.
[return: MarshalAs(UnmanagedType.U1)]
public static extern bool IsEnabled();
[return: MarshalAs(UnmanagedType.U1)]
public static extern bool IsEnabled();
+ [DllImport(NDalicPINVOKE.Lib, EntryPoint = "csharp_dali_accessibility_IsScreenReaderEnabled")]
+ [return: MarshalAs(UnmanagedType.U1)]
+ public static extern bool IsScreenReaderEnabled();
+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate void EnabledDisabledSignalHandler();
[DllImport(NDalicPINVOKE.Lib, EntryPoint = "csharp_dali_accessibility_RegisterEnabledDisabledSignalHandler")]
public static extern void RegisterEnabledDisabledSignalHandler(EnabledDisabledSignalHandler enabledSignalHandler, EnabledDisabledSignalHandler disabledSignalHandler);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate void EnabledDisabledSignalHandler();
[DllImport(NDalicPINVOKE.Lib, EntryPoint = "csharp_dali_accessibility_RegisterEnabledDisabledSignalHandler")]
public static extern void RegisterEnabledDisabledSignalHandler(EnabledDisabledSignalHandler enabledSignalHandler, EnabledDisabledSignalHandler disabledSignalHandler);
+
+ [DllImport(NDalicPINVOKE.Lib, EntryPoint = "csharp_dali_accessibility_RegisterScreenReaderEnabledDisabledSignalHandler")]
+ public static extern void RegisterScreenReaderEnabledDisabledSignalHandler(EnabledDisabledSignalHandler enabledSignalHandler, EnabledDisabledSignalHandler disabledSignalHandler);
Disabled?.Invoke(typeof(Accessibility), EventArgs.Empty);
};
Disabled?.Invoke(typeof(Accessibility), EventArgs.Empty);
};
+ screenReaderEnabledSignalHandler = () =>
+ {
+ ScreenReaderEnabled?.Invoke(typeof(Accessibility), EventArgs.Empty);
+ };
+
+ screenReaderDisabledSignalHandler = () =>
+ {
+ ScreenReaderDisabled?.Invoke(typeof(Accessibility), EventArgs.Empty);
+ };
+
Interop.Accessibility.RegisterEnabledDisabledSignalHandler(enabledSignalHandler, disabledSignalHandler);
Interop.Accessibility.RegisterEnabledDisabledSignalHandler(enabledSignalHandler, disabledSignalHandler);
+ Interop.Accessibility.RegisterScreenReaderEnabledDisabledSignalHandler(screenReaderEnabledSignalHandler, screenReaderDisabledSignalHandler);
+ /// <summary>
+ /// Flag to check whether the state of Screen Reader is enabled or not.
+ /// </summary>
+ /// <remarks>
+ /// Getter returns true if Screen Reader is enabled, false otherwise.
+ /// </remarks>
+ /// This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API)
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public static bool IsScreenReaderEnabled
+ {
+ get
+ {
+ return (bool)Interop.Accessibility.IsScreenReaderEnabled();
+ }
+ }
+
#endregion Property
#region Method
#endregion Property
#region Method
[EditorBrowsable(EditorBrowsableState.Never)]
public static event EventHandler Disabled;
[EditorBrowsable(EditorBrowsableState.Never)]
public static event EventHandler Disabled;
+ /// <summary>
+ /// Triggered whenever the value of IsScreenReaderEnabled would change from false to true
+ /// </summary>
+ // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API)
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public static event EventHandler ScreenReaderEnabled;
+
+ /// <summary>
+ /// Triggered whenever the value of IsScreenReaderEnabled would change from true to false
+ /// </summary>
+ // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API)
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public static event EventHandler ScreenReaderDisabled;
+
#endregion Event, Enum, Struct, ETC
#region Private
#endregion Event, Enum, Struct, ETC
#region Private
private static Interop.Accessibility.EnabledDisabledSignalHandler disabledSignalHandler = null;
private static Interop.Accessibility.EnabledDisabledSignalHandler disabledSignalHandler = null;
+ private static Interop.Accessibility.EnabledDisabledSignalHandler screenReaderEnabledSignalHandler = null;
+
+ private static Interop.Accessibility.EnabledDisabledSignalHandler screenReaderDisabledSignalHandler = null;
+
private static void SayFinishedEventCallback(int result)
{
NUILog.Debug($"sayFinishedEventCallback(res={result}) called!");
private static void SayFinishedEventCallback(int result)
{
NUILog.Debug($"sayFinishedEventCallback(res={result}) called!");