From dec91e06b77a1397779710ca47b61613617967c1 Mon Sep 17 00:00:00 2001 From: xander Date: Mon, 5 Sep 2022 15:40:37 +0100 Subject: wrap labels and group names --- .../yacl/gui/controllers/LabelController.java | 22 +++++++++++++++++++++- .../slider/SliderControllerElement.java | 1 + .../string/StringControllerElement.java | 1 + 3 files changed, 23 insertions(+), 1 deletion(-) (limited to 'src/main/java/dev/isxander/yacl/gui/controllers') diff --git a/src/main/java/dev/isxander/yacl/gui/controllers/LabelController.java b/src/main/java/dev/isxander/yacl/gui/controllers/LabelController.java index f61aedf..07ee8da 100644 --- a/src/main/java/dev/isxander/yacl/gui/controllers/LabelController.java +++ b/src/main/java/dev/isxander/yacl/gui/controllers/LabelController.java @@ -6,9 +6,12 @@ import dev.isxander.yacl.api.utils.Dimension; import dev.isxander.yacl.gui.AbstractWidget; import dev.isxander.yacl.gui.YACLScreen; import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.text.OrderedText; import net.minecraft.text.Text; import org.jetbrains.annotations.ApiStatus; +import java.util.List; + /** * Simply renders some text as a label. */ @@ -43,14 +46,31 @@ public class LabelController implements Controller { @ApiStatus.Internal public class LabelControllerElement extends AbstractWidget { + private List wrappedText; public LabelControllerElement(Dimension dim) { super(dim); + updateText(); } @Override public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { - textRenderer.drawWithShadow(matrices, formatValue(), dim.x(), dim.centerY() - textRenderer.fontHeight / 2f, -1); + updateText(); + + int i = 0; + for (OrderedText text : wrappedText) { + textRenderer.drawWithShadow(matrices, text, dim.x(), dim.y() + getYPadding() + i * textRenderer.fontHeight, -1); + i++; + } + } + + private int getYPadding() { + return 3; + } + + private void updateText() { + wrappedText = textRenderer.wrapLines(formatValue(), dim.width()); + dim.setHeight(wrappedText.size() * 9 + getYPadding() * 2); } } } diff --git a/src/main/java/dev/isxander/yacl/gui/controllers/slider/SliderControllerElement.java b/src/main/java/dev/isxander/yacl/gui/controllers/slider/SliderControllerElement.java index 7eb7310..fa763b7 100644 --- a/src/main/java/dev/isxander/yacl/gui/controllers/slider/SliderControllerElement.java +++ b/src/main/java/dev/isxander/yacl/gui/controllers/slider/SliderControllerElement.java @@ -25,6 +25,7 @@ public class SliderControllerElement extends ControllerWidget