package net.minecraft.client.gui;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.Minecraft;
import org.lwjgl.opengl.GL11;
@SideOnly(Side.CLIENT)
public class GuiButton extends Gui
{
/** Button width in pixels */
protected int width;
/** Button height in pixels */
protected int height;
/** The x position of this control. */
public int xPosition;
/** The y position of this control. */
public int yPosition;
/** The string displayed on this control. */
public String displayString;
/** ID for this control. */
public int id;
/** True if this control is enabled, false to disable. */
public boolean enabled;
/** Hides the button completely if false. */
public boolean drawButton;
protected boolean field_82253_i;
public GuiButton(int par1, int par2, int par3, String par4Str)
{
this(par1, par2, par3, 200, 20, par4Str);
}
public GuiButton(int par1, int par2, int par3, int par4, int par5, String par6Str)
{
this.width = 200;
this.height = 20;
this.enabled = true;
this.drawButton = true;
this.id = par1;
this.xPosition = par2;
this.yPosition = par3;
this.width = par4;
this.height = par5;
this.displayString = par6Str;
}
/**
* Returns 0 if the button is disabled, 1 if the mouse is NOT hovering over this button and 2 if it IS hovering over
* this button.
*/
protected int getHoverState(boolean par1)
{
byte b0 = 1;
if (!this.enabled)
{
b0 = 0;
}
else if (par1)
{
b0 = 2;
}
return b0;
}
/**
* Draws this button to the screen.
*/
public void drawButton(Minecraft par1Minecraft, int par2, int par3)
{
if (this.drawButton)
{
FontRenderer fontrenderer = par1Minecraft.fontRenderer;
par1Minecraft.renderEngine.bindTexture("/gui/gui.png");
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
this.field_82253_i = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height;
int k = this.getHoverState(this.field_82253_i);
this.drawTexturedModalRect(this.xPosition, this.yPosition, 0, 46 + k * 20, this.width / 2, this.height);
this.drawTexturedModalRect(this.xPosition + this.width / 2, this.yPosition, 200 - this.width / 2, 46 + k * 20, this.width / 2, this.height);
this.mouseDragged(par1Minecraft, par2, par3);
int l = 14737632;
if (!this.enabled)
{
l = -6250336;
}
else if (this.field_82253_i)
{
l = 16777120;
}
this.drawCenteredString(fontrenderer, this.displayString, this.xPosition + this.width / 2, this.yPosition + (this.height - 8) / 2, l);
}
}
/**
* Fired when the mouse button is dragged. Equivalent of MouseListener.mouseDragged(MouseEvent e).
*/
protected void mouseDragged(Minecraft par1Minecraft, int par2, int par3) {}
/**
* Fired when the mouse button is released. Equivalent of MouseListener.mouseReleased(MouseEvent e).
*/
public void mouseReleased(int par1, int par2) {}
/**
* Returns true if the mouse has been pressed on this control. Equivalent of MouseListener.mousePressed(MouseEvent
* e).
*/
public boolean mousePressed(Minecraft par1Minecraft, int par2, int par3)
{
return this.enabled && this.drawButton && par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height;
}
public boolean func_82252_a()
{
return this.field_82253_i;
}
public void func_82251_b(int par1, int par2) {}
}