diff options
Diffstat (limited to 'src/main/kotlin/moe/nea/notenoughupdates/gui/WGridPanelWithPadding.kt')
-rw-r--r-- | src/main/kotlin/moe/nea/notenoughupdates/gui/WGridPanelWithPadding.kt | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/main/kotlin/moe/nea/notenoughupdates/gui/WGridPanelWithPadding.kt b/src/main/kotlin/moe/nea/notenoughupdates/gui/WGridPanelWithPadding.kt new file mode 100644 index 0000000..287483e --- /dev/null +++ b/src/main/kotlin/moe/nea/notenoughupdates/gui/WGridPanelWithPadding.kt @@ -0,0 +1,33 @@ +package moe.nea.notenoughupdates.gui + +import io.github.cottonmc.cotton.gui.widget.WPanelWithInsets +import io.github.cottonmc.cotton.gui.widget.WWidget +import io.github.cottonmc.cotton.gui.widget.data.Insets + +class WGridPanelWithPadding( + val grid: Int = 18, + val verticalPadding: Int = 0, + val horizontalPadding: Int = 0, +) : WPanelWithInsets() { + + private inline val vertOffset get() = grid + verticalPadding + private inline val horiOffset get() = grid + horizontalPadding + + fun add(w: WWidget, x: Int, y: Int, width: Int = 1, height: Int = 1) { + children.add(w) + w.parent = this + w.setLocation(x * horiOffset + insets.left, y * vertOffset + insets.top) + if (w.canResize()) + w.setSize( + grid + (horiOffset * (width - 1)), + grid + (vertOffset * (height - 1)), + ) + expandToFit(w, insets) + } + + override fun setInsets(insets: Insets): WGridPanelWithPadding { + super.setInsets(insets) + return this + } + +}
\ No newline at end of file |