From 965dc11a19567d5ba4fa7fa463e5db726aabacf0 Mon Sep 17 00:00:00 2001 From: Olaf Wintermann Date: Mon, 15 Sep 2025 16:13:02 +0200 Subject: [PATCH] add splitpane positionProperty parameter --- ui-java/src/main/java/de/unixwork/ui/ArgFuncs.java | 3 +++ .../src/main/java/de/unixwork/ui/SplitPaneBuilder.java | 10 ++++++++++ .../src/main/kotlin/de/unixwork/ui/kotlin/Toplevel.kt | 4 ++++ 3 files changed, 17 insertions(+) diff --git a/ui-java/src/main/java/de/unixwork/ui/ArgFuncs.java b/ui-java/src/main/java/de/unixwork/ui/ArgFuncs.java index 970c969..145201d 100644 --- a/ui-java/src/main/java/de/unixwork/ui/ArgFuncs.java +++ b/ui-java/src/main/java/de/unixwork/ui/ArgFuncs.java @@ -145,6 +145,7 @@ class ArgFuncs { MethodHandle splitpane_args_set_columnspacing; MethodHandle splitpane_args_set_rowspacing; MethodHandle splitpane_args_set_initial_position; + MethodHandle splitpane_args_set_position_property; MethodHandle splitpane_args_set_value; MethodHandle splitpane_args_set_varname; MethodHandle splitpane_args_set_max_panes; @@ -579,6 +580,7 @@ class ArgFuncs { MemorySegment ui_splitpane_args_set_columnspacing_addr = lib.find("ui_splitpane_args_set_columnspacing").orElseThrow(); MemorySegment ui_splitpane_args_set_rowspacing_addr = lib.find("ui_splitpane_args_set_rowspacing").orElseThrow(); MemorySegment ui_splitpane_args_set_initial_position_addr = lib.find("ui_splitpane_args_set_initial_position").orElseThrow(); + MemorySegment ui_splitpane_args_set_position_property_addr = lib.find("ui_splitpane_args_set_position_property").orElseThrow(); MemorySegment ui_splitpane_args_set_value_addr = lib.find("ui_splitpane_args_set_value").orElseThrow(); MemorySegment ui_splitpane_args_set_varname_addr = lib.find("ui_splitpane_args_set_varname").orElseThrow(); MemorySegment ui_splitpane_args_set_max_panes_addr = lib.find("ui_splitpane_args_set_max_panes").orElseThrow(); @@ -1004,6 +1006,7 @@ class ArgFuncs { splitpane_args_set_columnspacing = linker.downcallHandle(ui_splitpane_args_set_columnspacing_addr, sigv_mi); splitpane_args_set_rowspacing = linker.downcallHandle(ui_splitpane_args_set_rowspacing_addr, sigv_mi); splitpane_args_set_initial_position = linker.downcallHandle(ui_splitpane_args_set_initial_position_addr, sigv_mi); + splitpane_args_set_position_property = linker.downcallHandle(ui_splitpane_args_set_position_property_addr, sigv_mm); splitpane_args_set_value = linker.downcallHandle(ui_splitpane_args_set_value_addr, sigv_mm); splitpane_args_set_varname = linker.downcallHandle(ui_splitpane_args_set_varname_addr, sigv_mm); splitpane_args_set_max_panes = linker.downcallHandle(ui_splitpane_args_set_max_panes_addr, sigv_mi); 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 5fd8f3f..4a18608 100644 --- a/ui-java/src/main/java/de/unixwork/ui/SplitPaneBuilder.java +++ b/ui-java/src/main/java/de/unixwork/ui/SplitPaneBuilder.java @@ -20,6 +20,7 @@ public class SplitPaneBuilder extends AbstractWidgetBuilder{ private int columnspacing; private int rowspacing; private int initialPosition; + private String positionProperty; private UiInteger value; private String varname; private int maxPanes; @@ -105,6 +106,11 @@ public class SplitPaneBuilder extends AbstractWidgetBuilder{ return this; } + public SplitPaneBuilder positionProperty(String positionProperty) { + this.positionProperty = positionProperty; + return this; + } + public SplitPaneBuilder value(UiInteger value) { this.value = value; return this; @@ -172,6 +178,10 @@ public class SplitPaneBuilder extends AbstractWidgetBuilder{ if(initialPosition > 0) { ui.splitpane_args_set_initial_position.invoke(args, initialPosition); } + if(positionProperty != null) { + MemorySegment cstr = arena.allocateFrom(positionProperty); + ui.splitpane_args_set_position_property.invoke(args, cstr); + } if(value != null) { ui.splitpane_args_set_value.invoke(args, value.valuePtr); } 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 0a6a580..0096e63 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 @@ -492,6 +492,7 @@ class Toplevel(obj: UiObject) { margin: Int = -1, spacing: Int = -1, initialPosition: Int = 0, + positionProperty: String? = null, value: UiInteger? = null, varname: String? = null, maxPanes: Int = 0, @@ -536,6 +537,9 @@ class Toplevel(obj: UiObject) { if(initialPosition > 0) { container.initialPosition(initialPosition) } + if(positionProperty != null) { + container.positionProperty(positionProperty) + } if(value != null) { container.value(value) } -- 2.47.3