[AT-SPI] Accessible implementation 96/254296/3
authorBartlomiej Grzelewski <b.grzelewski@samsung.com>
Mon, 22 Feb 2021 10:41:30 +0000 (11:41 +0100)
committerBartlomiej Grzelewski <b.grzelewski@samsung.com>
Wed, 3 Mar 2021 10:07:48 +0000 (11:07 +0100)
Support for Accessible::Emit
Extend support for Dali::Accessiblity::Bridge
Methods AddPopup and RemovePopup.
Replace convert param with marshaling

Change-Id: I1407618b351735930ea53d0cd6eba819b4fa6272

dali-csharp-binder/src/control-devel_wrap.cpp
dali-csharp-binder/src/signal_wrap.cpp

index 4d6a964..5933553 100644 (file)
@@ -381,6 +381,118 @@ SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_Toolkit_DevelControl_GetBoundAccessibil
     return (void*)result;
 }
 
+/***********************************************
+ **************** Accessibility ****************
+ ***********************************************/
+
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_Accessibility_EmitAccessibilityEvent(void *arg1, int arg2_event) {
+    GUARD_ON_NULL_RET(arg1);
+    try_catch([&]() {
+        Dali::Actor *control = (Dali::Actor*) arg1;
+        auto accessible = GetBoundAccessibilityObject(*control);
+        if (accessible)
+            accessible->Emit((Dali::Accessibility::ObjectPropertyChangeEvent)arg2_event);
+        else
+            SWIG_CSharpException(SWIG_RuntimeError, "Actor does not have accessible object.");
+    });
+}
+
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_Accessibility_EmitAccessibilityStateChangedEvent(void *arg1, int arg2_state, int arg3) {
+    GUARD_ON_NULL_RET(arg1);
+    try_catch([&]() {
+        Dali::Actor *control = (Dali::Actor*) arg1;
+        auto accessible = GetBoundAccessibilityObject(*control);
+        if (accessible)
+            accessible->EmitStateChanged((Dali::Accessibility::State)arg2_state, arg3);
+        else
+            SWIG_CSharpException(SWIG_RuntimeError, "Actor does not have accessible object.");
+    });
+}
+
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_Accessibility_EmitTextInsertedEvent(void *arg1, int arg2_position, int arg3_length, char *arg4_content) {
+    GUARD_ON_NULL_RET(arg1);
+    try_catch([&]() {
+        Dali::Actor *control = (Dali::Actor*) arg1;
+        auto accessible = GetBoundAccessibilityObject(*control);
+        std::string content(arg4_content ? arg4_content : "");
+        if (accessible)
+            accessible->EmitTextInserted(arg2_position, arg3_length, content);
+        else
+            SWIG_CSharpException(SWIG_RuntimeError, "Actor does not have accessible object.");
+    });
+}
+
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_Accessibility_EmitTextDeletedEvent(void *arg1, int arg2_position, int arg3_length, char *arg4_content) {
+    GUARD_ON_NULL_RET(arg1);
+    try_catch([&]() {
+        Dali::Actor *control = (Dali::Actor*) arg1;
+        auto accessible = GetBoundAccessibilityObject(*control);
+        std::string content(arg4_content ? arg4_content : "");
+        if (accessible)
+            accessible->EmitTextDeleted(arg2_position, arg3_length, content);
+        else
+            SWIG_CSharpException(SWIG_RuntimeError, "Actor does not have accessible object.");
+    });
+}
+
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_Accessibility_EmitTextCaretMovedEvent(void *arg1, int arg2_position) {
+    GUARD_ON_NULL_RET(arg1);
+    try_catch([&]() {
+        Dali::Actor *control = (Dali::Actor*) arg1;
+        auto accessible = GetBoundAccessibilityObject(*control);
+        if (accessible)
+            accessible->EmitTextCaretMoved(arg2_position);
+        else
+            SWIG_CSharpException(SWIG_RuntimeError, "Actor does not have accessible object.");
+    });
+}
+
+SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_Accessibility_new_Range(int arg1_start, int arg2_end, char *arg3_content) {
+    Dali::Accessibility::Range *result = nullptr;
+    try_catch([&]() {
+        result = new Dali::Accessibility::Range(arg1_start, arg2_end, arg3_content);
+    });
+    return (void*)result;
+}
+
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_Accessibility_delete_Range(void *arg1_range) {
+    try_catch([&]() {
+        delete static_cast<Dali::Accessibility::Range*>(arg1_range);
+    });
+}
+
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_Accessibility_Bridge_Add_Popup(void *arg1_actor) {
+    GUARD_ON_NULL_RET(arg1_actor);
+    try_catch([&]() {
+        Dali::Actor *actor = (Dali::Actor*) arg1_actor;
+        auto accessible = Dali::Accessibility::Accessible::Get(*actor);
+        auto bridge = Dali::Accessibility::Bridge::GetCurrentBridge();
+
+        if (!accessible) {
+            SWIG_CSharpException(SWIG_RuntimeError, "No accessible object bind with actor.");
+            return;
+        }
+
+        bridge->AddPopup(accessible);
+    });
+}
+
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_Accessibility_Bridge_Remove_Popup(void *arg1_actor) {
+    GUARD_ON_NULL_RET(arg1_actor);
+    try_catch([&]() {
+        Dali::Actor *actor = (Dali::Actor*) arg1_actor;
+        auto accessible = Dali::Accessibility::Accessible::Get(*actor);
+        auto bridge = Dali::Accessibility::Bridge::GetCurrentBridge();
+
+        if (!accessible) {
+            SWIG_CSharpException(SWIG_RuntimeError, "No accessible object bind with actor.");
+            return;
+        }
+
+        bridge->RemovePopup(accessible);
+    });
+}
+
 #ifdef __cplusplus
 } // extern "C"
 #endif
