package net.shadowfacts.asmr import net.shadowfacts.kiwidsl.dsl import net.shadowfacts.cacao.CacaoScreen import net.shadowfacts.cacao.view.View import net.shadowfacts.cacao.Window import net.shadowfacts.cacao.geometry.Axis import net.shadowfacts.cacao.geometry.Size import net.shadowfacts.cacao.util.Color import net.shadowfacts.cacao.view.Label import net.shadowfacts.cacao.view.StackView import net.shadowfacts.cacao.view.button.Button /** * @author shadowfacts */ class TestCacaoScreen: CacaoScreen() { init { addWindow(Window().apply { val stack = addView(StackView(Axis.VERTICAL, StackView.Distribution.CENTER).apply { backgroundColor = Color.WHITE }) val red = stack.addArrangedSubview(View().apply { intrinsicContentSize = Size(50.0, 50.0) backgroundColor = Color(0xff0000) }) val green = stack.addArrangedSubview(View().apply { intrinsicContentSize = Size(75.0, 100.0) backgroundColor = Color(0x00ff00) }) val blue = stack.addArrangedSubview(View().apply { intrinsicContentSize = Size(50.0, 50.0) backgroundColor = Color(0x0000ff) }) val purple = blue.addSubview(Button(Label("Hello, button!")).apply { handler = { println("$it clicked!") } background = View().apply { backgroundColor = Color(0xebfc00) } }) solver.dsl { stack.topAnchor equalTo 50 stack.leftAnchor equalTo 50 stack.rightAnchor equalTo 150 purple.centerXAnchor equalTo blue.centerXAnchor purple.centerYAnchor equalTo blue.centerYAnchor } layout() // 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() }) } }