protected override void OnClosing(CancelEventArgs e) { SaveLayout(Path.Combine(Util.GetUserDataPath(), "Layout.xml")); TwitchChannelJoiner.stopChannelLoop(); AppSettings.WindowX = Location.X; AppSettings.WindowY = Location.Y; AppSettings.WindowWidth = Width; AppSettings.WindowHeight = Height; base.OnClosing(e); }
public MainForm() { InitializeComponent(); // set window bounds try { StartPosition = FormStartPosition.Manual; Location = new Point(Math.Max(0, AppSettings.WindowX), Math.Max(0, AppSettings.WindowY)); Size = new Size(Math.Max(AppSettings.WindowWidth, 200), Math.Max(AppSettings.WindowHeight, 200)); } catch { } // top most TopMost = AppSettings.WindowTopMost; AppSettings.WindowTopMostChanged += (s, e) => { TopMost = AppSettings.WindowTopMost; }; // icon Icon = App.Icon; TwitchChannelJoiner.runChannelLoop(); // load layout LoadLayout(Path.Combine(Util.GetUserDataPath(), "Layout.xml")); #if !DEBUG if (AppSettings.CurrentVersion != App.CurrentVersion.ToString()) { AppSettings.CurrentVersion = App.CurrentVersion.ToString(); if (App.CanShowChangelogs) { ShowChangelog(); } } #endif // set title SetTitle(); IrcManager.LoggedIn += (s, e) => SetTitle(); ChatCommands.addChatCommands(); // winforms specific BackColor = Color.Black; KeyPreview = true; Activated += (s, e) => { App.WindowFocused = true; }; Deactivate += (s, e) => { App.WindowFocused = false; App.HideToolTip(); (selected as ChatControl)?.CloseAutocomplete(); setTabPageLastMessageThingy(tabControl.Selected as ColumnTabPage); Refresh(); }; tabControl.TabPageSelected += (s, e) => { var tab = e.Value as ColumnTabPage; if (lastTabPage != null) { lastTabPage.LastSelected = Selected; setTabPageLastMessageThingy(lastTabPage); } if (tab != null) { if (tab.LastSelected != null && tab.Columns.SelectMany(x => x.Widgets).Contains(tab.LastSelected)) { Selected = tab.LastSelected; } else { Selected = tab?.Columns.FirstOrDefault()?.Widgets.FirstOrDefault(); } Selected?.Focus(); (Selected as ChatControl)?.CloseAutocomplete(); if (Selected != null && (Selected as ChatControl).Channel != null) { TwitchChannel.SelectedChannel = (Selected as ChatControl).Channel; } if (lastTabPage != null) { foreach (var col in lastTabPage.Columns) { foreach (var control in col.Widgets) { var container = control as MessageContainerControl; container.ClearBuffer(); } } } } lastTabPage = tab; }; lastTabPage = tabControl.Selected as ColumnTabPage; }