index 8000c62..c13f0b2 100644 (file)
@@ -161,81 +161,15 @@ SWIGEXPORT void SWIGSTDCALL CSharp_Dali_Signal_GesturePairToVoid_delete(void *ar
     });
 }
 
-SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Signal_GesturePairToVoid_Convert_Param1(void *arg1) {
-    int result = 0;
-    GUARD_ON_NULL_RET0(arg1);
-    try_catch([&]() {
-        auto gp = (GesturePair*)arg1;
-        result = (int)gp->first.type;
-    });
-    return result;
-}
-
-SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Signal_GesturePairToVoid_Convert_Param2(void *arg1) {
-    int result = 0;
-    GUARD_ON_NULL_RET0(arg1);
-    try_catch([&]() {
-        auto gp = (GesturePair*)arg1;
-        result = gp->first.xBeg;
-    });
-    return result;
-}
-
-SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Signal_GesturePairToVoid_Convert_Param3(void *arg1) {
-    int result = 0;
-    GUARD_ON_NULL_RET0(arg1);
-    try_catch([&]() {
-        auto gp = (GesturePair*)arg1;
-        result = gp->first.xEnd;
-    });
-    return result;
-}
-
-SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Signal_GesturePairToVoid_Convert_Param4(void *arg1) {
-    int result = 0;
-    GUARD_ON_NULL_RET0(arg1);
-    try_catch([&]() {
-        auto gp = (GesturePair*)arg1;
-        result = gp->first.yBeg;
-    });
-    return result;
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Dali_Signal_GesturePairToVoid_GetSizeOfGestureInfo(void) {
+    return sizeof(Dali::Accessibility::GestureInfo);
 }
 
-SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Signal_GesturePairToVoid_Convert_Param5(void *arg1) {
+SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Signal_GesturePairToVoid_GetResult(void *arg1) {
     int result = 0;
     GUARD_ON_NULL_RET0(arg1);
     try_catch([&]() {
         auto gp = (GesturePair*)arg1;
-        result = gp->first.yEnd;
-    });
-    return result;
-}
-
-SWIGEXPORT int SWIGSTDCALL CSharp_Dali_Signal_GesturePairToVoid_Convert_Param6(void *arg1) {
-    int result = 0;
-    GUARD_ON_NULL_RET0(arg1);
-    try_catch([&]() {
-        auto gp = (GesturePair*)arg1;
-        result = (int)gp->first.state;
-    });
-    return result;
-}
-
-SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Dali_Signal_GesturePairToVoid_Convert_Param7(void *arg1) {
-    unsigned int result = 0;
-    GUARD_ON_NULL_RET0(arg1);
-    try_catch([&]() {
-        auto gp = (GesturePair*)arg1;
-        result = gp->first.eventTime;
-    });
-    return result;
-}
-
-SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Dali_Signal_GesturePairToVoid_Convert_Param8(void *arg1) {
-    unsigned int result = 0;
-    GUARD_ON_NULL_RET0(arg1);
-    try_catch([&]() {
-        auto gp = (GesturePair*)arg1;
         result = gp->second;
     });
     return result;