From 6dd429be9a4cc51bd833ea487bf7085dcbfff299 Mon Sep 17 00:00:00 2001 From: Olaf Wintermann Date: Thu, 17 Jul 2025 21:26:16 +0200 Subject: [PATCH] add kotlin label funcs --- .../kotlin/de/unixwork/ui/kotlin/Toplevel.kt | 183 +++++++++++++++++- 1 file changed, 182 insertions(+), 1 deletion(-) 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 014de02..6fe4517 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 @@ -1,5 +1,6 @@ package de.unixwork.ui.kotlin +import de.unixwork.ui.Alignment import de.unixwork.ui.Button import de.unixwork.ui.ButtonBuilder import de.unixwork.ui.Container @@ -7,6 +8,8 @@ import de.unixwork.ui.ContainerBuilder import de.unixwork.ui.ContainerUI import de.unixwork.ui.EventHandler import de.unixwork.ui.EventWrapper.eventHandler +import de.unixwork.ui.LabelBuilder +import de.unixwork.ui.LabelStyle import de.unixwork.ui.ListValueConverter import de.unixwork.ui.ListView import de.unixwork.ui.SubListValueConverter @@ -20,7 +23,7 @@ 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 de.unixwork.ui.Label import java.lang.foreign.MemorySegment class Toplevel(obj: UiObject) { @@ -1025,4 +1028,182 @@ class Toplevel(obj: UiObject) { } return webview.create() } + + private fun createLabel( + label: LabelBuilder, + labelStr: String? = null, + align: Alignment? = null, + style: LabelStyle? = null, + varname: String? = null, + value: UiString? = 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, + + ): UiWidget { + labelStr?.let { + label.label(it) + } + align?.let { + label.align(it) + } + style?.let { + label.style(it) + } + varname?.let { + label.varname(it) + } + value?.let { + label.value(it) + } + if(fill) { + label.fill(fill); + } + if(hexpand) { + label.hexpand(true) + } + if(vexpand) { + label.vexpand(true) + } + if(hfill) { + label.hfill(true) + } + if(vfill) { + label.vfill(true) + } + if(colspan > 0) { + label.colspan(colspan) + } + if(rowspan > 0) { + label.rowspan(rowspan) + } + if(overrideDefaults) { + label.overrideDefaults(true) + } + name?.let { + label.name(it) + } + styleClass?.let { + label.styleClass(it) + } + + return label.create() + } + + fun label( + label: String? = null, + align: Alignment? = null, + style: LabelStyle? = null, + varname: String? = null, + value: UiString? = 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 + ): UiWidget { + val labelBuilder = Label.label(obj) + return createLabel( + label = labelBuilder, + labelStr = label, + align = align, + style = style, + varname = varname, + value = value, + fill = fill, + hexpand = hexpand, + vexpand = vexpand, + hfill = hfill, + vfill = vfill, + overrideDefaults = overrideDefaults, + colspan = colspan, + rowspan = rowspan, + name = name, + styleClass = styleClass + ) + } + + fun llabel( + label: String? = null, + style: LabelStyle? = null, + varname: String? = null, + value: UiString? = 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 + ): UiWidget { + val labelBuilder = Label.llabel(obj) + return createLabel( + label = labelBuilder, + labelStr = label, + style = style, + varname = varname, + value = value, + fill = fill, + hexpand = hexpand, + vexpand = vexpand, + hfill = hfill, + vfill = vfill, + overrideDefaults = overrideDefaults, + colspan = colspan, + rowspan = rowspan, + name = name, + styleClass = styleClass + ) + } + + fun rlabel( + label: String? = null, + style: LabelStyle? = null, + varname: String? = null, + value: UiString? = 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 + ): UiWidget { + val labelBuilder = Label.rlabel(obj) + return createLabel( + label = labelBuilder, + labelStr = label, + style = style, + varname = varname, + value = value, + fill = fill, + hexpand = hexpand, + vexpand = vexpand, + hfill = hfill, + vfill = vfill, + overrideDefaults = overrideDefaults, + colspan = colspan, + rowspan = rowspan, + name = name, + styleClass = styleClass + ) + } } \ No newline at end of file -- 2.47.3