aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/gui/widget/LabelWidget.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/shedaniel/rei/gui/widget/LabelWidget.java')
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/LabelWidget.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/LabelWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/LabelWidget.java
index ac6815d3d..bd9acb417 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/LabelWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/LabelWidget.java
@@ -12,6 +12,9 @@ import net.minecraft.client.gui.Element;
import java.util.Collections;
import java.util.List;
+import java.util.Optional;
+import java.util.function.Consumer;
+import java.util.function.Supplier;
public class LabelWidget extends WidgetWithBounds {
@@ -20,18 +23,33 @@ public class LabelWidget extends WidgetWithBounds {
private int defaultColor;
private boolean hasShadows = true;
private boolean centered = true;
+ private Supplier<String> tooltipSupplier;
@Deprecated
public LabelWidget(int x, int y, String text) {
this(new Point(x, y), text);
}
+ @Deprecated
public LabelWidget(Point point, String text) {
this.pos = point;
this.text = text;
this.defaultColor = ScreenHelper.isDarkModeEnabled() ? 0xFFBBBBBB : -1;
}
+ public static LabelWidget create(Point point, String text) {
+ return new LabelWidget(point, text);
+ }
+
+ public static ClickableLabelWidget createClickable(Point point, String text, Consumer<ClickableLabelWidget> onClicked) {
+ return new ClickableActionedLabelWidget(point, text, onClicked);
+ }
+
+ public LabelWidget tooltip(Supplier<String> tooltipSupplier) {
+ this.tooltipSupplier = tooltipSupplier;
+ return this;
+ }
+
public boolean isCentered() {
return centered;
}
@@ -94,6 +112,10 @@ public class LabelWidget extends WidgetWithBounds {
return this;
}
+ public Optional<String> getTooltips() {
+ return Optional.ofNullable(tooltipSupplier).map(Supplier::get);
+ }
+
@Override
public Rectangle getBounds() {
int width = font.getStringWidth(text);
@@ -125,4 +147,9 @@ public class LabelWidget extends WidgetWithBounds {
}
}
+ protected void drawTooltips(int mouseX, int mouseY) {
+ if (getTooltips().isPresent())
+ if (containsMouse(mouseX, mouseY))
+ ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(getTooltips().get().split("\n")));
+ }
}