aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/gui/widget/IWidget.java
blob: b84f5e292fb98b309f66b5f5a6bad17e2ced2795 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package me.shedaniel.rei.gui.widget;

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;
    }
    
}