001    package net.minecraft.src;
002    
003    import cpw.mods.fml.common.Side;
004    import cpw.mods.fml.common.asm.SideOnly;
005    
006    @SideOnly(Side.CLIENT)
007    public class ScreenChatOptions extends GuiScreen
008    {
009        private static final EnumOptions[] field_73891_a = new EnumOptions[] {EnumOptions.CHAT_VISIBILITY, EnumOptions.CHAT_COLOR, EnumOptions.CHAT_LINKS, EnumOptions.CHAT_OPACITY, EnumOptions.CHAT_LINKS_PROMPT};
010        private final GuiScreen field_73889_b;
011        private final GameSettings field_73890_c;
012        private String field_73888_d;
013    
014        public ScreenChatOptions(GuiScreen par1GuiScreen, GameSettings par2GameSettings)
015        {
016            this.field_73889_b = par1GuiScreen;
017            this.field_73890_c = par2GameSettings;
018        }
019    
020        /**
021         * Adds the buttons (and other controls) to the screen in question.
022         */
023        public void initGui()
024        {
025            StringTranslate var1 = StringTranslate.getInstance();
026            int var2 = 0;
027            this.field_73888_d = var1.translateKey("options.chat.title");
028            EnumOptions[] var3 = field_73891_a;
029            int var4 = var3.length;
030    
031            for (int var5 = 0; var5 < var4; ++var5)
032            {
033                EnumOptions var6 = var3[var5];
034    
035                if (var6.getEnumFloat())
036                {
037                    this.controlList.add(new GuiSlider(var6.returnEnumOrdinal(), this.width / 2 - 155 + var2 % 2 * 160, this.height / 6 + 24 * (var2 >> 1), var6, this.field_73890_c.getKeyBinding(var6), this.field_73890_c.getOptionFloatValue(var6)));
038                }
039                else
040                {
041                    this.controlList.add(new GuiSmallButton(var6.returnEnumOrdinal(), this.width / 2 - 155 + var2 % 2 * 160, this.height / 6 + 24 * (var2 >> 1), var6, this.field_73890_c.getKeyBinding(var6)));
042                }
043    
044                ++var2;
045            }
046    
047            this.controlList.add(new GuiButton(200, this.width / 2 - 100, this.height / 6 + 168, var1.translateKey("gui.done")));
048        }
049    
050        /**
051         * Fired when a control is clicked. This is the equivalent of ActionListener.actionPerformed(ActionEvent e).
052         */
053        protected void actionPerformed(GuiButton par1GuiButton)
054        {
055            if (par1GuiButton.enabled)
056            {
057                if (par1GuiButton.id < 100 && par1GuiButton instanceof GuiSmallButton)
058                {
059                    this.field_73890_c.setOptionValue(((GuiSmallButton)par1GuiButton).returnEnumOptions(), 1);
060                    par1GuiButton.displayString = this.field_73890_c.getKeyBinding(EnumOptions.getEnumOptions(par1GuiButton.id));
061                }
062    
063                if (par1GuiButton.id == 200)
064                {
065                    this.mc.gameSettings.saveOptions();
066                    this.mc.displayGuiScreen(this.field_73889_b);
067                }
068            }
069        }
070    
071        /**
072         * Draws the screen and all the components in it.
073         */
074        public void drawScreen(int par1, int par2, float par3)
075        {
076            this.drawDefaultBackground();
077            this.drawCenteredString(this.fontRenderer, this.field_73888_d, this.width / 2, 20, 16777215);
078            super.drawScreen(par1, par2, par3);
079        }
080    }