aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/moe/nea/notenoughupdates/gui/WGridPanelWithPadding.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/moe/nea/notenoughupdates/gui/WGridPanelWithPadding.kt')
-rw-r--r--src/main/kotlin/moe/nea/notenoughupdates/gui/WGridPanelWithPadding.kt33
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