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