aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/gui/widget/IWidget.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/shedaniel/rei/gui/widget/IWidget.java')
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/IWidget.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/IWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/IWidget.java
index d63817563..2b0735d4a 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/IWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/IWidget.java
@@ -1,9 +1,42 @@
package me.shedaniel.rei.gui.widget;
+import com.google.common.collect.Lists;
import net.minecraft.client.gui.GuiEventListener;
+import java.util.List;
+
public interface IWidget extends GuiEventListener {
+ public List<IWidget> getListeners();
+
public void draw(int mouseX, int mouseY, float partialTicks);
+ @Override
+ default boolean mouseClicked(double double_1, double double_2, int int_1) {
+ if (onMouseClick(int_1, double_1, double_2))
+ return true;
+ for(IWidget widget : getListeners())
+ if (widget.mouseClicked(double_1, double_2, int_1))
+ return true;
+ return false;
+ }
+
+ default boolean onMouseClick(int button, double mouseX, double mouseY) {
+ return false;
+ }
+
+ default boolean onMouseScrolled(double amount) {
+ return false;
+ }
+
+ @Override
+ default boolean mouseScrolled(double amount) {
+ if (onMouseScrolled(amount))
+ return true;
+ for(IWidget widget : getListeners())
+ if (widget.mouseScrolled(amount))
+ return true;
+ return false;
+ }
+
}