import de.unixwork.ui.ButtonBuilder
import de.unixwork.ui.EventHandler
import de.unixwork.ui.EventWrapper.eventHandler
+import de.unixwork.ui.ToggleBuilder
import de.unixwork.ui.UiObject
import de.unixwork.ui.UiWidget
import java.lang.foreign.MemorySegment
}
return button.create()
}
+
+ private fun createToggleButton(
+ button: ToggleBuilder,
+ label: String? = null,
+ stockId: String? = null,
+ icon: String? = null,
+ varname: String? = 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 {
+ label?.let {
+ button.label(it)
+ }
+ varname?.let {
+ button.varname(it)
+ }
+ // TODO: fill
+ if(hexpand) {
+ button.hexpand(true)
+ }
+ if(vexpand) {
+ button.vexpand(true)
+ }
+ if(hfill) {
+ button.hfill(true)
+ }
+ if(vfill) {
+ button.vfill(true)
+ }
+ if(colspan > 0) {
+ button.colspan(colspan)
+ }
+ if(rowspan > 0) {
+ button.rowspan(rowspan)
+ }
+ if(overrideDefaults) {
+ button.overrideDefaults(true)
+ }
+ name?.let {
+ button.name(it)
+ }
+ styleClass?.let {
+ button.styleClass(it)
+ }
+ stockId?.let {
+ button.stockId(it)
+ }
+ onChange?.let {
+ button.onChange(onChange)
+ }
+ return button.create()
+ }
+
+ fun togglebutton(
+ label: String? = null,
+ stockId: String? = null,
+ icon: String? = null,
+ varname: String? = 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 {
+ return createToggleButton(
+ button = Button.toggleButton(obj),
+ label = label,
+ stockId = stockId,
+ icon = icon,
+ varname = varname,
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ onChange = onChange
+ )
+ }
+
+ fun checkbox(
+ label: String? = null,
+ stockId: String? = null,
+ icon: String? = null,
+ varname: String? = 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 {
+ return createToggleButton(
+ button = Button.checkbox(obj),
+ label = label,
+ stockId = stockId,
+ icon = icon,
+ varname = varname,
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ onChange = onChange
+ )
+ }
+
+ fun switch(
+ label: String? = null,
+ stockId: String? = null,
+ icon: String? = null,
+ varname: String? = 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 {
+ return createToggleButton(
+ button = Button.switchButton(obj),
+ label = label,
+ stockId = stockId,
+ icon = icon,
+ varname = varname,
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ onChange = onChange
+ )
+ }
+
+ fun radiobutton(
+ label: String? = null,
+ stockId: String? = null,
+ icon: String? = null,
+ varname: String? = 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 {
+ return createToggleButton(
+ button = Button.radioButton(obj),
+ label = label,
+ stockId = stockId,
+ icon = icon,
+ varname = varname,
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ onChange = onChange
+ )
+ }
}
\ No newline at end of file