001 package net.minecraft.src;
002
003 import net.minecraftforge.client.GuiControlsScrollPanel;
004
005 import cpw.mods.fml.common.Side;
006 import cpw.mods.fml.common.asm.SideOnly;
007
008 @SideOnly(Side.CLIENT)
009 public class GuiControls extends GuiScreen
010 {
011 /**
012 * A reference to the screen object that created this. Used for navigating between screens.
013 */
014 private GuiScreen parentScreen;
015
016 /** The title string that is displayed in the top-center of the screen. */
017 protected String screenTitle = "Controls";
018
019 /** Reference to the GameSettings object. */
020 private GameSettings options;
021
022 /** The ID of the button that has been pressed. */
023 private int buttonId = -1;
024
025 private GuiControlsScrollPanel scrollPane;
026
027 public GuiControls(GuiScreen par1GuiScreen, GameSettings par2GameSettings)
028 {
029 this.parentScreen = par1GuiScreen;
030 this.options = par2GameSettings;
031 }
032
033 private int func_73907_g()
034 {
035 return this.width / 2 - 155;
036 }
037
038 /**
039 * Adds the buttons (and other controls) to the screen in question.
040 */
041 public void initGui()
042 {
043 scrollPane = new GuiControlsScrollPanel(this, options, mc);
044 StringTranslate var1 = StringTranslate.getInstance();
045 int var2 = this.func_73907_g();
046
047 this.controlList.add(new GuiButton(200, this.width / 2 - 100, this.height - 28, var1.translateKey("gui.done")));
048 scrollPane.registerScrollButtons(controlList, 7, 8);
049 this.screenTitle = var1.translateKey("controls.title");
050 }
051
052 /**
053 * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e).
054 */
055 protected void actionPerformed(GuiButton par1GuiButton)
056 {
057 if (par1GuiButton.id == 200)
058 {
059 this.mc.displayGuiScreen(this.parentScreen);
060 }
061 }
062
063 /**
064 * Called when the mouse is clicked.
065 */
066 protected void mouseClicked(int par1, int par2, int par3)
067 {
068 super.mouseClicked(par1, par2, par3);
069 }
070
071 /**
072 * Fired when a key is typed. This is the equivalent of KeyListener.keyTyped(KeyEvent e).
073 */
074 protected void keyTyped(char par1, int par2)
075 {
076 if (scrollPane.keyTyped(par1, par2))
077 {
078 super.keyTyped(par1, par2);
079 }
080 }
081
082 /**
083 * Draws the screen and all the components in it.
084 */
085 public void drawScreen(int par1, int par2, float par3)
086 {
087 this.drawDefaultBackground();
088 scrollPane.drawScreen(par1, par2, par3);
089 drawCenteredString(fontRenderer, screenTitle, width / 2, 4, 0xffffff);
090 super.drawScreen(par1, par2, par3);
091 }
092 }