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

102 lines
2.9 KiB
Kotlin

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