Added CheckBoxListener for GuiAdvancedCheckBox

This commit is contained in:
CrushedPixel
2015-07-19 02:32:03 +02:00
parent 046b686837
commit 708201c456
2 changed files with 37 additions and 1 deletions

View File

@@ -1,13 +1,28 @@
package eu.crushedpixel.replaymod.gui.elements;
import eu.crushedpixel.replaymod.gui.elements.listeners.CheckBoxListener;
import net.minecraft.client.Minecraft;
import net.minecraftforge.fml.client.config.GuiCheckBox;
import java.util.ArrayList;
import java.util.List;
public class GuiAdvancedCheckBox extends GuiCheckBox implements GuiElement {
public GuiAdvancedCheckBox(int xPos, int yPos, String displayString, boolean isChecked) {
super(0, xPos, yPos, displayString, isChecked);
}
public GuiAdvancedCheckBox(String displayString, boolean isChecked, boolean isEnabled) {
this(0, 0, displayString, isChecked);
this.setElementEnabled(isEnabled);
}
private List<CheckBoxListener> listeners = new ArrayList<CheckBoxListener>();
public void addCheckBoxListener(CheckBoxListener listener) {
this.listeners.add(listener);
}
@Override
public void draw(Minecraft mc, int mouseX, int mouseY) {
drawButton(mc, mouseX, mouseY);
@@ -28,7 +43,9 @@ public class GuiAdvancedCheckBox extends GuiCheckBox implements GuiElement {
@Override
public boolean mouseClick(Minecraft mc, int mouseX, int mouseY, int button) {
return mousePressed(mc, mouseX, mouseY);
boolean success = mousePressed(mc, mouseX, mouseY);
if(success) fireCheckListeners();
return success;
}
@Override
@@ -55,4 +72,16 @@ public class GuiAdvancedCheckBox extends GuiCheckBox implements GuiElement {
public void setElementEnabled(boolean enabled) {
this.enabled = enabled;
}
@Override
public void setIsChecked(boolean isChecked) {
super.setIsChecked(isChecked);
fireCheckListeners();
}
private void fireCheckListeners() {
for(CheckBoxListener listener : listeners) {
listener.onCheck(isChecked());
}
}
}

View File

@@ -0,0 +1,7 @@
package eu.crushedpixel.replaymod.gui.elements.listeners;
public interface CheckBoxListener {
void onCheck(boolean checked);
}