Files
ReplayModCinematic/src/main/java/eu/crushedpixel/replaymod/gui/elements/DelegatingElement.java
CrushedPixel 5828b04596 "The Commit that properly implements the disabling of Gui Elements"
Added enabled Field to DelegatingElement, which every instance can handle itself
Made isEnabled Field in GuiAdvancedTextField protected for subclasses to access
Made GuiDraggingNumberInput only draggable while enabled
Made GuiDropdown check enabled field before accepting mouse clicks
Properly tints GuiTexturedButton if disabled
2015-07-10 03:37:13 +02:00

65 lines
1.7 KiB
Java

package eu.crushedpixel.replaymod.gui.elements;
import net.minecraft.client.Minecraft;
public abstract class DelegatingElement implements GuiElement {
protected boolean enabled = true;
public static DelegatingElement of(final GuiElement element) {
return new DelegatingElement() {
@Override
public GuiElement delegate() {
return element;
}
};
}
public abstract GuiElement delegate();
@Override
public void draw(Minecraft mc, int mouseX, int mouseY) {
delegate().draw(mc, mouseX, mouseY);
}
@Override
public void drawOverlay(Minecraft mc, int mouseX, int mouseY) {
delegate().drawOverlay(mc, mouseX, mouseY);
}
@Override
public boolean isHovering(int mouseX, int mouseY) {
return delegate().isHovering(mouseX, mouseY);
}
@Override
public void mouseClick(Minecraft mc, int mouseX, int mouseY, int button) {
delegate().mouseClick(mc, mouseX, mouseY, button);
}
@Override
public void mouseDrag(Minecraft mc, int mouseX, int mouseY, int button) {
delegate().mouseDrag(mc, mouseX, mouseY, button);
}
@Override
public void mouseRelease(Minecraft mc, int mouseX, int mouseY, int button) {
delegate().mouseRelease(mc, mouseX, mouseY, button);
}
@Override
public void buttonPressed(Minecraft mc, int mouseX, int mouseY, char key, int keyCode) {
delegate().buttonPressed(mc, mouseX, mouseY, key, keyCode);
}
@Override
public void tick(Minecraft mc) {
delegate().tick(mc);
}
@Override
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
}