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);

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

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

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

            bool shouldActivate = false;

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

            _lastPage = _commitsPage;

            pendingChangesTabs.Enabled = shouldActivate;

            // Hide the tab because we just have one button on it.

            pendingChangesTabs.Visible = false;

            ShowPanel(_commitsPage, false);
        }
        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;

            _lastPage = page;

            fileChangesButton.Checked = (_lastPage == _commitsPage);

            if (select)
                page.Select();

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

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

                UpdateCaption();
            }
        }