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