From: Olaf Wintermann Date: Tue, 23 Sep 2025 15:27:46 +0000 (+0200) Subject: implement widget states parameters X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;h=3ac0078956847380d98ad3809b0403adfbf9574c;p=rssreader.git implement widget states parameters --- diff --git a/pom.xml b/pom.xml index c99dc62..972ebcb 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ UTF-8 - 24 + 25 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 145201d..cdc010b 100644 --- a/ui-java/src/main/java/de/unixwork/ui/ArgFuncs.java +++ b/ui-java/src/main/java/de/unixwork/ui/ArgFuncs.java @@ -437,6 +437,7 @@ class ArgFuncs { FunctionDescriptor sigv_m = FunctionDescriptor.ofVoid(ValueLayout.ADDRESS); FunctionDescriptor sigv_mm = FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.ADDRESS); FunctionDescriptor sigv_mml = FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.JAVA_LONG); + FunctionDescriptor sigv_mmi = FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.JAVA_INT); FunctionDescriptor sigv_mb = FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_BOOLEAN); FunctionDescriptor sigv_mi = FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT); FunctionDescriptor sigv_md = FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_DOUBLE); @@ -931,7 +932,7 @@ class ArgFuncs { toolbar_item_args_set_label = linker.downcallHandle(ui_toolbar_item_args_set_label_addr, sigv_mm); toolbar_item_args_set_onclick = linker.downcallHandle(ui_toolbar_item_args_set_onclick_addr, sigv_mm); toolbar_item_args_set_onclickdata = linker.downcallHandle(ui_toolbar_item_args_set_onclickdata_addr, sigv_mm); - toolbar_item_args_set_groups = linker.downcallHandle(ui_toolbar_item_args_set_groups_addr, sigv_mm); + toolbar_item_args_set_groups = linker.downcallHandle(ui_toolbar_item_args_set_groups_addr, sigv_mmi); toolbar_item_args_free = linker.downcallHandle(ui_toolbar_item_args_free_addr, sigv_m); toolbar_toggleitem_args_new = linker.downcallHandle(ui_toolbar_toggleitem_args_new_addr, sigm); @@ -941,7 +942,7 @@ class ArgFuncs { toolbar_toggleitem_args_set_varname = linker.downcallHandle(ui_toolbar_toggleitem_args_set_varname_addr, sigv_mm); toolbar_toggleitem_args_set_onchange = linker.downcallHandle(ui_toolbar_toggleitem_args_set_onchange_addr, sigv_mm); toolbar_toggleitem_args_set_onchangedata = linker.downcallHandle(ui_toolbar_toggleitem_args_set_onchangedata_addr, sigv_mm); - toolbar_toggleitem_args_set_groups = linker.downcallHandle(ui_toolbar_toggleitem_args_set_groups_addr, sigv_mm); + toolbar_toggleitem_args_set_groups = linker.downcallHandle(ui_toolbar_toggleitem_args_set_groups_addr, sigv_mmi); toolbar_toggleitem_args_free = linker.downcallHandle(ui_toolbar_toggleitem_args_free_addr, sigv_m); toolbar_menu_args_new = linker.downcallHandle(ui_toolbar_menu_args_new_addr, sigm); @@ -1109,7 +1110,7 @@ class ArgFuncs { button_args_set_labeltype = linker.downcallHandle(ui_button_args_set_labeltype_addr, sigv_mi); button_args_set_onclick = linker.downcallHandle(ui_button_args_set_onclick_addr, sigv_mm); button_args_set_onclickdata = linker.downcallHandle(ui_button_args_set_onclickdata_addr, sigv_mm); - button_args_set_groups = linker.downcallHandle(ui_button_args_set_groups_addr, sigv_mm); + button_args_set_groups = linker.downcallHandle(ui_button_args_set_groups_addr, sigv_mmi); button_args_free = linker.downcallHandle(ui_button_args_free_addr, sigv_m); toggle_args_new = linker.downcallHandle(ui_toggle_args_new_addr, sigm); @@ -1132,7 +1133,7 @@ class ArgFuncs { toggle_args_set_onchange = linker.downcallHandle(ui_toggle_args_set_onchange_addr, sigv_mm); toggle_args_set_onchangedata = linker.downcallHandle(ui_toggle_args_set_onchangedata_addr, sigv_mm); toggle_args_set_enablegroup = linker.downcallHandle(ui_toggle_args_set_enablegroup, sigv_mi); - toggle_args_set_groups = linker.downcallHandle(ui_toggle_args_set_groups_addr, sigv_mm); + toggle_args_set_groups = linker.downcallHandle(ui_toggle_args_set_groups_addr, sigv_mmi); toggle_args_free = linker.downcallHandle(ui_toggle_args_free_addr, sigv_m); linkbutton_args_new = linker.downcallHandle(ui_linkbutton_args_new_addr, sigm); @@ -1154,7 +1155,7 @@ class ArgFuncs { linkbutton_args_set_onclickdata = linker.downcallHandle(ui_linkbutton_args_set_onclickdata_addr, sigv_mm); linkbutton_args_set_nofollow = linker.downcallHandle(ui_linkbutton_args_set_nofollow_addr, sigv_mb); linkbutton_args_set_type = linker.downcallHandle(ui_linkbutton_args_set_type_addr, sigv_mi); - linkbutton_args_set_groups = linker.downcallHandle(ui_linkbutton_args_set_groups_addr, sigv_mm); + linkbutton_args_set_groups = linker.downcallHandle(ui_linkbutton_args_set_groups_addr, sigv_mmi); linkbutton_args_free = linker.downcallHandle(ui_linkbutton_args_free_addr, sigv_m); list_args_new = linker.downcallHandle(ui_list_args_new_addr, sigm); @@ -1189,7 +1190,7 @@ class ArgFuncs { list_args_set_ondropdata = linker.downcallHandle(ui_list_args_set_ondropdata_addr, sigv_mm); list_args_set_multiselection = linker.downcallHandle(ui_list_args_set_multiselection_addr, sigv_mb); list_args_set_contextmenu = linker.downcallHandle(ui_list_args_set_contextmenu_addr, sigv_mm); - list_args_set_groups = linker.downcallHandle(ui_list_args_set_groups_addr, sigv_mm); + list_args_set_groups = linker.downcallHandle(ui_list_args_set_groups_addr, sigv_mmi); list_args_free = linker.downcallHandle(ui_list_args_free_addr, sigv_m); sourcelist_args_new = linker.downcallHandle(ui_sourcelist_args_new_addr, sigm); @@ -1230,7 +1231,7 @@ class ArgFuncs { textarea_args_set_value = linker.downcallHandle(ui_textarea_args_set_value_addr, sigv_mm); textarea_args_set_onchange = linker.downcallHandle(ui_textarea_args_set_onchange_addr, sigv_mm); textarea_args_set_onchangedata = linker.downcallHandle(ui_textarea_args_set_onchangedata_addr, sigv_mm); - textarea_args_set_groups = linker.downcallHandle(ui_textarea_args_set_groups_addr, sigv_mm); + textarea_args_set_groups = linker.downcallHandle(ui_textarea_args_set_groups_addr, sigv_mmi); textarea_args_free = linker.downcallHandle(ui_textarea_args_free_addr, sigv_m); textfield_args_new = linker.downcallHandle(ui_textfield_args_new_addr, sigm); @@ -1250,7 +1251,7 @@ class ArgFuncs { textfield_args_set_onchangedata = linker.downcallHandle(ui_textfield_args_set_onchangedata_addr, sigv_mm); textfield_args_set_onactivate = linker.downcallHandle(ui_textfield_args_set_onactivate_addr, sigv_mm); textfield_args_set_onactivatedata = linker.downcallHandle(ui_textfield_args_set_onactivatedata_addr, sigv_mm); - textfield_args_set_groups = linker.downcallHandle(ui_textfield_args_set_groups_addr, sigv_mm); + textfield_args_set_groups = linker.downcallHandle(ui_textfield_args_set_groups_addr, sigv_mmi); textfield_args_free = linker.downcallHandle(ui_textfield_args_free_addr, sigv_m); spinbox_args_new = linker.downcallHandle(ui_spinbox_args_new_addr, sigm); @@ -1274,7 +1275,7 @@ class ArgFuncs { 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); spinbox_args_set_rangevalue = linker.downcallHandle(ui_spinbox_args_set_rangevalue_addr, sigv_mm); - spinbox_args_set_groups = linker.downcallHandle(ui_spinbox_args_set_groups_addr, sigv_mm); + spinbox_args_set_groups = linker.downcallHandle(ui_spinbox_args_set_groups_addr, sigv_mmi); spinbox_args_free = linker.downcallHandle(ui_spinbox_args_free_addr, sigv_m); webview_args_new = linker.downcallHandle(ui_webview_args_new_addr, sigm); @@ -1290,7 +1291,7 @@ class ArgFuncs { webview_args_set_style_class = linker.downcallHandle(ui_webview_args_set_style_class_addr, sigv_mm); webview_args_set_varname = linker.downcallHandle(ui_webview_args_set_varname_addr, sigv_mm); webview_args_set_value = linker.downcallHandle(ui_webview_args_set_value_addr, sigv_mm); - webview_args_set_groups = linker.downcallHandle(ui_webview_args_set_groups_addr, sigv_mm); + webview_args_set_groups = linker.downcallHandle(ui_webview_args_set_groups_addr, sigv_mmi); webview_args_free = linker.downcallHandle(ui_webview_args_free_addr, sigv_m); } diff --git a/ui-java/src/main/java/de/unixwork/ui/ButtonBuilder.java b/ui-java/src/main/java/de/unixwork/ui/ButtonBuilder.java index 32d669c..8406bee 100644 --- a/ui-java/src/main/java/de/unixwork/ui/ButtonBuilder.java +++ b/ui-java/src/main/java/de/unixwork/ui/ButtonBuilder.java @@ -160,6 +160,11 @@ public class ButtonBuilder extends AbstractWidgetBuilder { MemorySegment cstr = arena.allocateFrom(icon); ui.button_args_set_icon.invoke(args, cstr); } + if(states != null) { + MemorySegment st = arena.allocate(ValueLayout.JAVA_INT, states.length); + MemorySegment.copy(states, 0, st, ValueLayout.JAVA_INT, 0, states.length); + ui.button_args_set_groups.invoke(args, st); + } ui.button_args_set_labeltype.invoke(args, labelType); if(onClick != null) { diff --git a/ui-java/src/main/java/de/unixwork/ui/LinkButtonBuilder.java b/ui-java/src/main/java/de/unixwork/ui/LinkButtonBuilder.java index 17e0af6..ada6d89 100644 --- a/ui-java/src/main/java/de/unixwork/ui/LinkButtonBuilder.java +++ b/ui-java/src/main/java/de/unixwork/ui/LinkButtonBuilder.java @@ -198,6 +198,12 @@ public class LinkButtonBuilder extends AbstractWidgetBuilder { ui.linkbutton_args_set_onclickdata.invoke(args, event.getUserData()); } + if(states != null) { + MemorySegment st = arena.allocate(ValueLayout.JAVA_INT, states.length); + MemorySegment.copy(states, 0, st, ValueLayout.JAVA_INT, 0, states.length); + ui.linkbutton_args_set_groups.invoke(args, st); + } + return args; } } diff --git a/ui-java/src/main/java/de/unixwork/ui/ListViewBuilder.java b/ui-java/src/main/java/de/unixwork/ui/ListViewBuilder.java index 501b945..cd2068b 100644 --- a/ui-java/src/main/java/de/unixwork/ui/ListViewBuilder.java +++ b/ui-java/src/main/java/de/unixwork/ui/ListViewBuilder.java @@ -2,6 +2,7 @@ package de.unixwork.ui; import java.lang.foreign.Arena; import java.lang.foreign.MemorySegment; +import java.lang.foreign.ValueLayout; import java.lang.invoke.MethodHandle; public class ListViewBuilder extends AbstractWidgetBuilder { @@ -28,7 +29,6 @@ public class ListViewBuilder extends AbstractWidgetBuilder { private EventHandler onDrop; private boolean multiselection; private Menu contextMenu; - // TODO: contextmenu private int[] states; MemorySegment menuBuilder; @@ -240,6 +240,12 @@ public class ListViewBuilder extends AbstractWidgetBuilder { ui.list_args_set_contextmenu.invoke(args, menuBuilder); } + if(states != null) { + MemorySegment st = arena.allocate(ValueLayout.JAVA_INT, states.length); + MemorySegment.copy(states, 0, st, ValueLayout.JAVA_INT, 0, states.length); + ui.list_args_set_groups.invoke(args, st); + } + return args; } diff --git a/ui-java/src/main/java/de/unixwork/ui/SpinBoxBuilder.java b/ui-java/src/main/java/de/unixwork/ui/SpinBoxBuilder.java index b2e89a3..b014033 100644 --- a/ui-java/src/main/java/de/unixwork/ui/SpinBoxBuilder.java +++ b/ui-java/src/main/java/de/unixwork/ui/SpinBoxBuilder.java @@ -2,6 +2,7 @@ package de.unixwork.ui; import java.lang.foreign.Arena; import java.lang.foreign.MemorySegment; +import java.lang.foreign.ValueLayout; import java.lang.invoke.MethodHandle; public class SpinBoxBuilder extends AbstractWidgetBuilder{ @@ -201,6 +202,12 @@ public class SpinBoxBuilder extends AbstractWidgetBuilder{ ui.spinbox_args_set_rangevalue.invoke(args, rangeValue.valuePtr); } + if(states != null) { + MemorySegment st = arena.allocate(ValueLayout.JAVA_INT, states.length); + MemorySegment.copy(states, 0, st, ValueLayout.JAVA_INT, 0, states.length); + ui.spinbox_args_set_groups.invoke(args, st); + } + return args; } } diff --git a/ui-java/src/main/java/de/unixwork/ui/TableViewBuilder.java b/ui-java/src/main/java/de/unixwork/ui/TableViewBuilder.java index 43684fd..ecbf9b2 100644 --- a/ui-java/src/main/java/de/unixwork/ui/TableViewBuilder.java +++ b/ui-java/src/main/java/de/unixwork/ui/TableViewBuilder.java @@ -2,6 +2,7 @@ package de.unixwork.ui; import java.lang.foreign.Arena; import java.lang.foreign.MemorySegment; +import java.lang.foreign.ValueLayout; import java.lang.invoke.MethodHandle; public class TableViewBuilder extends AbstractWidgetBuilder { @@ -246,6 +247,12 @@ public class TableViewBuilder extends AbstractWidgetBuilder { ui.list_args_set_contextmenu.invoke(args, menuBuilder); } + if(states != null) { + MemorySegment st = arena.allocate(ValueLayout.JAVA_INT, states.length); + MemorySegment.copy(states, 0, st, ValueLayout.JAVA_INT, 0, states.length); + ui.list_args_set_groups.invoke(args, st); + } + return args; } diff --git a/ui-java/src/main/java/de/unixwork/ui/TextAreaBuilder.java b/ui-java/src/main/java/de/unixwork/ui/TextAreaBuilder.java index bc8dd43..d701f81 100644 --- a/ui-java/src/main/java/de/unixwork/ui/TextAreaBuilder.java +++ b/ui-java/src/main/java/de/unixwork/ui/TextAreaBuilder.java @@ -152,6 +152,12 @@ public class TextAreaBuilder extends AbstractWidgetBuilder { ui.textarea_args_set_value.invoke(args, value.valuePtr); } + if(states != null) { + MemorySegment st = arena.allocate(ValueLayout.JAVA_INT, states.length); + MemorySegment.copy(states, 0, st, ValueLayout.JAVA_INT, 0, states.length); + ui.textarea_args_set_groups.invoke(args, st); + } + return args; } } diff --git a/ui-java/src/main/java/de/unixwork/ui/TextFieldBuilder.java b/ui-java/src/main/java/de/unixwork/ui/TextFieldBuilder.java index 7e46ef9..3b9184d 100644 --- a/ui-java/src/main/java/de/unixwork/ui/TextFieldBuilder.java +++ b/ui-java/src/main/java/de/unixwork/ui/TextFieldBuilder.java @@ -166,6 +166,12 @@ public class TextFieldBuilder extends AbstractWidgetBuilder { ui.textfield_args_set_onactivatedata.invoke(args, event.getUserData()); } + if(states != null) { + MemorySegment st = arena.allocate(ValueLayout.JAVA_INT, states.length); + MemorySegment.copy(states, 0, st, ValueLayout.JAVA_INT, 0, states.length); + ui.textfield_args_set_groups.invoke(args, st); + } + return args; } } diff --git a/ui-java/src/main/java/de/unixwork/ui/ToggleBuilder.java b/ui-java/src/main/java/de/unixwork/ui/ToggleBuilder.java index 59c482d..95a1847 100644 --- a/ui-java/src/main/java/de/unixwork/ui/ToggleBuilder.java +++ b/ui-java/src/main/java/de/unixwork/ui/ToggleBuilder.java @@ -2,6 +2,7 @@ package de.unixwork.ui; import java.lang.foreign.Arena; import java.lang.foreign.MemorySegment; +import java.lang.foreign.ValueLayout; import java.lang.invoke.MethodHandle; public class ToggleBuilder extends AbstractWidgetBuilder { @@ -177,6 +178,11 @@ public class ToggleBuilder extends AbstractWidgetBuilder { if(value != null) { ui.toggle_args_set_value.invoke(args, value.valuePtr); } + if(states != null) { + MemorySegment st = arena.allocate(ValueLayout.JAVA_INT, states.length); + MemorySegment.copy(states, 0, st, ValueLayout.JAVA_INT, 0, states.length); + ui.toggle_args_set_groups.invoke(args, st); + } if(onChange != null) { // TODO 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 fe32884..8267025 100644 --- a/ui-java/src/main/java/de/unixwork/ui/WebViewBuilder.java +++ b/ui-java/src/main/java/de/unixwork/ui/WebViewBuilder.java @@ -21,7 +21,6 @@ public class WebViewBuilder extends AbstractWidgetBuilder { private String styleClass; private WebView value; private String varname; - private int[] states; public WebViewBuilder(UiObject obj) { this.obj = obj; @@ -89,11 +88,6 @@ public class WebViewBuilder extends AbstractWidgetBuilder { return this; } - public WebViewBuilder states(int... states) { - this.states = states; - return this; - } - public MemorySegment createArgs(Arena arena) throws Throwable { ArgFuncs ui = ArgFuncs.getInstance(); 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 9ab89ba..2e54e91 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 @@ -683,6 +683,7 @@ class Toplevel(obj: UiObject) { rowspan: Int = -1, name: String? = null, styleClass: String? = null, + states: IntArray? = null, onClick: EventHandler? = null ): UiWidget { val button = Button.button(ui) @@ -728,6 +729,9 @@ class Toplevel(obj: UiObject) { stockId?.let { button.stockId(it) } + states?.let { + button.states(*it) + } onClick?.let { button.onClick(onClick) } @@ -751,6 +755,7 @@ class Toplevel(obj: UiObject) { rowspan: Int = -1, name: String? = null, styleClass: String? = null, + states: IntArray? = null, onChange: EventHandler? = null ): UiWidget { label?.let { @@ -795,6 +800,9 @@ class Toplevel(obj: UiObject) { stockId?.let { button.stockId(it) } + states?.let { + button.states(*it) + } onChange?.let { button.onChange(onChange) } @@ -817,6 +825,7 @@ class Toplevel(obj: UiObject) { rowspan: Int = -1, name: String? = null, styleClass: String? = null, + states: IntArray? = null, onChange: EventHandler? = null ): UiWidget { return createToggleButton( @@ -836,6 +845,7 @@ class Toplevel(obj: UiObject) { rowspan = rowspan, name = name, styleClass = styleClass, + states = states, onChange = onChange ) } @@ -856,6 +866,7 @@ class Toplevel(obj: UiObject) { rowspan: Int = -1, name: String? = null, styleClass: String? = null, + states: IntArray? = null, onChange: EventHandler? = null ): UiWidget { return createToggleButton( @@ -875,6 +886,7 @@ class Toplevel(obj: UiObject) { rowspan = rowspan, name = name, styleClass = styleClass, + states = states, onChange = onChange ) } @@ -895,6 +907,7 @@ class Toplevel(obj: UiObject) { rowspan: Int = -1, name: String? = null, styleClass: String? = null, + states: IntArray? = null, onChange: EventHandler? = null ): UiWidget { return createToggleButton( @@ -914,6 +927,7 @@ class Toplevel(obj: UiObject) { rowspan = rowspan, name = name, styleClass = styleClass, + states = states, onChange = onChange ) } @@ -934,6 +948,7 @@ class Toplevel(obj: UiObject) { rowspan: Int = -1, name: String? = null, styleClass: String? = null, + states: IntArray? = null, onChange: EventHandler? = null ): UiWidget { return createToggleButton( @@ -953,6 +968,7 @@ class Toplevel(obj: UiObject) { rowspan = rowspan, name = name, styleClass = styleClass, + states = states, onChange = onChange ) } @@ -974,6 +990,7 @@ class Toplevel(obj: UiObject) { rowspan: Int = -1, name: String? = null, styleClass: String? = null, + states: IntArray? = null, onClick: EventHandler? = null ): UiWidget { val button = Button.linkButton(ui) @@ -1028,6 +1045,9 @@ class Toplevel(obj: UiObject) { styleClass?.let { button.styleClass(it) } + states?.let { + button.states(*it) + } return button.create() } @@ -1045,6 +1065,7 @@ class Toplevel(obj: UiObject) { rowspan: Int = -1, name: String? = null, styleClass: String? = null, + states: IntArray? = null, contextmenu: Menu? = null, onActivate: EventHandler? = null, onSelection: EventHandler? = null, @@ -1089,6 +1110,9 @@ class Toplevel(obj: UiObject) { styleClass?.let { table.styleClass(it) } + states?.let { + table.states(*it) + } contextmenu?.let { table.contextmenu(it) } @@ -1121,6 +1145,7 @@ class Toplevel(obj: UiObject) { rowspan: Int = -1, name: String? = null, styleClass: String? = null, + states: IntArray? = null, contextmenu: Menu? = null, onActivate: EventHandler? = null, onSelection: EventHandler? = null, @@ -1162,6 +1187,9 @@ class Toplevel(obj: UiObject) { styleClass?.let { list.styleClass(it) } + states?.let { + list.states(*it) + } contextmenu?.let { list.contextmenu(it) } @@ -1190,6 +1218,7 @@ class Toplevel(obj: UiObject) { rowspan: Int = -1, name: String? = null, styleClass: String? = null, + states: IntArray? = null, contextmenu: Menu? = null, onActivate: EventHandler? = null, onSelection: EventHandler? = null, @@ -1210,6 +1239,7 @@ class Toplevel(obj: UiObject) { rowspan = rowspan, name = name, styleClass = styleClass, + states = states, contextmenu = contextmenu, onActivate = onActivate, onSelection = onSelection, @@ -1230,6 +1260,7 @@ class Toplevel(obj: UiObject) { rowspan: Int = -1, name: String? = null, styleClass: String? = null, + states: IntArray? = null, onActivate: EventHandler? = null, getvalue: ListValueConverter? = null ): UiWidget { @@ -1248,6 +1279,7 @@ class Toplevel(obj: UiObject) { rowspan = rowspan, name = name, styleClass = styleClass, + states = states, onActivate = onActivate, getvalue = getvalue ) @@ -1336,6 +1368,7 @@ class Toplevel(obj: UiObject) { rowspan: Int = -1, name: String? = null, styleClass: String? = null, + states: IntArray? = null, onChange: EventHandler? = null ): UiWidget { val textarea = Text.textarea(ui) @@ -1375,6 +1408,9 @@ class Toplevel(obj: UiObject) { styleClass?.let { textarea.styleClass(it) } + states?.let { + textarea.states(*it) + } onChange?.let { textarea.onChange(onChange) } @@ -1395,6 +1431,7 @@ class Toplevel(obj: UiObject) { rowspan: Int = -1, name: String? = null, styleClass: String? = null, + states: IntArray? = null, onChange: EventHandler? = null ): UiWidget { varname?.let { @@ -1433,6 +1470,9 @@ class Toplevel(obj: UiObject) { styleClass?.let { textfield.styleClass(it) } + states?.let { + textfield.states(*it) + } onChange?.let { textfield.onChange(onChange) } @@ -1452,6 +1492,7 @@ class Toplevel(obj: UiObject) { rowspan: Int = -1, name: String? = null, styleClass: String? = null, + states: IntArray? = null, onChange: EventHandler? = null ): UiWidget { val textfield = Text.textfield(ui) @@ -1469,6 +1510,7 @@ class Toplevel(obj: UiObject) { rowspan = rowspan, name = name, styleClass = styleClass, + states = states, onChange = onChange ) } @@ -1486,6 +1528,7 @@ class Toplevel(obj: UiObject) { rowspan: Int = -1, name: String? = null, styleClass: String? = null, + states: IntArray? = null, onChange: EventHandler? = null ): UiWidget { val textfield = Text.passwordfield(ui) @@ -1503,6 +1546,7 @@ class Toplevel(obj: UiObject) { rowspan = rowspan, name = name, styleClass = styleClass, + states = states, onChange = onChange ) } @@ -1520,6 +1564,7 @@ class Toplevel(obj: UiObject) { rowspan: Int = -1, name: String? = null, styleClass: String? = null, + states: IntArray? = null, onChange: EventHandler? = null ): UiWidget { val textfield = Text.framelessTextfield(ui) @@ -1537,6 +1582,7 @@ class Toplevel(obj: UiObject) { rowspan = rowspan, name = name, styleClass = styleClass, + states = states, onChange = onChange ) } @@ -1560,6 +1606,7 @@ class Toplevel(obj: UiObject) { rowspan: Int = -1, name: String? = null, styleClass: String? = null, + states: IntArray? = null, onChange: EventHandler? = null ): UiWidget { val spinbox = Entry.spinbox(ui) @@ -1617,6 +1664,9 @@ class Toplevel(obj: UiObject) { styleClass?.let { spinbox.styleClass(it) } + states?.let { + spinbox.states(*it) + } onChange?.let { spinbox.onChange(onChange) }