aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/glease/ggfab/mui
diff options
context:
space:
mode:
authorRaven Szewczyk <git@eigenraven.me>2024-05-23 17:40:22 +0100
committerRaven Szewczyk <git@eigenraven.me>2024-05-23 17:40:22 +0100
commit0cce27d780a9fa7afc2e7673c5ba590eaa27ead9 (patch)
treee442a5ba5e623aa8f002045b3556bdc75f3c707b /src/main/java/net/glease/ggfab/mui
parent8f3f5f67388cf3319da2a7e31e1c47b0c654d81b (diff)
downloadGT5-Unofficial-0cce27d780a9fa7afc2e7673c5ba590eaa27ead9.tar.gz
GT5-Unofficial-0cce27d780a9fa7afc2e7673c5ba590eaa27ead9.tar.bz2
GT5-Unofficial-0cce27d780a9fa7afc2e7673c5ba590eaa27ead9.zip
GigaGramFab relocation
Diffstat (limited to 'src/main/java/net/glease/ggfab/mui')
-rw-r--r--src/main/java/net/glease/ggfab/mui/ClickableTextWidget.java55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/main/java/net/glease/ggfab/mui/ClickableTextWidget.java b/src/main/java/net/glease/ggfab/mui/ClickableTextWidget.java
new file mode 100644
index 0000000000..34287c2237
--- /dev/null
+++ b/src/main/java/net/glease/ggfab/mui/ClickableTextWidget.java
@@ -0,0 +1,55 @@
+package net.glease.ggfab.mui;
+
+import java.util.Arrays;
+
+import org.jetbrains.annotations.NotNull;
+
+import com.gtnewhorizons.modularui.api.drawable.IDrawable;
+import com.gtnewhorizons.modularui.api.drawable.Text;
+import com.gtnewhorizons.modularui.api.drawable.TextRenderer;
+import com.gtnewhorizons.modularui.api.math.Size;
+import com.gtnewhorizons.modularui.api.widget.Widget;
+import com.gtnewhorizons.modularui.common.widget.ButtonWidget;
+
+public class ClickableTextWidget extends ButtonWidget {
+
+ private Text caption;
+ private int maxLines = 1;
+ private int marginInLines = 1;
+
+ public ClickableTextWidget(Text caption) {
+ super();
+ this.caption = caption;
+ super.setBackground(caption);
+ }
+
+ public ClickableTextWidget setText(Text caption) {
+ this.caption = caption;
+ return this;
+ }
+
+ public ClickableTextWidget setMaxLines(int maxLines) {
+ this.maxLines = maxLines;
+ return this;
+ }
+
+ public ClickableTextWidget setMarginInLines(int margin) {
+ this.marginInLines = margin;
+ return this;
+ }
+
+ @Override
+ public Widget setBackground(IDrawable... drawables) {
+ IDrawable[] all = Arrays.copyOf(drawables, drawables.length + 1);
+ all[drawables.length] = caption;
+ return super.setBackground(all);
+ }
+
+ @Override
+ protected @NotNull Size determineSize(int maxWidth, int maxHeight) {
+ if (caption == null) return super.determineSize(maxWidth, maxHeight);
+ return new Size(
+ Math.min(maxWidth, TextRenderer.getFontRenderer().getStringWidth(caption.getFormatted())),
+ (maxLines + marginInLines) * TextRenderer.getFontRenderer().FONT_HEIGHT);
+ }
+}