ASMR/src/main/kotlin/net/shadowfacts/asmr/TestScreen.kt

61 lines
1.7 KiB
Kotlin

package net.shadowfacts.asmr
import net.shadowfacts.kiwidsl.dsl
import net.shadowfacts.shadowui.Screen
import net.shadowfacts.shadowui.View
import net.shadowfacts.shadowui.Window
import net.shadowfacts.shadowui.geometry.Size
import net.shadowfacts.shadowui.util.Color
import net.shadowfacts.shadowui.view.Label
class TestScreen: Screen() {
init {
windows.add(Window().apply {
val red = addView(View().apply {
backgroundColor = Color(0xff0000)
})
val green = addView(View().apply {
backgroundColor = Color(0x00ff00)
})
val blue = addView(View().apply {
backgroundColor = Color(0x0000ff)
})
val purple = green.addSubview(View().apply {
backgroundColor = Color(0x800080)
})
purple.intrinsicContentSize = Size(width = 150.0, height = 150.0)
val label = purple.addSubview(Label("Hello, world!").apply {
textColor = Color.WHITE
})
solver.dsl {
red.leftAnchor equalTo 0
red.widthAnchor equalTo 200
red.topAnchor equalTo 0
red.heightAnchor equalTo 100
green.leftAnchor equalTo (red.leftAnchor + red.widthAnchor + 20)
green.widthAnchor equalTo red.widthAnchor
green.topAnchor equalTo 0
green.heightAnchor equalTo (red.heightAnchor + 100)
blue.leftAnchor equalTo green.leftAnchor
blue.widthAnchor equalTo green.widthAnchor
blue.topAnchor equalTo (green.topAnchor + green.heightAnchor)
blue.heightAnchor equalTo 50
// purple.widthAnchor equalTo 100
// purple.heightAnchor equalTo 100
purple.centerXAnchor equalTo green.centerXAnchor
purple.centerYAnchor equalTo green.centerYAnchor
label.centerXAnchor equalTo purple.centerXAnchor
label.centerYAnchor equalTo purple.centerYAnchor
}
layout()
})
}
}