From: Olaf Wintermann Date: Thu, 10 Jul 2025 18:45:02 +0000 (+0200) Subject: add kotlin splitpane wrapper X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;h=b4e8a92ba469861e94ecc95fc7a1f1903b91a1ec;p=rssreader.git add kotlin splitpane wrapper --- 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 cd8884e..c7938f4 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 @@ -218,6 +218,163 @@ class Toplevel(obj: UiObject) { Container.newline(obj) } + private fun createSplitpane( + horizontal: Boolean, + 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, + margin: Int = -1, + spacing: Int = -1, + initialPosition: Int = 0, + value: UiInteger? = null, + varname: String? = null, + maxPanes: Int = 0, + ui: ContainerUI? = null + ): UiWidget { + val container = if(horizontal) { + Container.hsplitview(obj) + } else { + Container.vsplitview(obj) + } + + if(hexpand) { + container.hexpand(true) + } + if(vexpand) { + container.vexpand(true) + } + if(hfill) { + container.hfill(true) + } + if(vfill) { + container.vfill(true) + } + if(overrideDefaults) { + container.overrideDefaults(true) + } + if(colspan > 0) { + container.colspan(colspan) + } + if(rowspan > 0) { + container.rowspan(rowspan) + } + if(margin > 0) { + container.margin(margin) + } + if(spacing > 0) { + container.spacing(spacing) + } + if(initialPosition > 0) { + container.initialPosition(initialPosition) + } + if(value != null) { + container.value(value) + } + if(varname != null) { + container.varname(varname) + } + if(maxPanes > 0) { + container.maxPanes(maxPanes) + } + if(name != null) { + container.name(name) + } + if(styleClass != null) { + container.styleClass(styleClass) + } + + return container.create(ui) + } + + fun hsplitpane( + 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, + margin: Int = -1, + spacing: Int = -1, + initialPosition: Int = 0, + value: UiInteger? = null, + varname: String? = null, + maxPanes: Int = 0, + ui: ContainerUI? = null + ): UiWidget { + return createSplitpane( + horizontal = true, + fill = fill, + hexpand = hexpand, + vexpand = vexpand, + hfill = hfill, + vfill = vfill, + overrideDefaults = overrideDefaults, + colspan = colspan, + rowspan = rowspan, + name = name, + styleClass = styleClass, + margin = margin, + spacing = spacing, + initialPosition = initialPosition, + value = value, + varname = varname, + maxPanes = maxPanes, + ui = ui + ) + } + + fun vsplitpane( + 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, + margin: Int = -1, + spacing: Int = -1, + initialPosition: Int = 0, + value: UiInteger? = null, + varname: String? = null, + maxPanes: Int = 0, + ui: ContainerUI? = null + ): UiWidget { + return createSplitpane( + horizontal = false, + fill = fill, + hexpand = hexpand, + vexpand = vexpand, + hfill = hfill, + vfill = vfill, + overrideDefaults = overrideDefaults, + colspan = colspan, + rowspan = rowspan, + name = name, + styleClass = styleClass, + margin = margin, + spacing = spacing, + initialPosition = initialPosition, + value = value, + varname = varname, + maxPanes = maxPanes, + ui = ui + ) + } + fun button( label: String? = null, stockId: String? = null,