aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/gui/widget/ClickableLabelWidget.java
diff options
context:
space:
mode:
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.java43
1 files changed, 32 insertions, 11 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 7f7de43d3..b25338537 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/ClickableLabelWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/ClickableLabelWidget.java
@@ -2,28 +2,25 @@ package me.shedaniel.rei.gui.widget;
import java.awt.*;
-public abstract class ClickableLabelWidget extends LabelWidget implements HighlightableWidget {
+public abstract class ClickableLabelWidget extends LabelWidget {
+
+ private static final int hoveredColor = (new Color(102, 255, 204)).getRGB();
+ protected boolean focused;
public ClickableLabelWidget(int x, int y, String text) {
super(x, y, text);
}
@Override
- public Rectangle getBounds() {
- int width = textRenderer.getStringWidth(text);
- return new Rectangle(x - width / 2 - 1, y - 5, width + 2, 14);
- }
-
- @Override
public void draw(int mouseX, int mouseY, float partialTicks) {
int colour = -1;
- if (isHighlighted(mouseX, mouseY))
- colour = 16777120;
- drawStringCentered(textRenderer, (isHighlighted(mouseX, mouseY) ? "§n" : "") + text, x, y, colour);
+ if (isHovered(mouseX, mouseY))
+ colour = hoveredColor;
+ drawStringCentered(textRenderer, (isHovered(mouseX, mouseY) ? "§n" : "") + text, x, y, colour);
}
@Override
- public boolean onMouseClick(int button, double mouseX, double mouseY) {
+ public boolean mouseClicked(double mouseX, double mouseY, int button) {
if (button == 0 && isHighlighted(mouseX, mouseY)) {
onLabelClicked();
return true;
@@ -31,6 +28,30 @@ public abstract class ClickableLabelWidget extends LabelWidget implements Highli
return false;
}
+ @Override
+ public boolean keyPressed(int int_1, int int_2, int int_3) {
+ if (int_1 != 257 && int_1 != 32 && int_1 != 335) {
+ return false;
+ } else {
+ this.onLabelClicked();
+ return true;
+ }
+ }
+
+ @Override
+ public boolean hasFocus() {
+ return true;
+ }
+
+ public boolean isHovered(int mouseX, int mouseY) {
+ return isHighlighted(mouseX, mouseY) || focused;
+ }
+
+ @Override
+ public void setHasFocus(boolean boolean_1) {
+ focused = boolean_1;
+ }
+
public abstract void onLabelClicked();
}