Example #1
0
        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();
            }
        }
Example #2
0
        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();
        }
Example #3
0
        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();
            }
        }
Example #4
0
 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();
 }
Example #5
0
        void TabControl_OnTabClosed(object Data)
        {
            IMainWindowTabPanel TabPanel = (IMainWindowTabPanel)Data;

            if (CurrentTabPanel == TabPanel)
            {
                CurrentTabPanel = null;
            }
            TabPanel.Dispose();

            SaveTabSettings();
        }
Example #6
0
        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();
        }
Example #7
0
        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();
            }
        }
Example #8
0
        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();
        }
Example #9
0
        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);
                }
            }
        }
Example #10
0
        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);
        }
Example #11
0
        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();
        }
Example #12
0
        bool TabControl_OnTabClosing(object TabData)
        {
            IMainWindowTabPanel TabPanel = (IMainWindowTabPanel)TabData;

            return(TabPanel.CanClose());
        }