From 6105328e859d51f68a45bbda7421a48a61c4adf0 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Mon, 17 Feb 2025 19:38:12 +0700 Subject: [PATCH] Add ignoreWhenSizingToContents --- .../mc/otm/client/screen/panels/EditablePanel.kt | 9 +++++++-- .../mc/otm/client/screen/panels/FramePanel.kt | 9 +++++++++ .../mc/otm/client/screen/panels/button/Buttons.kt | 3 +++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/EditablePanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/EditablePanel.kt index 3aaa32061..0450286a6 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/EditablePanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/EditablePanel.kt @@ -1384,6 +1384,9 @@ open class EditablePanel( parent?.updateBounds() } + open val ignoreWhenSizingToContents: Boolean + get() = false + /** * Attempts to tightly fit dimensions to all children */ @@ -1405,8 +1408,10 @@ open class EditablePanel( for (child in visibleChildrenInternal) { when (child.dock) { Dock.NONE -> { - width = maxOf(width, child.x + child.width) - height = maxOf(height, child.y + child.height) + if (!child.ignoreWhenSizingToContents) { + width = maxOf(width, child.x + child.width) + height = maxOf(height, child.y + child.height) + } } Dock.FILL -> { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/FramePanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/FramePanel.kt index 3cd03b067..6a262ab8f 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/FramePanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/FramePanel.kt @@ -34,6 +34,9 @@ open class FramePanel( var isActive = tabs.isEmpty() protected set + override val ignoreWhenSizingToContents: Boolean + get() = true + init { tabs.add(this) } @@ -197,6 +200,9 @@ open class FramePanel( close() } + override val ignoreWhenSizingToContents: Boolean + get() = true + override fun innerRender(graphics: MGUIGraphics, mouseX: Float, mouseY: Float, partialTick: Float) { if (isPressed) { CLOSE_BUTTON_PRESSED.render(graphics, 0f, 0f, width, height) @@ -223,6 +229,9 @@ open class FramePanel( isActive = !isActive }*/ + override val ignoreWhenSizingToContents: Boolean + get() = true + override fun innerRender(graphics: MGUIGraphics, mouseX: Float, mouseY: Float, partialTick: Float) { /*if (isPressed) { HELP_BUTTON_PRESSED.render(graphics, 0f, 0f, width, height) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/Buttons.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/Buttons.kt index db94f54a1..e47742a7d 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/Buttons.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/Buttons.kt @@ -339,6 +339,9 @@ class DeviceControls>( private var upgradeWindow: FramePanel? = null + override val ignoreWhenSizingToContents: Boolean + get() = true + private val buttons = ArrayList>() private fun alignButtons() {