diff options
| author | shedaniel <daniel@shedaniel.me> | 2019-11-22 17:23:51 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2019-11-22 17:23:51 +0800 |
| commit | 0710ab56e7e8f76670dab785b907ccfe868ad1d5 (patch) | |
| tree | 6a8e7a6e3586bc0f679b82d5ec3ba791741cb842 /src/main/java/me/shedaniel/rei/gui/widget/ClickableLabelWidget.java | |
| parent | d15781a946d797a35fb00c248a3e57e2aa3414b5 (diff) | |
| download | RoughlyEnoughItems-0710ab56e7e8f76670dab785b907ccfe868ad1d5.tar.gz RoughlyEnoughItems-0710ab56e7e8f76670dab785b907ccfe868ad1d5.tar.bz2 RoughlyEnoughItems-0710ab56e7e8f76670dab785b907ccfe868ad1d5.zip | |
3.2.9
Diffstat (limited to 'src/main/java/me/shedaniel/rei/gui/widget/ClickableLabelWidget.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/gui/widget/ClickableLabelWidget.java | 53 |
1 files changed, 37 insertions, 16 deletions
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/ClickableLabelWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/ClickableLabelWidget.java index 14a6b9f83..697d78782 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/ClickableLabelWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/ClickableLabelWidget.java @@ -13,17 +13,28 @@ import java.util.Optional; public abstract class ClickableLabelWidget extends LabelWidget { public boolean focused; - public boolean clickable; - public int hoveredColor; + private boolean clickable = true; + private int hoveredColor; + @Deprecated public ClickableLabelWidget(int x, int y, String text, boolean clickable) { - super(x, y, text); - this.clickable = clickable; - this.hoveredColor = ScreenHelper.isDarkModeEnabled() ? -1 : 0xFF66FFCC; + this(new Point(x, y), text, clickable); } + @Deprecated public ClickableLabelWidget(int x, int y, String text) { - this(x, y, text, true); + this(new Point(x, y), text, true); + } + + @Deprecated + public ClickableLabelWidget(Point point, String text, boolean clickable) { + this(point, text); + clickable(clickable); + } + + public ClickableLabelWidget(Point point, String text) { + super(point, text); + this.hoveredColor = ScreenHelper.isDarkModeEnabled() ? -1 : 0xFF66FFCC; } public LabelWidget hoveredColor(int hoveredColor) { @@ -31,21 +42,31 @@ public abstract class ClickableLabelWidget extends LabelWidget { return this; } + public LabelWidget clickable(boolean clickable) { + this.clickable = clickable; + return this; + } + + public boolean isClickable() { + return clickable; + } + @Override public void render(int mouseX, int mouseY, float delta) { int color = getDefaultColor(); - if (clickable && isHovered(mouseX, mouseY)) + if (isClickable() && isHovered(mouseX, mouseY)) color = getHoveredColor(); - int width = font.getStringWidth(text); + Point pos = getPosition(); + int width = font.getStringWidth(getText()); if (isHasShadows()) - font.drawWithShadow(text, x - width / 2, y, color); + font.drawWithShadow(getText(), pos.x - width / 2, pos.y, color); else - font.draw(text, x - width / 2, y, color); - if (clickable && getTooltips().isPresent()) + font.draw(getText(), pos.x - width / 2, pos.y, color); + if (isClickable() && getTooltips().isPresent()) if (!focused && containsMouse(mouseX, mouseY)) ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(getTooltips().get().split("\n"))); else if (focused) - ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(new Point(x, y), getTooltips().get().split("\n"))); + ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(pos, getTooltips().get().split("\n"))); } public int getHoveredColor() { @@ -54,7 +75,7 @@ public abstract class ClickableLabelWidget extends LabelWidget { @Override public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (button == 0 && clickable && containsMouse(mouseX, mouseY)) { + if (button == 0 && isClickable() && containsMouse(mouseX, mouseY)) { onLabelClicked(); return true; } @@ -67,7 +88,7 @@ public abstract class ClickableLabelWidget extends LabelWidget { @Override public boolean keyPressed(int int_1, int int_2, int int_3) { - if (!clickable || !focused) + if (!isClickable() || !focused) return false; if (int_1 != 257 && int_1 != 32 && int_1 != 335) return false; @@ -77,14 +98,14 @@ public abstract class ClickableLabelWidget extends LabelWidget { @Override public boolean changeFocus(boolean boolean_1) { - if (!clickable) + if (!isClickable()) return false; this.focused = !this.focused; return true; } public boolean isHovered(int mouseX, int mouseY) { - return clickable && (containsMouse(mouseX, mouseY) || focused); + return isClickable() && (containsMouse(mouseX, mouseY) || focused); } public abstract void onLabelClicked(); |
