aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornea <nea@nea.moe>2023-07-31 21:47:41 +0200
committernea <nea@nea.moe>2023-07-31 21:47:41 +0200
commit8b8811db65a264a4f12794e6a34c89fe1874c74b (patch)
treef1dd26b9c2f5c70f5731543953c864a3cd2bdc17
parentc3e1bab941f47dfd5ef5c55805015ee5d47da802 (diff)
downloadfirmament-8b8811db65a264a4f12794e6a34c89fe1874c74b.tar.gz
firmament-8b8811db65a264a4f12794e6a34c89fe1874c74b.tar.bz2
firmament-8b8811db65a264a4f12794e6a34c89fe1874c74b.zip
Bigger settings panel
-rw-r--r--src/main/kotlin/moe/nea/firmament/gui/config/AllConfigsGui.kt28
-rw-r--r--src/main/kotlin/moe/nea/firmament/gui/config/GuiAppender.kt2
-rw-r--r--src/main/kotlin/moe/nea/firmament/gui/config/ManagedConfig.kt8
3 files changed, 24 insertions, 14 deletions
diff --git a/src/main/kotlin/moe/nea/firmament/gui/config/AllConfigsGui.kt b/src/main/kotlin/moe/nea/firmament/gui/config/AllConfigsGui.kt
index fbde4f5..449835e 100644
--- a/src/main/kotlin/moe/nea/firmament/gui/config/AllConfigsGui.kt
+++ b/src/main/kotlin/moe/nea/firmament/gui/config/AllConfigsGui.kt
@@ -32,10 +32,12 @@ import io.github.cottonmc.cotton.gui.widget.WScrollPanel
import io.github.cottonmc.cotton.gui.widget.data.Axis
import io.github.cottonmc.cotton.gui.widget.data.Insets
import io.ktor.http.*
+import kotlin.streams.asSequence
import net.minecraft.client.gui.screen.Screen
import net.minecraft.text.Text
import moe.nea.firmament.features.FeatureManager
import moe.nea.firmament.gui.WFixedPanel
+import moe.nea.firmament.gui.WSplitPanel
import moe.nea.firmament.gui.WTightScrollPanel
import moe.nea.firmament.repo.RepoManager
import moe.nea.firmament.util.MC
@@ -51,26 +53,30 @@ object AllConfigsGui {
) + FeatureManager.allFeatures.mapNotNull { it.config }
val box = WBox(Axis.VERTICAL)
configs.forEach { config ->
- val panel = WGridPanel()
+ val panel = WSplitPanel(
+ WLabel(Text.translatable("firmament.config.${config.name}")),
+ WButton(Text.translatable("firmanent.config.edit")).also {
+ it.setOnClick {
+ config.showConfigEditor(screen)
+ }
+ it.setSize(40, 18)
+ }
+ )
panel.insets = Insets.ROOT_PANEL
panel.backgroundPainter = BackgroundPainter.VANILLA
- panel.add(WLabel(Text.translatable("firmament.config.${config.name}")), 0, 0, 10, 1)
- panel.add(WButton(Text.translatable("firmanent.config.edit")).also {
- it.setOnClick {
- config.showConfigEditor(screen)
- }
- }, 0, 1, 10, 1)
- box.add(WFixedPanel(panel))
+ box.add((panel))
}
+ box.streamChildren().asSequence()
+ .forEach { it.setSize(380, 0) }
lwgd.setRootPanel(WBox(
Axis.VERTICAL
).also {
it.insets = Insets.ROOT_PANEL
box.layout()
- it.add(WFixedPanel((WTightScrollPanel((box)).also {
- it.setSize(0, MC.window.scaledHeight / 2)
+ it.add(WFixedPanel((WScrollPanel((box)).also {
+ it.setSize(400, 300)
})))
- it.setSize(0, MC.window.scaledHeight / 2)
+ it.setSize(400, 300)
})
screen = object : CottonClientScreen(lwgd) {
diff --git a/src/main/kotlin/moe/nea/firmament/gui/config/GuiAppender.kt b/src/main/kotlin/moe/nea/firmament/gui/config/GuiAppender.kt
index 7b7186a..ddb37d6 100644
--- a/src/main/kotlin/moe/nea/firmament/gui/config/GuiAppender.kt
+++ b/src/main/kotlin/moe/nea/firmament/gui/config/GuiAppender.kt
@@ -30,7 +30,7 @@ import moe.nea.firmament.gui.WFixedPanel
import moe.nea.firmament.gui.WSplitPanel
class GuiAppender(val width: Int, val screenAccessor: () -> Screen) {
- internal val panel = WBox(Axis.VERTICAL).also {
+ val panel = WBox(Axis.VERTICAL).also {
it.setSize(width, 200)
}
internal val reloadables = mutableListOf<(() -> Unit)>()
diff --git a/src/main/kotlin/moe/nea/firmament/gui/config/ManagedConfig.kt b/src/main/kotlin/moe/nea/firmament/gui/config/ManagedConfig.kt
index 8b4fc43..4d1f1ae 100644
--- a/src/main/kotlin/moe/nea/firmament/gui/config/ManagedConfig.kt
+++ b/src/main/kotlin/moe/nea/firmament/gui/config/ManagedConfig.kt
@@ -23,6 +23,7 @@ import io.github.cottonmc.cotton.gui.client.LightweightGuiDescription
import io.github.cottonmc.cotton.gui.widget.WBox
import io.github.cottonmc.cotton.gui.widget.WButton
import io.github.cottonmc.cotton.gui.widget.WLabel
+import io.github.cottonmc.cotton.gui.widget.WScrollPanel
import io.github.cottonmc.cotton.gui.widget.data.Axis
import io.github.cottonmc.cotton.gui.widget.data.Insets
import io.github.cottonmc.cotton.gui.widget.data.VerticalAlignment
@@ -40,6 +41,7 @@ import kotlin.time.Duration
import net.minecraft.client.gui.screen.Screen
import net.minecraft.text.Text
import moe.nea.firmament.Firmament
+import moe.nea.firmament.gui.WTightScrollPanel
import moe.nea.firmament.util.MC
import moe.nea.firmament.util.ScreenUtil.setScreenLater
@@ -195,7 +197,7 @@ abstract class ManagedConfig(val name: String) {
fun getConfigEditor(parent: Screen? = null): CottonClientScreen {
val lwgd = LightweightGuiDescription()
var screen: Screen? = null
- val guiapp = GuiAppender(400, { requireNotNull(screen) { "Screen Accessor called too early" } })
+ val guiapp = GuiAppender(400) { requireNotNull(screen) { "Screen Accessor called too early" } }
latestGuiAppender = guiapp
guiapp.panel.insets = Insets.ROOT_PANEL
guiapp.appendFullRow(WBox(Axis.HORIZONTAL).also {
@@ -210,7 +212,9 @@ abstract class ManagedConfig(val name: String) {
})
sortedOptions.forEach { it.appendToGui(guiapp) }
guiapp.reloadables.forEach { it() }
- lwgd.setRootPanel(guiapp.panel)
+ lwgd.setRootPanel(WTightScrollPanel(guiapp.panel).also {
+ it.setSize(400, 300)
+ })
screen =
object : CottonClientScreen(lwgd) {
override fun init() {