]> uap-core.de Git - rssreader.git/commitdiff
add spinbox min, max, step, digits args
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Fri, 12 Sep 2025 15:49:53 +0000 (17:49 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Fri, 12 Sep 2025 15:49:53 +0000 (17:49 +0200)
ui-java/src/main/java/de/unixwork/ui/ArgFuncs.java
ui-java/src/main/java/de/unixwork/ui/SpinBoxBuilder.java
ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Toplevel.kt

index 748935d370bf51ec8d8b2a36bb71da7833eff50e..970c969d50f23e9918a68cc8df450cc562099884 100644 (file)
@@ -404,6 +404,10 @@ class ArgFuncs {
     MethodHandle spinbox_args_set_style_class;
     MethodHandle spinbox_args_set_onchange;
     MethodHandle spinbox_args_set_onchangedata;
+    MethodHandle spinbox_args_set_min;
+    MethodHandle spinbox_args_set_max;
+    MethodHandle spinbox_args_set_step;
+    MethodHandle spinbox_args_set_digits;
     MethodHandle spinbox_args_set_varname;
     MethodHandle spinbox_args_set_intvalue;
     MethodHandle spinbox_args_set_doublevalue;
@@ -834,6 +838,10 @@ class ArgFuncs {
         MemorySegment ui_spinbox_args_set_style_class_addr = lib.find("ui_spinbox_args_set_style_class").orElseThrow();
         MemorySegment ui_spinbox_args_set_onchange_addr = lib.find("ui_spinbox_args_set_onchange").orElseThrow();
         MemorySegment ui_spinbox_args_set_onchangedata_addr = lib.find("ui_spinbox_args_set_onchangedata").orElseThrow();
+        MemorySegment ui_spinbox_args_set_min_addr = lib.find("ui_spinbox_args_set_min").orElseThrow();
+        MemorySegment ui_spinbox_args_set_max_addr = lib.find("ui_spinbox_args_set_max").orElseThrow();
+        MemorySegment ui_spinbox_args_set_step_addr = lib.find("ui_spinbox_args_set_step").orElseThrow();
+        MemorySegment ui_spinbox_args_set_digits_addr = lib.find("ui_spinbox_args_set_digits").orElseThrow();
         MemorySegment ui_spinbox_args_set_varname_addr = lib.find("ui_spinbox_args_set_varname").orElseThrow();
         MemorySegment ui_spinbox_args_set_intvalue_addr = lib.find("ui_spinbox_args_set_intvalue").orElseThrow();
         MemorySegment ui_spinbox_args_set_doublevalue_addr = lib.find("ui_spinbox_args_set_doublevalue").orElseThrow();
@@ -1255,6 +1263,10 @@ class ArgFuncs {
         spinbox_args_set_style_class = linker.downcallHandle(ui_spinbox_args_set_style_class_addr, sigv_mm);
         spinbox_args_set_onchange = linker.downcallHandle(ui_spinbox_args_set_onchange_addr, sigv_mm);
         spinbox_args_set_onchangedata = linker.downcallHandle(ui_spinbox_args_set_onchangedata_addr, sigv_mm);
+        spinbox_args_set_min = linker.downcallHandle(ui_spinbox_args_set_min_addr, sigv_md);
+        spinbox_args_set_max = linker.downcallHandle(ui_spinbox_args_set_max_addr, sigv_md);
+        spinbox_args_set_step = linker.downcallHandle(ui_spinbox_args_set_step_addr, sigv_md);
+        spinbox_args_set_digits = linker.downcallHandle(ui_spinbox_args_set_digits_addr, sigv_mi);
         spinbox_args_set_varname = linker.downcallHandle(ui_spinbox_args_set_varname_addr, sigv_mm);
         spinbox_args_set_intvalue = linker.downcallHandle(ui_spinbox_args_set_intvalue_addr, sigv_mm);
         spinbox_args_set_doublevalue = linker.downcallHandle(ui_spinbox_args_set_doublevalue_addr, sigv_mm);
index b0a8c7208807bb4b19c418a5141f54b3a28eb35f..b2e89a34e128e3ef6660b6ecf22eb7c9d6ad3f46 100644 (file)
@@ -15,6 +15,10 @@ public class SpinBoxBuilder extends AbstractWidgetBuilder{
     private int rowspan;
     private String name;
     private String styleClass;
+    private double min;
+    private double max;
+    private double step;
+    private int digits;
     private UiInteger intValue;
     private UiDouble doubleValue;
     private UiRange rangeValue;
@@ -79,6 +83,26 @@ public class SpinBoxBuilder extends AbstractWidgetBuilder{
         return this;
     }
 
+    public SpinBoxBuilder min(double min) {
+        this.min = min;
+        return this;
+    }
+
+    public SpinBoxBuilder max(double max) {
+        this.max = max;
+        return this;
+    }
+
+    public SpinBoxBuilder step(double step) {
+        this.step = step;
+        return this;
+    }
+
+    public SpinBoxBuilder digits(int digits) {
+        this.digits = digits;
+        return this;
+    }
+
     public SpinBoxBuilder intValue(UiInteger value) {
         this.intValue = value;
         return this;
@@ -153,6 +177,18 @@ public class SpinBoxBuilder extends AbstractWidgetBuilder{
             ui.spinbox_args_set_onchange.invoke(args, event.getCallback());
             ui.spinbox_args_set_onchangedata.invoke(args, event.getUserData());
         }
+        if(min != 0) {
+            ui.spinbox_args_set_min.invoke(args, min);
+        }
+        if(max != 0) {
+            ui.spinbox_args_set_max.invoke(args, max);
+        }
+        if(step != 0) {
+            ui.spinbox_args_set_step.invoke(args, step);
+        }
+        if(digits != 0) {
+            ui.spinbox_args_set_digits.invoke(args, digits);
+        }
         if(varname != null) {
             MemorySegment cstr = arena.allocateFrom(varname);
             ui.spinbox_args_set_varname.invoke(args, cstr);
index 45ab0dce6fa49dcc2c3da0109e840d29b3436064..b6a24ebb2592838a21952e2d3af8ed8de3a72d74 100644 (file)
@@ -1538,6 +1538,10 @@ class Toplevel(obj: UiObject) {
         intValue: UiInteger? = null,
         doubleValue: UiDouble? = null,
         rangeValue: UiRange? = null,
+        min: Double = 0.0,
+        max: Double = 0.0,
+        step: Double = 0.0,
+        digits: Int = 0,
         fill: Boolean = false,
         hexpand: Boolean = false,
         vexpand: Boolean = false,