2021-02-19 04:12:43 +00:00
|
|
|
package net.shadowfacts.phycon.screen
|
|
|
|
|
2021-02-27 04:23:11 +00:00
|
|
|
import net.minecraft.client.MinecraftClient
|
|
|
|
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.minecraft.util.Identifier
|
|
|
|
import net.shadowfacts.cacao.CacaoScreen
|
2021-02-19 04:27:18 +00:00
|
|
|
import net.shadowfacts.cacao.window.Window
|
2021-02-19 04:12:43 +00:00
|
|
|
import net.shadowfacts.cacao.geometry.Axis
|
|
|
|
import net.shadowfacts.cacao.geometry.Size
|
|
|
|
import net.shadowfacts.cacao.util.Color
|
|
|
|
import net.shadowfacts.cacao.util.texture.NinePatchTexture
|
|
|
|
import net.shadowfacts.cacao.util.texture.Texture
|
2021-02-27 04:23:11 +00:00
|
|
|
import net.shadowfacts.cacao.view.*
|
|
|
|
import net.shadowfacts.cacao.view.button.Button
|
2021-02-27 19:02:30 +00:00
|
|
|
import net.shadowfacts.cacao.view.textfield.TextField
|
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
|
|
|
}
|