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() }) } }