63 lines
2.0 KiB
Kotlin
63 lines
2.0 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.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)
|
|
}
|
|
}
|
|
}
|
|
|
|
} |