]> uap-core.de Git - rssreader.git/commitdiff
add kotlin window function, extend Toplevel class, update UI demo
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Thu, 19 Jun 2025 20:01:25 +0000 (22:01 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Thu, 19 Jun 2025 20:01:25 +0000 (22:01 +0200)
ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Toplevel.kt
ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Window.kt [new file with mode: 0644]
ui-kotlin/src/test/kotlin/de/unixwork/ui/kotlin/demo/Main.kt

index 69ed4d471804b9c3ad3ca54e2b345c4974e39163..b7b69be76dcd9e077cd41f231eb9eab6a6889ba5 100644 (file)
@@ -11,6 +11,14 @@ import java.lang.foreign.MemorySegment
 class Toplevel(obj: UiObject) {
     private val obj: UiObject = obj
 
+    fun show() {
+        obj.show()
+    }
+
+    operator fun invoke(block: Toplevel.() -> Unit) {
+        block()
+    }
+
     fun button(
         label: String? = null,
         stockId: String? = null,
diff --git a/ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Window.kt b/ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Window.kt
new file mode 100644 (file)
index 0000000..7f5ef47
--- /dev/null
@@ -0,0 +1,10 @@
+package de.unixwork.ui.kotlin
+
+import de.unixwork.ui.UiObject
+
+fun window(title: String, ui: (Toplevel.() -> Unit)?): Toplevel {
+    val obj = UiObject.createWindow(title)
+    val toplevel = Toplevel(obj)
+    ui?.invoke(toplevel)
+    return toplevel
+}
index e7158403fcf0064cd1d7fa6537aed555fd4635a7..f725e3bdba0f163a19c6f46182ed7a2a2e536de1 100644 (file)
@@ -5,13 +5,15 @@ import de.unixwork.ui.Button
 import de.unixwork.ui.Toolkit
 import de.unixwork.ui.UiObject
 import de.unixwork.ui.kotlin.Toplevel
+import de.unixwork.ui.kotlin.window
 
 class Main : Application {
     override fun startup() {
-        val window = UiObject.createWindow("Test Window")
-        val toplevel = Toplevel(window)
-
-        toplevel.button(label = "Hello World")
+        val window = window("Test Window") {
+            button(label = "Hello World") {
+                println("Button Clicked")
+            }
+        }
 
         window.show()
     }
@@ -20,8 +22,6 @@ class Main : Application {
 fun main() {
     println("Kotlin UI Demo")
 
-
-
     Toolkit.init("testapp")
     Toolkit.runApplication(Main())
 }
\ No newline at end of file