public void RemovePad(PadCodon codon) { if (codon.HasId) { Command command = IdeApp.CommandService.GetCommand((object)codon.Id); if (command != null) { IdeApp.CommandService.UnregisterCommand(command); } } DockItem dockItem = this.GetDockItem(codon); this.padContentCollection.Remove(codon); PadWindow padWindow = (PadWindow)this.GetPadWindow(codon); if (padWindow != null) { padWindow.NotifyDestroyed(); this.padCodons.Remove((IPadWindow)padWindow); } if (dockItem != null) { this.dock.RemoveItem(dockItem); } this.padWindows.Remove(codon); }
private void AddPad(PadCodon padCodon, string placement, DockItemStatus defaultStatus) { PadWindow window = new PadWindow((IWorkbench)this, padCodon); window.Icon = padCodon.Icon; this.padWindows[padCodon] = (IPadWindow)window; this.padCodons[(IPadWindow)window] = padCodon; window.StatusChanged += new EventHandler(this.UpdatePad); string dockLocation = this.ToDockLocation(placement); DockItem item = this.dock.AddItem(padCodon.PadId); item.Label = LanguageOption.GetValueBykey(padCodon.Label); item.DefaultLocation = dockLocation; item.DefaultVisible = false; item.DefaultStatus = defaultStatus; item.DockLabelProvider = (IDockItemLabelProvider)padCodon; window.Item = item; if (padCodon.Initialized) { this.CreatePadContent(true, padCodon, window, item); } else { item.ContentRequired += (EventHandler)((param0, param1) => this.CreatePadContent(false, padCodon, window, item)); } item.VisibleChanged += (EventHandler)((param0, param1) => { if (item.Visible) { window.NotifyShown(); } else { window.NotifyHidden(); } }); item.ContentVisibleChanged += (EventHandler)((param0, param1) => { if (item.ContentVisible) { window.NotifyContentShown(); } else { window.NotifyContentHidden(); } }); if (this.padContentCollection.Contains(padCodon)) { return; } this.padContentCollection.Add(padCodon); }
private void CreatePadContent(bool force, PadCodon padCodon, PadWindow window, DockItem item) { if (!force && item.Content != null) { return; } IPadContent padContent = padCodon.InitializePadContent((IPadWindow)window); Widget child; if (padContent is Widget) { child = padContent.Control; } else { PadCommandRouterContainer commandRouterContainer = new PadCommandRouterContainer(window, padContent.Control, (object)padContent, true); commandRouterContainer.Show(); child = (Widget)commandRouterContainer; } PadCommandRouterContainer commandRouterContainer1 = new PadCommandRouterContainer(window, child, (object)this.toolbarFrame, false); commandRouterContainer1.Show(); item.Content = (Widget)commandRouterContainer1; }