diff android/dw.cpp @ 2785:220d63da2183

Android: Implement ITEM_CONTEXT, ITEM_SELECT and TREE_EXPAND callbacks.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Sun, 10 Jul 2022 09:53:19 +0000
parents 7d7eac751f7d
children 20d39af27aa4
line wrap: on
line diff
--- a/android/dw.cpp	Thu Jul 07 23:04:27 2022 +0000
+++ b/android/dw.cpp	Sun Jul 10 09:53:19 2022 +0000
@@ -610,10 +610,10 @@
     const char *utf81 = str1 ? env->GetStringUTFChars(str1, nullptr) : nullptr;
     const char *utf82 = str2 ? env->GetStringUTFChars(str2, nullptr) : nullptr;
 #endif
-    void *params[_DW_EVENT_PARAM_SIZE] = { (void *)obj2, (void *)utf81, (void *)utf82,
-                                            DW_INT_TO_POINTER(inta), DW_INT_TO_POINTER(intb),
-                                            DW_INT_TO_POINTER(intc), DW_INT_TO_POINTER(intd), nullptr,
-                                            DW_INT_TO_POINTER(message), nullptr };
+    void *params[_DW_EVENT_PARAM_SIZE] = { DW_POINTER(obj2), DW_POINTER(utf81), DW_POINTER(utf82),
+                                           DW_INT_TO_POINTER(inta), DW_INT_TO_POINTER(intb),
+                                           DW_INT_TO_POINTER(intc), DW_INT_TO_POINTER(intd), nullptr,
+                                           DW_INT_TO_POINTER(message), nullptr };
 
     return _dw_event_handler(obj1, params);
 }
@@ -775,7 +775,30 @@
     const char *title = jtitle ? env->GetStringUTFChars(jtitle, nullptr) : nullptr;
 #endif
     void *params[_DW_EVENT_PARAM_SIZE] = { nullptr, DW_POINTER(title), nullptr, DW_INT_TO_POINTER(x), DW_INT_TO_POINTER(y),
-                                           nullptr, nullptr, (void *)data, DW_INT_TO_POINTER(message), nullptr };
+                                           nullptr, nullptr, DW_POINTER(data), DW_INT_TO_POINTER(message), nullptr };
+
+    _dw_event_handler(obj1, params);
+}
+
+JNIEXPORT void JNICALL
+Java_org_dbsoft_dwindows_DWindows_eventHandlerTree(JNIEnv* env, jobject obj, jobject obj1,
+                                                   jint message, jobject item, jstring jtitle, jlong data) {
+#ifdef _DW_EVENT_THREADING
+    char *title = jtitle ? strdup(env->GetStringUTFChars(jtitle, nullptr)) : nullptr;
+#else
+    const char *title = jtitle ? env->GetStringUTFChars(jtitle, nullptr) : nullptr;
+#endif
+    void *params[_DW_EVENT_PARAM_SIZE] = { DW_POINTER(item), DW_POINTER(title), nullptr, nullptr, nullptr,
+                                           nullptr, nullptr, DW_POINTER(data), DW_INT_TO_POINTER(message), nullptr };
+
+    _dw_event_handler(obj1, params);
+}
+
+JNIEXPORT void JNICALL
+Java_org_dbsoft_dwindows_DWindows_eventHandlerTreeItem(JNIEnv* env, jobject obj, jobject obj1,
+                                                   jint message, jobject item) {
+    void *params[_DW_EVENT_PARAM_SIZE] = { DW_POINTER(item), nullptr, nullptr, nullptr, nullptr,
+                                           nullptr, nullptr, nullptr, DW_INT_TO_POINTER(message), nullptr };
 
     _dw_event_handler(obj1, params);
 }