Added CheckBoxListener for GuiAdvancedCheckBox
This commit is contained in:
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
package eu.crushedpixel.replaymod.gui.elements.listeners;
|
||||
|
||||
public interface CheckBoxListener {
|
||||
|
||||
void onCheck(boolean checked);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user