From 34b4df50b3d4c184eafc0019aecdde4b7034a34c Mon Sep 17 00:00:00 2001 From: Olaf Wintermann Date: Tue, 19 Aug 2025 21:43:44 +0200 Subject: [PATCH] add kotlin file dialog functions --- .../src/main/java/de/unixwork/ui/Dialog.java | 6 ++--- .../kotlin/de/unixwork/ui/kotlin/Window.kt | 27 +++++++++++++++++++ 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/ui-java/src/main/java/de/unixwork/ui/Dialog.java b/ui-java/src/main/java/de/unixwork/ui/Dialog.java index 19f5f85..f0674c9 100644 --- a/ui-java/src/main/java/de/unixwork/ui/Dialog.java +++ b/ui-java/src/main/java/de/unixwork/ui/Dialog.java @@ -4,9 +4,9 @@ import java.lang.foreign.Arena; 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; + public static final int FILEDIALOG_SELECT_SINGLE = 0; + public static final int FILEDIALOG_SELECT_MULTI = 1; + public static final int FILEDIALOG_SELECT_FOLDER = 2; private UiObject parent; diff --git a/ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Window.kt b/ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Window.kt index a45d720..aeae125 100644 --- a/ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Window.kt +++ b/ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Window.kt @@ -117,3 +117,30 @@ fun dialogWindow( ui?.invoke(toplevel) return toplevel } + +fun openFileDialog( + parent: UiObject, + multiSelect: Boolean? = null, + callback: EventHandler +) { + var mode = 0 + multiSelect?.let { + mode = Dialog.FILEDIALOG_SELECT_MULTI + } + Dialog.openFileDialog(parent, mode, callback) +} + +fun selectDirectoryDialog( + parent: UiObject, + callback: EventHandler +) { + Dialog.openFileDialog(parent, Dialog.FILEDIALOG_SELECT_FOLDER, callback) +} + +fun saveFileDialog( + parent: UiObject, + name: String? = null, + callback: EventHandler +) { + Dialog.saveFileDialog(parent, name, callback) +} -- 2.47.3