]> uap-core.de Git - rssreader.git/commitdiff
add kotlin splitpane wrapper
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Thu, 10 Jul 2025 18:45:02 +0000 (20:45 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Thu, 10 Jul 2025 18:45:02 +0000 (20:45 +0200)
ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Toplevel.kt

index cd8884ebd7aa0de9b6b152b14e6112157873af06..c7938f47320f9899b96a19d2e7baa0eba9dd5646 100644 (file)
@@ -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,