diff options
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.java | 33 |
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; + } + } |
