PhysicalConnectivity/src/main/kotlin/net/shadowfacts/phycon/client/screen/TestCacaoScreen.kt

128 lines
3.6 KiB
Kotlin
Raw Normal View History

2021-03-26 02:15:46 +00:00
package net.shadowfacts.phycon.client.screen
2021-02-19 04:12:43 +00:00
2021-02-27 04:23:11 +00:00
import net.minecraft.text.LiteralText
2021-02-27 18:24:29 +00:00
import net.minecraft.text.Text
2021-02-19 04:12:43 +00:00
import net.shadowfacts.cacao.CacaoScreen
2021-02-19 04:27:18 +00:00
import net.shadowfacts.cacao.window.Window
2021-02-27 04:23:11 +00:00
import net.shadowfacts.cacao.view.*
import net.shadowfacts.cacao.view.button.Button
2021-02-27 18:24:29 +00:00
import net.shadowfacts.cacao.viewcontroller.TabViewController
2021-02-19 04:12:43 +00:00
import net.shadowfacts.cacao.viewcontroller.ViewController
import net.shadowfacts.kiwidsl.dsl
/**
* @author shadowfacts
*/
class TestCacaoScreen: CacaoScreen() {
init {
2021-02-27 19:02:30 +00:00
// val viewController = object: ViewController() {
2021-02-28 17:19:09 +00:00
// override fun loadView() {
// view = View()
// }
//
2021-02-27 19:02:30 +00:00
// override fun viewDidLoad() {
// super.viewDidLoad()
//
2021-02-28 17:19:09 +00:00
// val stack = view.addSubview(StackView(Axis.VERTICAL, StackView.Distribution.CENTER, spacing = 4.0)).apply {
// backgroundColor = Color.WHITE
// }
// val birch = stack.addArrangedSubview(TextureView(Texture(Identifier("textures/block/birch_log_top.png"), 0, 0, 16, 16))).apply {
// intrinsicContentSize = Size(50.0, 50.0)
// }
// val ninePatch = stack.addArrangedSubview(NinePatchView(NinePatchTexture.PANEL_BG)).apply {
// intrinsicContentSize = Size(75.0, 100.0)
// }
// val red = stack.addArrangedSubview(View()).apply {
// intrinsicContentSize = Size(50.0, 50.0)
// backgroundColor = Color.RED
// }
//
// val label = Label(LiteralText("Test"), wrappingMode = Label.WrappingMode.NO_WRAP).apply {
//// textColor = Color.BLACK
// }
//// stack.addArrangedSubview(label)
// val button = red.addSubview(Button(label))
//
// val field = TextField("Test") {
// println("new value: ${it.text}")
// }
// stack.addArrangedSubview(field)
2021-02-27 19:02:30 +00:00
//
// view.solver.dsl {
2021-02-28 17:19:09 +00:00
// stack.topAnchor equalTo 0
// stack.centerXAnchor equalTo window!!.centerXAnchor
// stack.widthAnchor equalTo 100
//
//
// button.centerXAnchor equalTo red.centerXAnchor
// button.centerYAnchor equalTo red.centerYAnchor
//// label.heightAnchor equalTo 9
// button.heightAnchor equalTo 20
//
// field.widthAnchor equalTo stack.widthAnchor
// field.heightAnchor equalTo 20
2021-02-27 19:02:30 +00:00
// }
2021-02-28 17:19:09 +00:00
//
2021-02-27 19:02:30 +00:00
// }
// }
// addWindow(Window(viewController))
2021-02-28 17:19:09 +00:00
val viewController = object: ViewController() {
override fun viewDidLoad() {
super.viewDidLoad()
val tabs = listOf(
Tab(Label("A"), AViewController(), LiteralText("Tab A")),
Tab(Label("B"), BViewController(), LiteralText("Tab B")),
)
val tabVC = TabViewController(tabs)
embedChild(tabVC, pinEdges = false)
view.solver.dsl {
tabVC.view.centerXAnchor equalTo view.centerXAnchor
tabVC.view.centerYAnchor equalTo view.centerYAnchor
tabVC.view.widthAnchor equalTo 200
tabVC.view.heightAnchor equalTo 150
}
}
}
addWindow(Window(viewController))
2021-02-27 18:24:29 +00:00
}
2021-02-27 04:23:11 +00:00
2021-02-27 18:24:29 +00:00
data class Tab(
override val tabView: View,
override val controller: ViewController,
override val tooltip: Text? = null
): TabViewController.Tab
2021-02-27 04:23:11 +00:00
2021-02-27 18:24:29 +00:00
class AViewController: ViewController() {
override fun viewDidLoad() {
super.viewDidLoad()
val button = Button(Label("A content")) {
println("A pressed")
}
view.addSubview(button)
view.solver.dsl {
button.centerXAnchor equalTo view.centerXAnchor
button.centerYAnchor equalTo view.centerYAnchor
}
}
}
2021-02-27 04:23:11 +00:00
2021-02-27 18:24:29 +00:00
class BViewController: ViewController() {
override fun viewDidLoad() {
super.viewDidLoad()
val button = Button(Label("B content")) {
println("B pressed")
}
view.addSubview(button)
view.solver.dsl {
button.centerXAnchor equalTo view.centerXAnchor
button.centerYAnchor equalTo view.centerYAnchor
2021-02-19 04:12:43 +00:00
}
}
}
2021-02-27 04:23:11 +00:00
}