package mods.eln.gui;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.GuiTextField;
import java.util.ArrayList;
public class GuiTextFieldEln extends GuiTextField implements IGuiObject {
int xPos, yPos, width, height;
GuiTextFieldElnObserver observer;
GuiHelper helper;
private boolean enabled = true;
IGuiObjectObserver iGuiObjectObserver;
public GuiTextFieldEln(FontRenderer par1FontRenderer, int x, int y, int w, int h, GuiHelper helper) {
super(par1FontRenderer, x, y, w, h);
setTextColor(-1);
setDisabledTextColour(-1);
setEnableBackgroundDrawing(true);
setMaxStringLength(150);
xPos = x;
yPos = y;
width = w;
height = h;
this.helper = helper;
}
public GuiTextFieldEln(FontRenderer par1FontRenderer, int x, int y, int w, GuiHelper helper) {
this(par1FontRenderer, x, y, w, 12, helper);
}
@Override
public int getYMax() {
return yPos + height;
}
public void setObserver(GuiTextFieldElnObserver observer) {
this.observer = observer;
}
public interface GuiTextFieldElnObserver {
void textFieldNewValue(GuiTextFieldEln textField, String value);
}
ArrayList<String> comment = new ArrayList<String>();
public void setComment(String[] comment) {
for (String str : comment) {
this.comment.add(str);
}
}
public void setComment(int line, String comment) {
if (this.comment.size() < line + 1)
this.comment.add(line, comment);
else
this.comment.set(line, comment);
}
public void setText(float value) {
if (Math.abs(value) < 1000)
setText(String.format("%3.2f", value));
else
setText(String.format("%3.0f", value));
}
public void setText(int value) {
setText(String.format("%d", value));
}
@Override
public void setEnabled(boolean par1) {
enabled = par1;
super.setEnabled(par1);
}
public boolean getEnabled() {
return enabled;
}
public boolean textboxKeyTyped(char par1, int par2) {
if (getEnabled() && this.isFocused() && par1 == '\r') {
setFocused(false);
return true;
}
return super.textboxKeyTyped(par1, par2);
}
@Override
public void setFocused(boolean par1) {
if (isFocused() == true && par1 == false) {
if (observer != null)
observer.textFieldNewValue(this, this.getText());
if (iGuiObjectObserver != null)
iGuiObjectObserver.guiObjectEvent(this);
}
super.setFocused(par1);
}
@Override
public void idraw(int x, int y, float f) {
this.drawTextBox();
}
@Override
public boolean ikeyTyped(char key, int code) {
return this.textboxKeyTyped(key, code);
}
@Override
public void imouseClicked(int x, int y, int code) {
this.mouseClicked(x, y, code);
}
@Override
public void imouseMove(int x, int y) {
}
@Override
public void imouseMovedOrUp(int x, int y, int witch) {
}
@Override
public void idraw2(int x, int y) {
if (!isFocused() && getVisible() && x >= xPos && y >= yPos && x < xPos + width && y < yPos + height)
helper.drawHoveringText(comment, x, y, Minecraft.getMinecraft().fontRenderer);
}
@Override
public void translate(int x, int y) {
this.xPos += x;
this.yPos += y;
}
public int getHeight() {
return height;
}
public void setGuiObserver(IGuiObjectObserver iGuiObjectObserver) {
this.iGuiObjectObserver = iGuiObjectObserver;
}
}