public void SelectTab(Tab tab) { if (GameMain.Config.UnsavedSettings) { var applyBox = new GUIMessageBox( TextManager.Get("ApplySettingsLabel"), TextManager.Get("ApplySettingsQuestion"), new string[] { TextManager.Get("ApplySettingsYes"), TextManager.Get("ApplySettingsNo") }); applyBox.Buttons[0].OnClicked += applyBox.Close; applyBox.Buttons[0].OnClicked += ApplySettings; applyBox.Buttons[0].UserData = tab; applyBox.Buttons[1].OnClicked += applyBox.Close; applyBox.Buttons[1].OnClicked += DiscardSettings; applyBox.Buttons[1].UserData = tab; return; } selectedTab = tab; switch (selectedTab) { case Tab.NewGame: campaignSetupUI.CreateDefaultSaveName(); campaignSetupUI.UpdateTutorialSelection(); break; case Tab.LoadGame: campaignSetupUI.UpdateLoadMenu(); break; case Tab.Settings: GameMain.Config.ResetSettingsFrame(); menuTabs[(int)Tab.Settings] = GameMain.Config.SettingsFrame; break; } }
private bool SelectTab(GUIButton button, object obj) { if (obj is Tab) { if (GameMain.Config.UnsavedSettings) { var applyBox = new GUIMessageBox( TextManager.Get("ApplySettingsLabel"), TextManager.Get("ApplySettingsQuestion"), new string[] { TextManager.Get("ApplySettingsYes"), TextManager.Get("ApplySettingsNo") }); applyBox.Buttons[0].UserData = (Tab)obj; applyBox.Buttons[0].OnClicked = (tb, userdata) => { applyBox.Close(button, userdata); ApplySettings(button, userdata); return(true); }; applyBox.Buttons[1].UserData = (Tab)obj; applyBox.Buttons[1].OnClicked = (tb, userdata) => { applyBox.Close(button, userdata); DiscardSettings(button, userdata); return(true); }; return(false); } selectedTab = (Tab)obj; switch (selectedTab) { case Tab.NewGame: campaignSetupUI.CreateDefaultSaveName(); campaignSetupUI.UpdateTutorialSelection(); break; case Tab.LoadGame: campaignSetupUI.UpdateLoadMenu(); break; case Tab.Settings: GameMain.Config.ResetSettingsFrame(); menuTabs[(int)Tab.Settings] = GameMain.Config.SettingsFrame; break; case Tab.JoinServer: GameMain.ServerListScreen.Select(); break; case Tab.HostServer: break; case Tab.Tutorials: break; case Tab.CharacterEditor: Submarine.MainSub = null; GameMain.CharacterEditorScreen.Select(); break; case Tab.SubmarineEditor: GameMain.SubEditorScreen.Select(); break; case Tab.QuickStartDev: QuickStart(); break; case Tab.SteamWorkshop: if (!Steam.SteamManager.IsInitialized) { return(false); } GameMain.SteamWorkshopScreen.Select(); break; } } else { selectedTab = 0; } if (button != null) { button.Selected = true; } ResetButtonStates(button); return(true); }