public static void ToggleTo(ViewCharacterUI old, Manager mgr, Character newChar) { var hud = GnomanEmpire.Instance.GuiManager.HUD; var tc = (TabControl)TabbedWindow_TabControl_FieldInfo.GetValue(old); var selPage = tc.SelectedIndex; if (hud.ActiveWindow == old) { hud.PopActiveWindow(); } //old.Close(); var newWindow = new ViewCharacterUI(mgr, newChar); GnomanEmpire.Instance.GuiManager.HUD.ShowWindow(newWindow); newWindow.Focused = true; var newTc = (TabControl)TabbedWindow_TabControl_FieldInfo.GetValue(newWindow); newTc.SelectedIndex = selPage; }
public static void OnCreate_ViewCharacterUI(ViewCharacterUI self, Manager mgr, Character chr) { var chrList = GnomanEmpire.Instance.World.AIDirector.PlayerFaction.Members.Select(m => m.Value).OrderBy(m => m.Mind.Profession.Title); if (!chrList.Contains(chr)) { return; } var centerWindow = self.ClientWidth / 2; var next = GetNext(chrList, chr); var buttonNext = CurrentNextButton = new Button(mgr); buttonNext.Init(); buttonNext.Text = "N"; buttonNext.Width = 30; buttonNext.Anchor = Anchors.Bottom; buttonNext.Left = centerWindow + 3; buttonNext.Top = self.ClientHeight - buttonNext.Height - 3; buttonNext.Click += new Game.GUI.Controls.EventHandler((sender, args) => { args.Handled = true; ToggleTo(self, mgr, next); if (CurrentNextButton.Enabled) { CurrentNextButton.Focused = true; } }); if (next == null) { buttonNext.Enabled = false; } else { buttonNext.ToolTip = new ToolTip(mgr) { Text = "Next: " + next.NameAndTitle() }; } var prev = GetPrev(chrList, chr); var buttonPrev = CurrentPrevButton = new Button(mgr); buttonPrev.Init(); buttonPrev.Text = "P"; buttonPrev.Width = 30; buttonPrev.Anchor = Anchors.Bottom; buttonPrev.Top = self.ClientHeight - buttonPrev.Height - 3; buttonPrev.Left = centerWindow - buttonPrev.Width - 3; buttonPrev.Click += new Game.GUI.Controls.EventHandler((sender, args) => { args.Handled = true; ToggleTo(self, mgr, prev); if (CurrentPrevButton.Enabled) { CurrentPrevButton.Focused = true; } }); if (prev == null) { buttonPrev.Enabled = false; } else { buttonPrev.ToolTip = new ToolTip(mgr) { Text = "Prev: " + prev.NameAndTitle() }; } self.Closed += new WindowClosedEventHandler((sender, args) => { if (CurrentNextButton == buttonNext) { CurrentNextButton = null; } if (CurrentPrevButton == buttonPrev) { CurrentPrevButton = null; } }); self.Add(buttonNext); self.Add(buttonPrev); }