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.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")) createConstraints { panel.widthAnchor equalTo (view.widthAnchor - 40) panel.heightAnchor equalTo (view.heightAnchor - 40) 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 } createProgramView() } private fun createProgramView() { val program = managerBlockEntity.program program.blocks.forEach { val blockView = panel.addSubview(View()) blockView.backgroundColor = Color.BLACK val title = blockView.addSubview(Label(it.javaClass.simpleName)) createConstraints { blockView.widthAnchor equalTo (title.widthAnchor + 8) blockView.heightAnchor equalTo (title.heightAnchor + 8) blockView.leftAnchor equalTo (panel.leftAnchor + 4 + it.position.x) blockView.topAnchor equalTo (panel.topAnchor + 4 + it.position.y) title.leftAnchor equalTo (blockView.leftAnchor + 4) title.topAnchor equalTo (blockView.topAnchor + 4) } } } }