private void ThemePage(PendingChangesPage page)
        {
            page._alreadyThemed = true;

            if (VSVersion.SupportsTheming && Context != null)
            {
                IWinFormsThemingService wts = Context.GetService <IWinFormsThemingService>();

                if (wts != null)
                {
                    wts.ThemeRecursive(page, false);
                }
            }
        }
        protected override void OnLoad(EventArgs e)
        {
            foreach (PendingChangesPage p in _pages)
            {
                p.Context     = Context;
                p.ToolControl = this;

                if (!contentPanel.Controls.Contains(p))
                {
                    p.Enabled = p.Visible = false;
                    p.Dock    = DockStyle.Fill;
                    contentPanel.Controls.Add(p);
                }
            }

            base.OnLoad(e);

            AnkhServiceEvents ev = Context.GetService <AnkhServiceEvents>();

            ev.SccProviderActivated   += new EventHandler(OnSccProviderActivated);
            ev.SccProviderDeactivated += new EventHandler(OnSccProviderDeactivated);

            IAnkhCommandStates states = Context.GetService <IAnkhCommandStates>();

            bool shouldActivate = false;

            if (states != null)
            {
                if (!states.UIShellAvailable)
                {
                    ev.UIShellActivate += new EventHandler(OnSccShellActivate);
                    shouldActivate      = false;
                }
                else
                {
                    shouldActivate = states.SccProviderActive;
                }
            }

            _lastPage = _commitsPage;

            ShowPanel(shouldActivate ? _lastPage : _activatePage, false);
            pendingChangesTabs.Enabled = shouldActivate;
        }
Пример #3
0
        void ShowPanel(PendingChangesPage page, bool select)
        {
            if (page == null)
                throw new ArgumentNullException("page");
            else if (page == _currentPage)
                return;

            bool foundPage = false;
            foreach (PendingChangesPage p in panel1.Controls)
            {
                if (p != page)
                {
                    p.Enabled = p.Visible = false;
                }
                else
                {
                    foundPage = true;
                    p.Enabled = p.Visible = true;
                }
            }

            if (!foundPage)
            {
                panel1.Controls.Add(page);
                page.Dock = DockStyle.Fill;
            }

            _currentPage = page;

            if (page != _activatePage)
                _lastPage = page;

            fileChangesButton.Checked = (_lastPage == _commitsPage);
            issuesButton.Checked = (_lastPage == _issuesPage);
            recentChangesButton.Checked = (_lastPage == _changesPage);
            conflictsButton.Checked = (_lastPage == _conflictsPage);

            if (select)
                page.Select();

            if (Context != null)
            {
                IAnkhCommandService cmd = Context.GetService<IAnkhCommandService>();

                if (cmd != null)
                    cmd.UpdateCommandUI(false);

                UpdateCaption();
            }
        }
        void ShowPanel(PendingChangesPage page, bool select)
        {
            if (page == null)
            {
                throw new ArgumentNullException("page");
            }
            else if (page == _currentPage)
            {
                return;
            }

            bool foundPage = false;

            foreach (PendingChangesPage p in contentPanel.Controls)
            {
                if (p != page)
                {
                    p.Enabled = p.Visible = false;
                }
                else
                {
                    foundPage = true;
                    p.Enabled = p.Visible = true;

                    if (!p._alreadyThemed)
                    {
                        ThemePage(p);
                    }
                }
            }

            System.Diagnostics.Debug.Assert(foundPage);

            _currentPage = page;

            if (page != _activatePage)
            {
                _lastPage = page;
            }

            fileChangesButton.Checked   = (_lastPage == _commitsPage);
            issuesButton.Checked        = (_lastPage == _issuesPage);
            recentChangesButton.Checked = (_lastPage == _changesPage);
            conflictsButton.Checked     = (_lastPage == _conflictsPage);

            if (select)
            {
                page.Select();
            }

            if (Context != null)
            {
                IAnkhCommandService cmd = Context.GetService <IAnkhCommandService>();

                if (cmd != null)
                {
                    cmd.UpdateCommandUI(false);
                }

                UpdateCaption();
            }
        }
Пример #5
0
        protected override void OnLoad(EventArgs e)
        {
            ToolStripRenderer renderer = null;
            System.Windows.Forms.Design.IUIService ds = Context.GetService<System.Windows.Forms.Design.IUIService>();
            if (ds != null)
            {
                renderer = ds.Styles["VsToolWindowRenderer"] as ToolStripRenderer;
            }

            if (renderer != null)
                pendingChangesTabs.Renderer = renderer;

            foreach (PendingChangesPage p in _pages)
            {
                p.Context = Context;
                p.ToolControl = this;

                if (!panel1.Controls.Contains(p))
                {
                    p.Enabled = p.Visible = false;
                    p.Dock = DockStyle.Fill;
                    panel1.Controls.Add(p);
                }
            }

            base.OnLoad(e);

            UpdateColors(renderer != null);

            AnkhServiceEvents ev = Context.GetService<AnkhServiceEvents>();

            ev.SccProviderActivated += new EventHandler(OnSccProviderActivated);
            ev.SccProviderDeactivated += new EventHandler(OnSccProviderDeactivated);

            IAnkhCommandStates states = Context.GetService<IAnkhCommandStates>();

            bool shouldActivate = false;

            if (states != null)
            {
                if (!states.UIShellAvailable)
                {
                    ev.UIShellActivate += new EventHandler(OnSccShellActivate);
                    shouldActivate = false;
                }
                else
                    shouldActivate = states.SccProviderActive;
            }

            _lastPage = _commitsPage;

            ShowPanel(shouldActivate ? _lastPage : _activatePage, false);
            pendingChangesTabs.Enabled = shouldActivate;
        }