ASMR/src/main/kotlin/net/shadowfacts/asmr/ui/ManagerViewController.kt

57 lines
1.9 KiB
Kotlin

package net.shadowfacts.asmr.ui
import net.shadowfacts.asmr.manager.ManagerBlockEntity
import net.shadowfacts.cacao.geometry.Rect
import net.shadowfacts.cacao.geometry.Size
import net.shadowfacts.cacao.util.Color
import net.shadowfacts.cacao.util.texture.NinePatchTexture
import net.shadowfacts.cacao.view.Label
import net.shadowfacts.cacao.view.NinePatchView
import net.shadowfacts.cacao.view.View
import net.shadowfacts.cacao.view.button.Button
import net.shadowfacts.cacao.viewcontroller.ViewController
/**
* @author shadowfacts
*/
class ManagerViewController(val managerBlockEntity: ManagerBlockEntity): ViewController() {
lateinit var panel: View
override fun viewDidLoad() {
panel = view.addSubview(View())
val background = panel.addSubview(NinePatchView(NinePatchTexture.PANEL_BG))
val label = panel.addSubview(Label("test label"))
val canvas = panel.addSubview(ProgramCanvasView(managerBlockEntity.program))
val runButton = panel.addSubview(Button(Label("Run"))).apply {
zIndex = 10.0
handler = {
managerBlockEntity.program.execute()
}
}
createConstraints {
panel.widthAnchor equalTo (view.widthAnchor - 20)
panel.heightAnchor equalTo (view.heightAnchor - 20)
panel.centerXAnchor equalTo view.centerXAnchor
panel.centerYAnchor equalTo view.centerYAnchor
background.leftAnchor equalTo panel.leftAnchor
background.rightAnchor equalTo panel.rightAnchor
background.topAnchor equalTo panel.topAnchor
background.bottomAnchor equalTo panel.bottomAnchor
label.centerXAnchor equalTo view.centerXAnchor
label.centerYAnchor equalTo view.centerYAnchor
canvas.widthAnchor equalTo (panel.widthAnchor - 8)
canvas.heightAnchor equalTo (panel.heightAnchor - 8)
canvas.centerXAnchor equalTo panel.centerXAnchor
canvas.centerYAnchor equalTo panel.centerYAnchor
runButton.topAnchor equalTo panel.topAnchor
runButton.rightAnchor equalTo panel.rightAnchor
}
}
}