import java.lang.foreign.MemorySegment;
public class Dialog {
+ static final int FILEDIALOG_SELECT_SINGLE = 0;
+ static final int FILEDIALOG_SELECT_MULTI = 1;
+ static final int FILEDIALOG_SELECT_FOLDER = 2;
+
private UiObject parent;
private String title;
throw new RuntimeException(e);
}
}
+
+ public static void openFileDialog(UiObject obj, int mode, EventHandler callback) {
+ UiObjectFuncs ui = UiObjectFuncs.instance;
+ ui.openFileDialog(obj, mode, callback);
+ }
+
+ public static void saveFileDialog(UiObject obj, String name, EventHandler callback) {
+ UiObjectFuncs ui = UiObjectFuncs.instance;
+ ui.saveFileDialog(obj, name, callback);
+ }
}
}
public void openFileDialog(UiObject obj, int mode, EventHandler callback) {
- EventWrapper ew = new EventWrapper(callback);
+ EventWrapper ew = new EventWrapper(callback, true);
+ try {
+ ui_openfiledialog.invoke(obj.ptr, mode, ew.getCallback(), ew.getUserData());
+ } catch (Throwable e) {
+ throw new RuntimeException(e);
+ }
}
public void saveFileDialog(UiObject obj, String name, EventHandler callback) {
-
+ EventWrapper ew = new EventWrapper(callback, true);
+ try (Arena arena = Arena.ofConfined()) {
+ ui_savefiledialog.invoke(obj.ptr, arena.allocateFrom(name), ew.getCallback(), ew.getUserData());
+ } catch (Throwable e) {
+ throw new RuntimeException(e);
+ }
}
}