package openmods.gui.component; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiTextField; import openmods.api.IValueReceiver; import openmods.gui.listener.IValueChangedListener; public class GuiComponentTextbox extends BaseComponent implements IValueReceiver<String> { private int width; private int height; private GuiTextField textfield; private IValueChangedListener<String> listener; public GuiComponentTextbox(int x, int y, int width, int height) { super(x, y); this.width = width; this.height = height; textfield = new GuiTextField(Minecraft.getMinecraft().fontRenderer, x, y, width, height); } @Override public int getWidth() { return width; } @Override public int getHeight() { return height; } @Override public void render(Minecraft minecraft, int offsetX, int offsetY, int mouseX, int mouseY) { textfield.drawTextBox(); } @Override public void renderOverlay(Minecraft minecraft, int offsetX, int offsetY, int mouseX, int mouseY) {} @Override public void keyTyped(char par1, int par2) { if (textfield.textboxKeyTyped(par1, par2)) notifyListeners(); } @Override public void mouseDown(int mouseX, int mouseY, int button) { super.mouseDown(mouseX, mouseY, button); textfield.mouseClicked(mouseX + x, mouseY + y, button); } public String getText() { return textfield.getText(); } public GuiComponentTextbox setText(String text) { textfield.setText(text); return this; } @Override public void setValue(String value) { textfield.setText(value); } private void notifyListeners() { if (listener != null) listener.valueChanged(textfield.getText()); } public void setListener(IValueChangedListener<String> listener) { this.listener = listener; } }