[AT-SPI] Add ScreenReaderEnabled, Disabled 49/272349/2
authorShinwoo Kim <cinoo.kim@samsung.com>
Tue, 15 Mar 2022 06:42:16 +0000 (15:42 +0900)
committerShinwoo Kim <cinoo.kim@samsung.com>
Mon, 21 Mar 2022 08:50:25 +0000 (17:50 +0900)
ScreenReaderEnabled should be distinguished from IsEnabled.
This is because there are things to do only when the screen reader is enabled.

Dependency:
https://review.tizen.org/gerrit/#/c/platform/core/uifw/dali-adaptor/+/272348/

Change-Id: I45b3527bf7f487152c382237993496c21d135296

dali-csharp-binder/src/atspi-wrap.cpp

index 061a743..5766fb1 100755 (executable)
@@ -108,6 +108,11 @@ SWIGEXPORT bool SWIGSTDCALL csharp_dali_accessibility_IsEnabled()
   return Dali::AtspiAccessibility::IsEnabled();
 }
 
+SWIGEXPORT bool SWIGSTDCALL csharp_dali_accessibility_IsScreenReaderEnabled()
+{
+  return Dali::AtspiAccessibility::IsScreenReaderEnabled();
+}
+
 SWIGEXPORT void SWIGSTDCALL csharp_dali_accessibility_RegisterEnabledDisabledSignalHandler(void (*enabledSignalHandler)(), void (*disabledSignalHandler)())
 {
   using Dali::Accessibility::Bridge;
@@ -128,6 +133,26 @@ SWIGEXPORT void SWIGSTDCALL csharp_dali_accessibility_RegisterEnabledDisabledSig
   Bridge::DisabledSignal().Connect(disabledSignalHandler);
 }
 
+SWIGEXPORT void SWIGSTDCALL csharp_dali_accessibility_RegisterScreenReaderEnabledDisabledSignalHandler(void (*screenReaderEnabledSignalHandler)(), void (*screenReaderDisabledSignalHandler)())
+{
+  using Dali::Accessibility::Bridge;
+
+  if (!screenReaderEnabledSignalHandler)
+  {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Signal handler is null", NAMEOF(screenReaderEnabledSignalHandler));
+    return;
+  }
+
+  if (!screenReaderDisabledSignalHandler)
+  {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Signal handler is null", NAMEOF(screenReaderDisabledSignalHandler));
+    return;
+  }
+
+  Bridge::ScreenReaderEnabledSignal().Connect(screenReaderEnabledSignalHandler);
+  Bridge::ScreenReaderDisabledSignal().Connect(screenReaderDisabledSignalHandler);
+}
+
 #ifdef __cplusplus
 }
 #endif