public override void LoadAndInitialize() { UIParent.UI.Clear(); switch (subscreen) { case -1: //main { UIButton button; UIImage logo; logo = new UIImage(game); logo.Textures = game.Content.Load<Texture2D>("logo_options"); logo.NormalTexture = new Rectangle(0, 0, 500, 75); logo.PositionAndSize = new Rectangle(400 - 250, 20, 500, 75); UIParent.UI.Add(logo); button = new UIButton(game); button.Name = "btnPlayerOptions"; button.Text = "Players"; button.PositionAndSize = new Rectangle(400 - 100, (600 - 85 * 5), 200, 75); button.Action += (UIButton_Action)((btn) => { UIParent.ClearESCHook(); oResult = new GameScreen_Options(game, 0); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); button = new UIButton(game); button.Name = "btnVideoOptions"; button.Text = "Video"; button.PositionAndSize = new Rectangle(400 - 100, (600 - 85 * 4), 200, 75); button.Action += (UIButton_Action)((btn) => { UIParent.ClearESCHook(); oResult = new GameScreen_Options(game, 1); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); button = new UIButton(game); button.Name = "btnAudioOptions"; button.Text = "Audio"; button.PositionAndSize = new Rectangle(400 - 100, (600 - 85 * 3), 200, 75); button.Action += (UIButton_Action)((btn) => { UIParent.ClearESCHook(); oResult = new GameScreen_Options(game, 2); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); button = new UIButton(game); button.Name = "btnCommon"; button.Text = "Other settings"; button.PositionAndSize = new Rectangle(400 - 100, (600 - 85 * 2), 200, 75); button.Action += (UIButton_Action)((btn) => { UIParent.ClearESCHook(); oResult = new GameScreen_Options(game, 3); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); UIButton btnBack = new UIButton(game); btnBack.Name = "btnBack"; btnBack.Text = "<-- Back"; btnBack.PositionAndSize = new Rectangle(5, (600 - 41), 100, 37); btnBack.Action += (UIButton_Action)((btn) => { UIParent.ClearESCHook(); oResult = new GameScreen_Main(game); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(btnBack); UIParent.ESCHook += UIParent_ESCHook1; } break; case 0: //player { UIButton button; UIComboBox combo; UITextBox textbox; UIKeyPicker kpicker; UILabel label; UIImage logo; logo = new UIImage(game); logo.Textures = game.Content.Load<Texture2D>("logo_playersoptions"); logo.NormalTexture = new Rectangle(0, 0, 500, 75); logo.PositionAndSize = new Rectangle(400 - 250, 20, 500, 75); UIParent.UI.Add(logo); label = new UILabel(game); label.AutoSize = true; label.Text = "Player name: "; label.PositionAndSize = new Rectangle(10, 95 + 5, 0, 0); UIParent.UI.Add(label); textbox = new UITextBox(game); textbox.Name = "tboxName"; textbox.PositionAndSize = new Rectangle(label.PositionAndSize.Right + 5, label.PositionAndSize.Top - 5, 200, 0); textbox.TextLenghtLimit = 15; textbox.Text = ""; UIParent.UI.Add(textbox); label = new UILabel(game); label.AutoSize = true; label.Text = "Color: "; label.PositionAndSize = new Rectangle(textbox.PositionAndSize.Right + 20, textbox.PositionAndSize.Top + 5, 0, 0); UIParent.UI.Add(label); combo = new UIComboBox(game); combo.Name = "cboxColor"; combo.Edible = false; combo.PositionAndSize = new Rectangle(label.PositionAndSize.Right + 5, textbox.PositionAndSize.Top, 100, 0); combo.Values.Add(new UITaggedValue("white", Color.White)); combo.Values.Add(new UITaggedValue("black", Color.Black)); combo.Values.Add(new UITaggedValue("red", Color.Red)); combo.Values.Add(new UITaggedValue("green", Color.Green)); combo.Values.Add(new UITaggedValue("blue", Color.Blue)); combo.Values.Add(new UITaggedValue("yellow", Color.Yellow)); combo.Values.Add(new UITaggedValue("magenta", Color.Magenta)); combo.Values.Add(new UITaggedValue("cyan", Color.Cyan)); combo.MaxDisplayedItems = 6; combo.SelectedIndex = 0; UIParent.UI.Add(combo); label = new UILabel(game); label.AutoSize = true; label.Text = "Keys:"; label.PositionAndSize = new Rectangle(10, textbox.PositionAndSize.Bottom + 10, 0, 0); UIParent.UI.Add(label); Rectangle last_pos = new Rectangle(label.PositionAndSize.Left + 10, label.PositionAndSize.Bottom + 5, 100, textbox.PositionAndSize.Height); label = new UILabel(game); label.AutoSize = true; label.Text = "Turn left/Go left: "; label.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top + 5, 0, 0); UIParent.UI.Add(label); kpicker = new UIKeyPicker(game); kpicker.Name = "kpGoLeft"; kpicker.PositionAndSize = new Rectangle(300, last_pos.Top, last_pos.Width, last_pos.Height); kpicker.SelectedKey = Keys.None; UIParent.UI.Add(kpicker); last_pos = new Rectangle(last_pos.Left, kpicker.PositionAndSize.Bottom, last_pos.Width, last_pos.Height); label = new UILabel(game); label.AutoSize = true; label.Text = "Turn right/Go right: "; label.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top + 5, 0, 0); UIParent.UI.Add(label); kpicker = new UIKeyPicker(game); kpicker.Name = "kpGoRight"; kpicker.PositionAndSize = new Rectangle(300, last_pos.Top, last_pos.Width, last_pos.Height); kpicker.SelectedKey = Keys.None; UIParent.UI.Add(kpicker); last_pos = new Rectangle(last_pos.Left, kpicker.PositionAndSize.Bottom, last_pos.Width, last_pos.Height); label = new UILabel(game); label.AutoSize = true; label.Text = "---/Go up: "; label.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top + 5, 0, 0); UIParent.UI.Add(label); kpicker = new UIKeyPicker(game); kpicker.Name = "kpGoUp"; kpicker.PositionAndSize = new Rectangle(300, last_pos.Top, last_pos.Width, last_pos.Height); kpicker.SelectedKey = Keys.None; UIParent.UI.Add(kpicker); last_pos = new Rectangle(last_pos.Left, kpicker.PositionAndSize.Bottom, last_pos.Width, last_pos.Height); label = new UILabel(game); label.AutoSize = true; label.Text = "Brake/Go down: "; label.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top + 5, 0, 0); UIParent.UI.Add(label); kpicker = new UIKeyPicker(game); kpicker.Name = "kpGoDown"; kpicker.PositionAndSize = new Rectangle(300, last_pos.Top, last_pos.Width, last_pos.Height); kpicker.SelectedKey = Keys.None; UIParent.UI.Add(kpicker); last_pos = new Rectangle(last_pos.Left, kpicker.PositionAndSize.Bottom, last_pos.Width, last_pos.Height); label = new UILabel(game); label.AutoSize = true; label.Text = "Chat: "; label.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top + 5, 0, 0); UIParent.UI.Add(label); kpicker = new UIKeyPicker(game); kpicker.Name = "kpOpenChat"; kpicker.PositionAndSize = new Rectangle(300, last_pos.Top, last_pos.Width, last_pos.Height); kpicker.SelectedKey = Keys.None; UIParent.UI.Add(kpicker); last_pos = new Rectangle(last_pos.Left, kpicker.PositionAndSize.Bottom, last_pos.Width, last_pos.Height); label = new UILabel(game); label.AutoSize = true; label.Text = "Bot menu: "; label.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top + 5, 0, 0); UIParent.UI.Add(label); kpicker = new UIKeyPicker(game); kpicker.Name = "kpBotMenu"; kpicker.PositionAndSize = new Rectangle(300, last_pos.Top, last_pos.Width, last_pos.Height); kpicker.SelectedKey = Keys.None; UIParent.UI.Add(kpicker); last_pos = new Rectangle(last_pos.Left, kpicker.PositionAndSize.Bottom, last_pos.Width, last_pos.Height); label = new UILabel(game); label.AutoSize = true; label.Text = "Speed up bonus: "; label.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top + 5, 0, 0); UIParent.UI.Add(label); kpicker = new UIKeyPicker(game); kpicker.Name = "kpSpeedUp"; kpicker.PositionAndSize = new Rectangle(300, last_pos.Top, last_pos.Width, last_pos.Height); kpicker.SelectedKey = Keys.None; UIParent.UI.Add(kpicker); last_pos = new Rectangle(last_pos.Left, kpicker.PositionAndSize.Bottom, last_pos.Width, last_pos.Height); label = new UILabel(game); label.AutoSize = true; label.Text = "Trace widen bonus: "; label.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top + 5, 0, 0); UIParent.UI.Add(label); kpicker = new UIKeyPicker(game); kpicker.Name = "kpTraceWiden"; kpicker.PositionAndSize = new Rectangle(300, last_pos.Top, last_pos.Width, last_pos.Height); kpicker.SelectedKey = Keys.None; UIParent.UI.Add(kpicker); last_pos = new Rectangle(last_pos.Left, kpicker.PositionAndSize.Bottom, last_pos.Width, last_pos.Height); label = new UILabel(game); label.AutoSize = true; label.Text = "Fear bomb bonus: "; label.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top + 5, 0, 0); UIParent.UI.Add(label); kpicker = new UIKeyPicker(game); kpicker.Name = "kpRandomizationBomb"; kpicker.PositionAndSize = new Rectangle(300, last_pos.Top, last_pos.Width, last_pos.Height); kpicker.SelectedKey = Keys.None; UIParent.UI.Add(kpicker); last_pos = new Rectangle(last_pos.Left, kpicker.PositionAndSize.Bottom, last_pos.Width, last_pos.Height); label = new UILabel(game); label.AutoSize = true; label.Text = "Steering: "; label.PositionAndSize = new Rectangle(10, last_pos.Top + 10, 0, 0); UIParent.UI.Add(label); combo = new UIComboBox(game); combo.Name = "cboxSteering"; combo.Edible = false; combo.PositionAndSize = new Rectangle(label.PositionAndSize.Right + 5, last_pos.Top + 5, 100, 0); combo.Values.Add(new UITaggedValue("relative", PlayerMotor.Steering.Relative)); combo.Values.Add(new UITaggedValue("absolute", PlayerMotor.Steering.Absolute)); combo.SelectedIndex = 0; UIParent.UI.Add(combo); //load player data UIParent.UI["tboxName"].Text = GameSettings.playerName; for (int i = 0; i < Enum.GetNames(typeof(GameKeyNames)).Length; i++) ((UIKeyPicker)UIParent.UI["kp" + Enum.GetNames(typeof(GameKeyNames))[i]]).SelectedKey = GameSettings.playerKeys[i]; for (int i = 0; i < ((UIComboBox)UIParent.UI["cboxColor"]).Values.Count; i++) if ((Color)((UIComboBox)UIParent.UI["cboxColor"]).Values[i].Tag == GameSettings.playerColor) { ((UIComboBox)UIParent.UI["cboxColor"]).SelectedIndex = i; break; } for (int i = 0; i < ((UIComboBox)UIParent.UI["cboxSteering"]).Values.Count; i++) if ((PlayerMotor.Steering)((UIComboBox)UIParent.UI["cboxSteering"]).Values[i].Tag == GameSettings.playerSteering) { ((UIComboBox)UIParent.UI["cboxSteering"]).SelectedIndex = i; break; } button = new UIButton(game); button.Name = "btnAcceptPlayerChanges"; button.Text = "Save"; button.PositionAndSize = new Rectangle(800 - 105, 600 - 41, 100, 37); button.Action += (UIButton_Action)((btn) => { //save changes GameSettings.playerName = UIParent.UI["tboxName"].Text; for (int i = 0; i < Enum.GetNames(typeof(GameKeyNames)).Length; i++) GameSettings.playerKeys[i] = ((UIKeyPicker)UIParent.UI["kp" + Enum.GetNames(typeof(GameKeyNames))[i]]).SelectedKey; GameSettings.playerColor = (Color)((UIComboBox)UIParent.UI["cboxColor"]).SelectedItem.Tag; GameSettings.playerSteering = (PlayerMotor.Steering)((UIComboBox)UIParent.UI["cboxSteering"]).SelectedItem.Tag; //don't exit - user might want to change something more }); UIParent.UI.Add(button); button = new UIButton(game); button.Name = "btnBack"; button.Text = "<-- Back"; button.PositionAndSize = new Rectangle(5, (600 - 41), 100, 37); button.Action += (UIButton_Action)((btn) => { UIParent.ClearESCHook(); oResult = new GameScreen_Options(game, -1); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); UIParent.ESCHook += UIParent_ESCHook2; } break; case 1: //video { UIButton button; UICheckBox checkbox; UIComboBox combo; UILabel label; UIImage logo; logo = new UIImage(game); logo.Textures = game.Content.Load<Texture2D>("logo_videooptions"); logo.NormalTexture = new Rectangle(0, 0, 500, 75); logo.PositionAndSize = new Rectangle(400 - 250, 20, 500, 75); UIParent.UI.Add(logo); label = new UILabel(game); label.Name = "label1"; label.Text = "Display mode:"; label.AutoSize = true; label.PositionAndSize = new Rectangle(10, logo.PositionAndSize.Bottom + 10, 0, 0); UIParent.UI.Add(label); combo = new UIComboBox(game); combo.Name = "comboDisplayMode"; combo.Edible = false; combo.MaxDisplayedItems = 5; combo.PositionAndSize = new Rectangle(label.PositionAndSize.Right + 5, label.PositionAndSize.Top, 200, 0); combo.PositionAndSize = new Rectangle(label.PositionAndSize.Right + 5, label.PositionAndSize.Top + (label.PositionAndSize.Height / 2 - combo.PositionAndSize.Height / 2), 200, 0); foreach (DisplayMode dm in game.GraphicsDevice.Adapter.SupportedDisplayModes) combo.Values.Add(new UITaggedValue(dm.Width + "x" + dm.Height + " " + dm.Format, dm)); combo.SelectedIndex = GameSettings.videoGraphMode; combo.SelectionChanged += (UIComboBox_SelectionChanged)((c, old) => { game.SetGraphMode(c.SelectedIndex, ((UICheckBox)UIParent.UI["cboxFullscreen"]).Checked); }); UIParent.UI.Add(combo); checkbox = new UICheckBox(game); checkbox.Name = "cboxFullscreen"; checkbox.Text = "Fullscreen mode"; checkbox.AutoSize = true; checkbox.PositionAndSize = new Rectangle(label.PositionAndSize.Left, combo.PositionAndSize.Bottom + 5, 0, 0); checkbox.Checked = GameSettings.videoFullscreen; checkbox.CheckChanged += (UICheckBox_CheckChanged)((cbox) => { game.SetGraphMode(game.graphics.PreferredBackBufferWidth, game.graphics.PreferredBackBufferHeight, ((UICheckBox)UIParent.UI["cboxFullscreen"]).Checked); }); UIParent.UI.Add(checkbox); button = new UIButton(game); button.Name = "btnAcceptVideoChanges"; button.Text = "Save"; button.PositionAndSize = new Rectangle(800 - 105, 600 - 41, 100, 37); button.Action += (UIButton_Action)((btn) => { //save changes GameSettings.videoGraphMode = ((UIComboBox)UIParent.UI["comboDisplayMode"]).SelectedIndex; GameSettings.videoFullscreen = ((UICheckBox)UIParent.UI["cboxFullscreen"]).Checked; UIParent.ClearESCHook(); oResult = new GameScreen_Options(game, -1); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); button = new UIButton(game); button.Name = "btnBack"; button.Text = "<-- Back"; button.PositionAndSize = new Rectangle(5, (600 - 41), 100, 37); button.Action += (UIButton_Action)((btn) => { game.SetGraphMode(GameSettings.videoGraphMode, GameSettings.videoFullscreen); UIParent.ClearESCHook(); oResult = new GameScreen_Options(game, -1); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); UIParent.ESCHook += UIParent_ESCHook2; } break; case 2: //audio { UIButton button; UICheckBox checkbox; UILabel label; UIScrollBar scroll; UIImage logo; logo = new UIImage(game); logo.Textures = game.Content.Load<Texture2D>("logo_audiooptions"); logo.NormalTexture = new Rectangle(0, 0, 500, 75); logo.PositionAndSize = new Rectangle(400 - 250, 20, 500, 75); UIParent.UI.Add(logo); checkbox = new UICheckBox(game); checkbox.Name = "cbEnable"; checkbox.AutoSize = true; checkbox.Checked = GameSettings.audioEnabled; checkbox.Enabled = false; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! checkbox.PositionAndSize = new Rectangle(10, logo.PositionAndSize.Bottom + 10, 0, 0); checkbox.Text = "Enable sound"; checkbox.CheckChanged += (UICheckBox_CheckChanged)((cb) => { UIParent.UI["scrollVolume"].Enabled = cb.Checked; UIParent.UI["scrollMusic"].Enabled = cb.Checked; UIParent.UI["scrollSFX"].Enabled = cb.Checked; UIParent.UI["scrollUI"].Enabled = cb.Checked; }); UIParent.UI.Add(checkbox); Rectangle last_pos = new Rectangle(checkbox.PositionAndSize.Left + 10, checkbox.PositionAndSize.Bottom + 5, 300, 0); scroll = new UIScrollBar(game); scroll.Name = "scrollVolume"; scroll.Enabled = GameSettings.audioEnabled; scroll.IsHorizontal = true; scroll.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top, last_pos.Width, 0); scroll.MinimalValue = 0; scroll.MaximalValue = 100; scroll.ValuesOnScreen = 1; scroll.Value = GameSettings.audioVolumePercent; scroll.ValueChanged += (UIScrollBar_ValueChanged)((scrl, old) => { //game.SetupAudio(((UICheckBox)UIParent.UI["cbEnable"]).Checked, ((UIScrollBar)UIParent.UI["scrollVolume"]).Value, ((UIScrollBar)UIParent.UI["scrollMusic"]).Value, ((UIScrollBar)UIParent.UI["scrollSFX"]).Value, ((UIScrollBar)UIParent.UI["scrollUI"]).Value); }); UIParent.UI.Add(scroll); label = new UILabel(game); label.Name = "labelVolume"; label.AutoSize = true; label.Text = scroll.Value + "%"; label.PositionAndSize = new Rectangle(scroll.PositionAndSize.Right + 5, scroll.PositionAndSize.Top + 5, 0, 0); UIParent.UI.Add(label); last_pos = new Rectangle(scroll.PositionAndSize.Left, scroll.PositionAndSize.Bottom + 5, last_pos.Width, 0); scroll = new UIScrollBar(game); scroll.Name = "scrollMusic"; scroll.Enabled = GameSettings.audioEnabled; scroll.IsHorizontal = true; scroll.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top, last_pos.Width, 0); scroll.MinimalValue = 0; scroll.MaximalValue = 100; scroll.ValuesOnScreen = 1; scroll.Value = GameSettings.audioMusicVolumePercent; scroll.ValueChanged += (UIScrollBar_ValueChanged)((scrl, old) => { //game.SetupAudio(((UICheckBox)UIParent.UI["cbEnable"]).Checked, ((UIScrollBar)UIParent.UI["scrollVolume"]).Value, ((UIScrollBar)UIParent.UI["scrollMusic"]).Value, ((UIScrollBar)UIParent.UI["scrollSFX"]).Value, ((UIScrollBar)UIParent.UI["scrollUI"]).Value); }); UIParent.UI.Add(scroll); label = new UILabel(game); label.Name = "labelMusic"; label.AutoSize = true; label.Text = scroll.Value + "%"; label.PositionAndSize = new Rectangle(scroll.PositionAndSize.Right + 5, scroll.PositionAndSize.Top + 5, 0, 0); UIParent.UI.Add(label); last_pos = new Rectangle(scroll.PositionAndSize.Left, scroll.PositionAndSize.Bottom + 5, last_pos.Width, 0); scroll = new UIScrollBar(game); scroll.Name = "scrollSFX"; scroll.Enabled = GameSettings.audioEnabled; scroll.IsHorizontal = true; scroll.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top, last_pos.Width, 0); scroll.MinimalValue = 0; scroll.MaximalValue = 100; scroll.ValuesOnScreen = 1; scroll.Value = GameSettings.audioSFXVolumePercent; scroll.ValueChanged += (UIScrollBar_ValueChanged)((scrl, old) => { //game.SetupAudio(((UICheckBox)UIParent.UI["cbEnable"]).Checked, ((UIScrollBar)UIParent.UI["scrollVolume"]).Value, ((UIScrollBar)UIParent.UI["scrollMusic"]).Value, ((UIScrollBar)UIParent.UI["scrollSFX"]).Value, ((UIScrollBar)UIParent.UI["scrollUI"]).Value); }); UIParent.UI.Add(scroll); label = new UILabel(game); label.Name = "labelSFX"; label.AutoSize = true; label.Text = scroll.Value + "%"; label.PositionAndSize = new Rectangle(scroll.PositionAndSize.Right + 5, scroll.PositionAndSize.Top + 5, 0, 0); UIParent.UI.Add(label); last_pos = new Rectangle(scroll.PositionAndSize.Left, scroll.PositionAndSize.Bottom + 5, last_pos.Width, 0); scroll = new UIScrollBar(game); scroll.Name = "scrollUI"; scroll.Enabled = GameSettings.audioEnabled; scroll.IsHorizontal = true; scroll.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top, last_pos.Width, 0); scroll.MinimalValue = 0; scroll.MaximalValue = 100; scroll.ValuesOnScreen = 1; scroll.Value = GameSettings.audioUIVolumePercent; scroll.ValueChanged += (UIScrollBar_ValueChanged)((scrl, old) => { //game.SetupAudio(((UICheckBox)UIParent.UI["cbEnable"]).Checked, ((UIScrollBar)UIParent.UI["scrollVolume"]).Value, ((UIScrollBar)UIParent.UI["scrollMusic"]).Value, ((UIScrollBar)UIParent.UI["scrollSFX"]).Value, ((UIScrollBar)UIParent.UI["scrollUI"]).Value); }); UIParent.UI.Add(scroll); label = new UILabel(game); label.Name = "labelUI"; label.AutoSize = true; label.Text = scroll.Value + "%"; label.PositionAndSize = new Rectangle(scroll.PositionAndSize.Right + 5, scroll.PositionAndSize.Top + 5, 0, 0); UIParent.UI.Add(label); last_pos = new Rectangle(scroll.PositionAndSize.Left, scroll.PositionAndSize.Bottom + 5, last_pos.Width, 0); button = new UIButton(game); button.Name = "btnAcceptAudioChanges"; button.Text = "Save"; button.PositionAndSize = new Rectangle(800 - 105, 600 - 41, 100, 37); button.Action += (UIButton_Action)((btn) => { //save changes GameSettings.audioEnabled = ((UICheckBox)UIParent.UI["cbEnable"]).Checked; GameSettings.audioVolumePercent = ((UIScrollBar)UIParent.UI["scrollVolume"]).Value; GameSettings.audioMusicVolumePercent = ((UIScrollBar)UIParent.UI["scrollMusic"]).Value; GameSettings.audioSFXVolumePercent = ((UIScrollBar)UIParent.UI["scrollSFX"]).Value; GameSettings.audioUIVolumePercent = ((UIScrollBar)UIParent.UI["scrollUI"]).Value; UIParent.ClearESCHook(); oResult = new GameScreen_Options(game, -1); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); button = new UIButton(game); button.Name = "btnBack"; button.Text = "<-- Back"; button.PositionAndSize = new Rectangle(5, (600 - 41), 100, 37); button.Action += (UIButton_Action)((btn) => { //game.SetupAudio(GameSettings.audioEnabled, GameSettings.audioVolumePercent, GameSettings.audioMusicVolumePercent, GameSettings.audioSFXVolumePercent, GameSettings.audioUIVolumePercent); UIParent.ClearESCHook(); oResult = new GameScreen_Options(game, -1); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); UIParent.ESCHook += UIParent_ESCHook2; } break; case 3: //common { UIButton button; UICheckBox checkbox; UIImage logo; logo = new UIImage(game); logo.Textures = game.Content.Load<Texture2D>("logo_otheroptions"); logo.NormalTexture = new Rectangle(0, 0, 500, 75); logo.PositionAndSize = new Rectangle(400 - 250, 20, 500, 75); UIParent.UI.Add(logo); Rectangle last_pos = new Rectangle(10, logo.PositionAndSize.Bottom + 5, 0, 0); checkbox = new UICheckBox(game); checkbox.Name = "cbMinimap"; checkbox.AutoSize = true; checkbox.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top, 0, 0); checkbox.Checked = GameSettings.gameoptMinimap; checkbox.Text = "Show minimap"; UIParent.UI.Add(checkbox); last_pos = new Rectangle(last_pos.Left, checkbox.PositionAndSize.Bottom + 5, 0, 0); checkbox = new UICheckBox(game); checkbox.Name = "cbNames"; checkbox.AutoSize = true; checkbox.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top, 0, 0); checkbox.Checked = GameSettings.gameoptNames; checkbox.Text = "Show names"; UIParent.UI.Add(checkbox); last_pos = new Rectangle(last_pos.Left, checkbox.PositionAndSize.Bottom + 5, 0, 0); checkbox = new UICheckBox(game); checkbox.Name = "cbPointers"; checkbox.AutoSize = true; checkbox.PositionAndSize = new Rectangle(last_pos.Left, last_pos.Top, 0, 0); checkbox.Checked = GameSettings.gameoptPointers; checkbox.Text = "Show motor pointers"; UIParent.UI.Add(checkbox); button = new UIButton(game); button.Name = "btnAcceptCommonChanges"; button.Text = "Save"; button.PositionAndSize = new Rectangle(800 - 105, 600 - 41, 100, 37); button.Action += (UIButton_Action)((btn) => { //save changes GameSettings.gameoptMinimap = ((UICheckBox)UIParent.UI["cbMinimap"]).Checked; GameSettings.gameoptNames = ((UICheckBox)UIParent.UI["cbNames"]).Checked; GameSettings.gameoptPointers = ((UICheckBox)UIParent.UI["cbPointers"]).Checked; UIParent.ClearESCHook(); oResult = new GameScreen_Options(game, -1); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); button = new UIButton(game); button.Name = "btnBack"; button.Text = "<-- Back"; button.PositionAndSize = new Rectangle(5, (600 - 41), 100, 37); button.Action += (UIButton_Action)((btn) => { UIParent.ClearESCHook(); oResult = new GameScreen_Options(game, -1); iResult = MenuReturnCodes.MenuSwitching; Call_OnExit(); }); UIParent.UI.Add(button); UIParent.ESCHook += UIParent_ESCHook2; } break; } UIParent.UI.LoadAndInitialize(); }
private void CreateTestUI() { UIButton button; button = new UIButton(this); button.Name = "Button1"; button.Text = "Fullscreen: " + (graphics.IsFullScreen ? "On" : "Off"); button.PositionAndSize = new Rectangle(10, 10, 150, 30); button.Action += (UIButton_Action)((btn) => { SetGraphMode(graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight, !graphics.IsFullScreen); btn.Text = "Fullscreen: " + (graphics.IsFullScreen ? "On" : "Off"); UI["TextBox1"].Enabled = !UI["TextBox1"].Enabled; UI["Combo1"].Enabled = !UI["Combo1"].Enabled; }); UI.Add(button); button = new UIButton(this); button.Name = "Button2"; button.Text = "taaa..."; button.PositionAndSize = new Rectangle(165, 10, 100, 50); button.Action += (UIButton_Action)((btn) => { UI["Button1"].Enabled = !UI["Button1"].Enabled; UI["Label1"].Enabled = !UI["Label1"].Enabled; ((UIComboBox)UI["Combo1"]).Edible = !((UIComboBox)UI["Combo1"]).Edible; if (((UIComboBox)UI["Combo1"]).Edible) UI["Combo1"].PositionAndSize = new Rectangle(UI["Combo1"].PositionAndSize.X, UI["Combo1"].PositionAndSize.Y, 200, 50); else UI["Combo1"].PositionAndSize = new Rectangle(UI["Combo1"].PositionAndSize.X, UI["Combo1"].PositionAndSize.Y, 100, 0); switch (((UITextBox)UI["TextBox1"]).PasswordChar) { case '\0': ((UITextBox)UI["TextBox1"]).PasswordChar = '*'; break; case '*': ((UITextBox)UI["TextBox1"]).PasswordChar = '\0'; break; } ((UIListBox)UI["ListBox1"]).Add(UI["TextBox1"].Text); }); UI.Add(button); UITextBox textbox = new UITextBox(this); textbox.Name = "TextBox1"; textbox.Text = "kupa"; textbox.TextLenghtLimit = 10; textbox.PositionAndSize = new Rectangle(270, 10, 150, 30); textbox.PasswordChar = '*'; UI.Add(textbox); UILabel label = new UILabel(this); label.Name = "Label1"; label.Text = "jakis tam...\ntekst"; label.Enabled = false; label.PositionAndSize = new Rectangle(UI["Button1"].PositionAndSize.X, UI["Button1"].PositionAndSize.Y + UI["Button1"].PositionAndSize.Height + 5, 0, 0); UI.Add(label); UIComboBox combo1 = new UIComboBox(this); combo1.Name = "Combo1"; combo1.Edible = false; combo1.PositionAndSize = new Rectangle(UI["Button2"].PositionAndSize.X, UI["Button2"].PositionAndSize.Y + UI["Button2"].PositionAndSize.Height + 5, 100, 0); combo1.Values.Add("pos1"); combo1.Values.Add("pos2"); combo1.Values.Add("pos3"); combo1.Values.Add("pos4"); combo1.MaxDisplayedItems = 3; combo1.SelectionChanged += (UIComboBox_SelectionChanged)((combo, oldindex) => { UI["TextBox1"].Text = combo.SelectedValue; }); UI.Add(combo1); UIListBox listBox1 = new UIListBox(this); listBox1.Name = "ListBox1"; listBox1.PositionAndSize = new Rectangle(UI["TextBox1"].PositionAndSize.X + UI["TextBox1"].PositionAndSize.Width + 5, UI["TextBox1"].PositionAndSize.Y, 150, 0); listBox1.AutoSizeHeight = true; listBox1.MaxVisibleValues = 5; listBox1.Add("Button1"); listBox1.Add("Button2"); listBox1.Add("TextBox1"); listBox1.Add("Label1"); listBox1.Add("Combo1"); listBox1.AutoSizeHeight = false; listBox1.PositionAndSize = new Rectangle(listBox1.PositionAndSize.X, listBox1.PositionAndSize.Y, listBox1.PositionAndSize.Width, listBox1.PositionAndSize.Height + 50); listBox1.ItemHover += (UIListBox_ItemEvent)((list, itemindex) => { list.SelectedIndex = itemindex; }); listBox1.ItemClicked += (UIListBox_ItemEvent)((list, itemindex) => { if (itemindex < 5) UI[list[itemindex].Text].Enabled = !UI[list[itemindex].Text].Enabled; else ((UIListBox)UI["ListBox1"]).RemoveAt(itemindex); }); UI.Add(listBox1); UIScrollBar scroll1 = new UIScrollBar(this, false); scroll1.Name = "Scroll1"; scroll1.MinimalValue = 0; scroll1.MaximalValue = 200; scroll1.PositionAndSize = new Rectangle(label.PositionAndSize.X, label.PositionAndSize.Y + label.PositionAndSize.Height + 100, 150, 150); scroll1.Value = 0; scroll1.ValuesOnScreen = 3; scroll1.ValueChanged += (UIScrollBar_ValueChanged)((scroll, oldval) => { UI["Label1"].Text = (oldval < scroll.Value ? "zwiekszone na:\n" : "zmniejszone na:\n") + scroll.Value; ((UIProgress)UI["ProgressBar1"]).Percent = scroll.Value / 200.0; }); UI.Add(scroll1); UICheckBox checkBox1 = new UICheckBox(this); checkBox1.Name = "CheckBox1"; checkBox1.AutoSize = true; checkBox1.Text = "checkbox1"; checkBox1.PositionAndSize = new Rectangle(combo1.PositionAndSize.X, combo1.PositionAndSize.Bottom + 5, 0, 0); UI.Add(checkBox1); UIKeyPicker keypicker1 = new UIKeyPicker(this); keypicker1.Name = "KeyPicker1"; keypicker1.PositionAndSize = new Rectangle(scroll1.PositionAndSize.X, scroll1.PositionAndSize.Bottom + 5, 100, 30); keypicker1.SelectedKey = Keys.A; UI.Add(keypicker1); UIProgress progress1 = new UIProgress(this); progress1.Name = "ProgressBar1"; progress1.PositionAndSize = new Rectangle(keypicker1.PositionAndSize.X, keypicker1.PositionAndSize.Bottom + 5, 100, 20); progress1.Angular = true; progress1.color = Color.Blue; //relevant when Angular==true progress1.Percent = 0.8; UI.Add(progress1); }