From c2181f993114aded8bd77039650214d11745a955 Mon Sep 17 00:00:00 2001 From: Olaf Wintermann Date: Tue, 15 Jul 2025 19:46:32 +0200 Subject: [PATCH] fix splitpane and window functions --- .../java/de/unixwork/ui/SplitPaneBuilder.java | 2 +- .../main/java/de/unixwork/ui/UiObject.java | 4 +- .../java/de/unixwork/ui/WebViewBuilder.java | 4 +- .../kotlin/de/unixwork/ui/kotlin/Toplevel.kt | 56 +++++++++++++++++++ .../kotlin/de/unixwork/ui/kotlin/Window.kt | 14 +++++ 5 files changed, 75 insertions(+), 5 deletions(-) diff --git a/ui-java/src/main/java/de/unixwork/ui/SplitPaneBuilder.java b/ui-java/src/main/java/de/unixwork/ui/SplitPaneBuilder.java index e605f1c..5fd8f3f 100644 --- a/ui-java/src/main/java/de/unixwork/ui/SplitPaneBuilder.java +++ b/ui-java/src/main/java/de/unixwork/ui/SplitPaneBuilder.java @@ -124,7 +124,7 @@ public class SplitPaneBuilder extends AbstractWidgetBuilder{ public MemorySegment createArgs(Arena arena) throws Throwable { ArgFuncs ui = ArgFuncs.getInstance(); - MemorySegment args = (MemorySegment)ui.splitpane_args_new.invoke(); + args = (MemorySegment)ui.splitpane_args_new.invoke(); if(fill) { ui.splitpane_args_set_fill.invoke(args, fill); } diff --git a/ui-java/src/main/java/de/unixwork/ui/UiObject.java b/ui-java/src/main/java/de/unixwork/ui/UiObject.java index fac54c2..7a88793 100644 --- a/ui-java/src/main/java/de/unixwork/ui/UiObject.java +++ b/ui-java/src/main/java/de/unixwork/ui/UiObject.java @@ -38,11 +38,11 @@ public class UiObject extends Context { } public static UiObject createSidebarWindow(String title) { - return UiObjectFuncs.instance.window(title); + return UiObjectFuncs.instance.sidebarWindow(title); } public static UiObject createSimpleWindow(String title) { - return UiObjectFuncs.instance.window(title); + return UiObjectFuncs.instance.simpleWindow(title); } public void show() { diff --git a/ui-java/src/main/java/de/unixwork/ui/WebViewBuilder.java b/ui-java/src/main/java/de/unixwork/ui/WebViewBuilder.java index 35696b5..fe32884 100644 --- a/ui-java/src/main/java/de/unixwork/ui/WebViewBuilder.java +++ b/ui-java/src/main/java/de/unixwork/ui/WebViewBuilder.java @@ -19,7 +19,7 @@ public class WebViewBuilder extends AbstractWidgetBuilder { private int rowspan; private String name; private String styleClass; - private UiText value; + private WebView value; private String varname; private int[] states; @@ -79,7 +79,7 @@ public class WebViewBuilder extends AbstractWidgetBuilder { return this; } - public WebViewBuilder value(UiText value) { + public WebViewBuilder value(WebView value) { this.value = value; return this; } diff --git a/ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Toplevel.kt b/ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Toplevel.kt index 19f27a8..882c4d4 100644 --- a/ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Toplevel.kt +++ b/ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Toplevel.kt @@ -19,6 +19,7 @@ import de.unixwork.ui.UiObject import de.unixwork.ui.UiSourceList import de.unixwork.ui.UiString import de.unixwork.ui.UiWidget +import de.unixwork.ui.WebView import java.awt.TextField import java.lang.foreign.MemorySegment @@ -963,4 +964,59 @@ class Toplevel(obj: UiObject) { onChange = onChange ) } + + fun webview( + varname: String? = null, + value: WebView? = null, + fill: Boolean = false, + hexpand: Boolean = false, + vexpand: Boolean = false, + hfill: Boolean = false, + vfill: Boolean = false, + overrideDefaults: Boolean = false, + colspan: Int = -1, + rowspan: Int = -1, + name: String? = null, + styleClass: String? = null, + onChange: EventHandler? = null + ): UiWidget { + val webview = WebView.webview(obj) + varname?.let { + webview.varname(it) + } + value?.let { + webview.value(it) + } + if(fill) { + webview.fill(fill); + } + if(hexpand) { + webview.hexpand(true) + } + if(vexpand) { + webview.vexpand(true) + } + if(hfill) { + webview.hfill(true) + } + if(vfill) { + webview.vfill(true) + } + if(colspan > 0) { + webview.colspan(colspan) + } + if(rowspan > 0) { + webview.rowspan(rowspan) + } + if(overrideDefaults) { + webview.overrideDefaults(true) + } + name?.let { + webview.name(it) + } + styleClass?.let { + webview.styleClass(it) + } + return webview.create() + } } \ No newline at end of file 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 7f5ef47..d3fe17f 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 @@ -8,3 +8,17 @@ fun window(title: String, ui: (Toplevel.() -> Unit)?): Toplevel { ui?.invoke(toplevel) return toplevel } + +fun simpleWindow(title: String, ui: (Toplevel.() -> Unit)?): Toplevel { + val obj = UiObject.createSimpleWindow(title) + val toplevel = Toplevel(obj) + ui?.invoke(toplevel) + return toplevel +} + +fun sidebarWindow(title: String, ui: (Toplevel.() -> Unit)?): Toplevel { + val obj = UiObject.createSidebarWindow(title) + val toplevel = Toplevel(obj) + ui?.invoke(toplevel) + return toplevel +} -- 2.47.3