1
1
package imgui ;
2
2
3
+ import imgui .callbacks .ImStrConsumer ;
4
+ import imgui .callbacks .ImStrSupplier ;
5
+
3
6
/**
4
7
* Communicate most settings and inputs/outputs to Dear ImGui using this structure.
5
8
* Access via ImGui::GetIO(). Read 'Programmer guide' section in .cpp file for general usage.
@@ -11,6 +14,7 @@ public final class ImGuiIO {
11
14
/*JNI
12
15
#include <imgui.h>
13
16
#include "jni_common.h"
17
+ #include "jni_callbacks.h"
14
18
*/
15
19
16
20
//------------------------------------------------------------------
@@ -253,7 +257,41 @@ public final class ImGuiIO {
253
257
ImGui::GetIO().BackendRendererName = obj_backendRendererName == NULL ? NULL : (char*)env->GetStringUTFChars(obj_backendRendererName, JNI_FALSE);
254
258
*/
255
259
256
- // TODO clipboard callback
260
+ // Optional: Access OS clipboard
261
+ // (default to use native Win32 clipboard on Windows, otherwise uses a private clipboard. Override to access OS clipboard on other architectures)
262
+
263
+ /*JNI
264
+ jobject _setClipboardTextCallback = nullptr;
265
+ jobject _getClipboardTextCallback = nullptr;
266
+
267
+ void setClipboardTextStub(void* userData, const char* text) {
268
+ Jni::CallImStrConsumer(Jni::GetEnv(), _setClipboardTextCallback, text);
269
+ }
270
+
271
+ const char* getClipboardTextStub(void* user_data) {
272
+ JNIEnv* env = Jni::GetEnv();
273
+ jstring jstr = Jni::CallImStrSupplier(env, _getClipboardTextCallback);
274
+ return env->GetStringUTFChars(jstr, 0);
275
+ }
276
+ */
277
+
278
+ public native void setSetClipboardTextFn (ImStrConsumer setClipboardTextCallback ); /*
279
+ if (_setClipboardTextCallback != nullptr) {
280
+ env->DeleteGlobalRef(_setClipboardTextCallback);
281
+ }
282
+
283
+ _setClipboardTextCallback = env->NewGlobalRef(setClipboardTextCallback);
284
+ ImGui::GetIO().SetClipboardTextFn = setClipboardTextStub;
285
+ */
286
+
287
+ public native void setGetClipboardTextFn (ImStrSupplier getClipboardTextCallback ); /*
288
+ if (_getClipboardTextCallback != nullptr) {
289
+ env->DeleteGlobalRef(_getClipboardTextCallback);
290
+ }
291
+
292
+ _getClipboardTextCallback = env->NewGlobalRef(getClipboardTextCallback);
293
+ ImGui::GetIO().GetClipboardTextFn = getClipboardTextStub;
294
+ */
257
295
258
296
//------------------------------------------------------------------
259
297
// Input - Fill before calling NewFrame()
0 commit comments