private void MainWindow_FormClosing(object Sender, FormClosingEventArgs EventArgs) { if (!bAllowClose && Settings.bKeepInTray) { Hide(); EventArgs.Cancel = true; } else { for (int Idx = 0; Idx < TabControl.GetTabCount(); Idx++) { IMainWindowTabPanel TabPanel = (IMainWindowTabPanel)TabControl.GetTabData(Idx); if (!TabPanel.CanClose()) { EventArgs.Cancel = true; return; } } ActivationListener.OnActivate -= OnActivationListenerAsyncCallback; ActivationListener.Stop(); UpdateMonitor.OnUpdateAvailable -= OnUpdateAvailable; UpdateMonitor.Close(); // prevent race condition StopScheduleTimer(); Rectangle SaveBounds = (WindowState == FormWindowState.Normal)? Bounds : RestoreBounds; Settings.WindowRectangle = SaveBounds; Settings.bWindowVisible = Visible; Settings.Save(); } }
private void MainWindow_FormClosing(object Sender, FormClosingEventArgs EventArgs) { if (!bAllowClose && Settings.bKeepInTray) { Hide(); EventArgs.Cancel = true; } else { for (int Idx = 0; Idx < TabControl.GetTabCount(); Idx++) { IMainWindowTabPanel TabPanel = (IMainWindowTabPanel)TabControl.GetTabData(Idx); if (!TabPanel.CanClose()) { EventArgs.Cancel = true; return; } } StopScheduleTimer(); } Settings.bWindowVisible = Visible; Settings.WindowState = WindowState; if (WindowState == FormWindowState.Normal) { Settings.WindowBounds = new Rectangle(Location, Size); } else { Settings.WindowBounds = RestoreBounds; } Settings.Save(); }
private void MainWindow_FormClosing(object Sender, FormClosingEventArgs EventArgs) { if (!bAllowClose && Settings.bKeepInTray) { Hide(); EventArgs.Cancel = true; } else { for (int Idx = 0; Idx < TabControl.GetTabCount(); Idx++) { IMainWindowTabPanel TabPanel = (IMainWindowTabPanel)TabControl.GetTabData(Idx); if (!TabPanel.CanClose()) { EventArgs.Cancel = true; return; } } StopScheduleTimer(); Settings.bWindowVisible = Visible; Settings.Save(); } }
void SaveTabSettings() { Settings.OpenProjects.Clear(); for (int TabIdx = 0; TabIdx < TabControl.GetTabCount(); TabIdx++) { IMainWindowTabPanel TabPanel = (IMainWindowTabPanel)TabControl.GetTabData(TabIdx); Settings.OpenProjects.Add(TabPanel.SelectedProject); } Settings.Save(); }
void TabControl_OnTabClosed(object Data) { IMainWindowTabPanel TabPanel = (IMainWindowTabPanel)Data; if (CurrentTabPanel == TabPanel) { CurrentTabPanel = null; } TabPanel.Dispose(); SaveTabSettings(); }
void SaveTabSettings() { List <string> OpenProjectFileNames = new List <string>(); for (int TabIdx = 0; TabIdx < TabControl.GetTabCount(); TabIdx++) { IMainWindowTabPanel TabPanel = (IMainWindowTabPanel)TabControl.GetTabData(TabIdx); OpenProjectFileNames.Add(TabPanel.SelectedFileName); } Settings.OpenProjectFileNames = OpenProjectFileNames.ToArray(); Settings.Save(); }
private void OnUpdateAvailable() { if (!ContainsFocus && Form.ActiveForm != this) { for (int TabIdx = 0; TabIdx < TabControl.GetTabCount(); TabIdx++) { IMainWindowTabPanel TabPanel = (IMainWindowTabPanel)TabControl.GetTabData(TabIdx); if (TabPanel.IsBusy()) { return; } } bAllowClose = true; Close(); } }
void TabControl_OnTabChanged(object NewTabData) { if (IsHandleCreated) { SendMessage(Handle, WM_SETREDRAW, 0, 0); } SuspendLayout(); if (CurrentTabPanel != null) { CurrentTabPanel.Deactivate(); CurrentTabPanel.Hide(); } if (NewTabData == null) { CurrentTabPanel = null; Settings.LastProject = null; DefaultControl.Show(); } else { CurrentTabPanel = (IMainWindowTabPanel)NewTabData; Settings.LastProject = CurrentTabPanel.SelectedProject; DefaultControl.Hide(); } Settings.Save(); if (CurrentTabPanel != null) { CurrentTabPanel.Activate(); CurrentTabPanel.Show(); } ResumeLayout(); if (IsHandleCreated) { SendMessage(Handle, WM_SETREDRAW, 1, 0); } Refresh(); }
public void UpdateProgress() { TaskbarState State = TaskbarState.NoProgress; float Progress = -1.0f; for (int Idx = 0; Idx < TabControl.GetTabCount(); Idx++) { IMainWindowTabPanel TabPanel = (IMainWindowTabPanel)TabControl.GetTabData(Idx); Tuple <TaskbarState, float> DesiredTaskbarState = TabPanel.DesiredTaskbarState; if (DesiredTaskbarState.Item1 == TaskbarState.Error) { State = TaskbarState.Error; TabControl.SetHighlight(Idx, Tuple.Create(Color.FromArgb(204, 64, 64), 1.0f)); } else if (DesiredTaskbarState.Item1 == TaskbarState.Paused && State != TaskbarState.Error) { State = TaskbarState.Paused; TabControl.SetHighlight(Idx, Tuple.Create(Color.FromArgb(255, 242, 0), 1.0f)); } else if (DesiredTaskbarState.Item1 == TaskbarState.Normal && State != TaskbarState.Error && State != TaskbarState.Paused) { State = TaskbarState.Normal; Progress = Math.Max(Progress, DesiredTaskbarState.Item2); TabControl.SetHighlight(Idx, Tuple.Create(Color.FromArgb(28, 180, 64), DesiredTaskbarState.Item2)); } else { TabControl.SetHighlight(Idx, null); } } if (IsHandleCreated) { if (State == TaskbarState.Normal) { Taskbar.SetState(Handle, TaskbarState.Normal); Taskbar.SetProgress(Handle, (ulong)(Progress * 1000.0f), 1000); } else { Taskbar.SetState(Handle, State); } } }
public bool CanPerformUpdate() { if (ContainsFocus || Form.ActiveForm == this) { return(false); } for (int TabIdx = 0; TabIdx < TabControl.GetTabCount(); TabIdx++) { IMainWindowTabPanel TabPanel = (IMainWindowTabPanel)TabControl.GetTabData(TabIdx); if (TabPanel.IsBusy()) { return(false); } } return(true); }
public void SetupScheduledSync() { StopScheduleTimer(); List <UserSelectedProjectSettings> OpenProjects = new List <UserSelectedProjectSettings>(); for (int TabIdx = 0; TabIdx < TabControl.GetTabCount(); TabIdx++) { IMainWindowTabPanel TabPanel = (IMainWindowTabPanel)TabControl.GetTabData(TabIdx); OpenProjects.Add(TabPanel.SelectedProject); } ScheduleWindow Schedule = new ScheduleWindow(Settings.bScheduleEnabled, Settings.ScheduleChange, Settings.ScheduleTime, Settings.ScheduleAnyOpenProject, Settings.ScheduleProjects, OpenProjects); if (Schedule.ShowDialog() == System.Windows.Forms.DialogResult.OK) { Schedule.CopySettings(out Settings.bScheduleEnabled, out Settings.ScheduleChange, out Settings.ScheduleTime, out Settings.ScheduleAnyOpenProject, out Settings.ScheduleProjects); Settings.Save(); } StartScheduleTimer(); }
bool TabControl_OnTabClosing(object TabData) { IMainWindowTabPanel TabPanel = (IMainWindowTabPanel)TabData; return(TabPanel.CanClose()); }