Added CheckBoxListener for GuiAdvancedCheckBox
This commit is contained in:
@@ -1,13 +1,28 @@
|
|||||||
package eu.crushedpixel.replaymod.gui.elements;
|
package eu.crushedpixel.replaymod.gui.elements;
|
||||||
|
|
||||||
|
import eu.crushedpixel.replaymod.gui.elements.listeners.CheckBoxListener;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraftforge.fml.client.config.GuiCheckBox;
|
import net.minecraftforge.fml.client.config.GuiCheckBox;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class GuiAdvancedCheckBox extends GuiCheckBox implements GuiElement {
|
public class GuiAdvancedCheckBox extends GuiCheckBox implements GuiElement {
|
||||||
public GuiAdvancedCheckBox(int xPos, int yPos, String displayString, boolean isChecked) {
|
public GuiAdvancedCheckBox(int xPos, int yPos, String displayString, boolean isChecked) {
|
||||||
super(0, xPos, yPos, displayString, 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
|
@Override
|
||||||
public void draw(Minecraft mc, int mouseX, int mouseY) {
|
public void draw(Minecraft mc, int mouseX, int mouseY) {
|
||||||
drawButton(mc, mouseX, mouseY);
|
drawButton(mc, mouseX, mouseY);
|
||||||
@@ -28,7 +43,9 @@ public class GuiAdvancedCheckBox extends GuiCheckBox implements GuiElement {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean mouseClick(Minecraft mc, int mouseX, int mouseY, int button) {
|
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
|
@Override
|
||||||
@@ -55,4 +72,16 @@ public class GuiAdvancedCheckBox extends GuiCheckBox implements GuiElement {
|
|||||||
public void setElementEnabled(boolean enabled) {
|
public void setElementEnabled(boolean enabled) {
|
||||||
this.enabled = 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