void AddPad(IPadContent content, string placement) { DockItem item = new DockItem (content.Id, content.Title, content.Icon, DockItemBehavior.Normal); Gtk.Label label = item.TabLabel as Gtk.Label; label.UseMarkup = true; if (content is Widget) item.Add (content.Control); else { CommandRouterContainer crc = new CommandRouterContainer (content.Control, content, true); crc.Show (); item.Add (crc); } item.Show (); item.HideItem (); content.TitleChanged += new EventHandler (UpdatePad); content.IconChanged += new EventHandler (UpdatePad); DockPad (item, placement); if (!activePadCollection.Contains (content)) activePadCollection.Add (content); }
void DockPad(DockItem item, string placement) { DockPlacement dockPlacement = DockPlacement.None; DockItem ot = null; if (placement != null) GetPlacement (placement, out dockPlacement, out ot); if (dockPlacement != DockPlacement.None && dockPlacement != DockPlacement.Floating) { if (ot != null) { item.DockTo (ot, dockPlacement); } else { ot = dock.GetItemByName ("Documents"); item.DockTo (ot, dockPlacement); } } else dock.AddItem (item, dockPlacement); item.Show (); }
public void Attach(IWorkbench wb) { DefaultWorkbench workbench = (DefaultWorkbench) wb; this.workbench = workbench; wbWindow = (Window) workbench; Gtk.VBox vbox = new VBox (false, 0); rootWidget = vbox; vbox.PackStart (workbench.TopMenu, false, false, 0); toolbarFrame = new CommandFrame (Runtime.Gui.CommandService.CommandManager); vbox.PackStart (toolbarFrame, true, true, 0); if (workbench.ToolBars != null) { for (int i = 0; i < workbench.ToolBars.Length; i++) { toolbarFrame.AddBar ((DockToolbar)workbench.ToolBars[i]); } } // Create the docking widget and add it to the window. dock = new Dock (); DockBar dockBar = new DockBar (dock); Gtk.HBox dockBox = new HBox (false, 5); dockBox.PackStart (dockBar, false, true, 0); dockBox.PackStart (dock, true, true, 0); toolbarFrame.AddContent (dockBox); // Create the notebook for the various documents. tabControl = new DragNotebook (); tabControl.Scrollable = true; tabControl.SwitchPage += new SwitchPageHandler (ActiveMdiChanged); tabControl.TabsReordered += new TabsReorderedHandler (OnTabsReordered); DockItem item = new DockItem ("Documents", "Documents", DockItemBehavior.Locked | DockItemBehavior.NoGrip); item.PreferredWidth = -2; item.PreferredHeight = -2; item.Add (tabControl); item.Show (); dock.AddItem (item, DockPlacement.Center); workbench.Add (vbox); vbox.PackEnd (Runtime.Gui.StatusBar.Control, false, true, 0); workbench.ShowAll (); foreach (IViewContent content in workbench.ViewContentCollection) ShowView (content); // by default, the active pad collection is the full set // will be overriden in CreateDefaultLayout() below activePadCollection = workbench.PadContentCollection; // create DockItems for all the pads foreach (IPadContent content in workbench.PadContentCollection) { AddPad (content, content.DefaultPlacement); } CreateDefaultLayout(); //RedrawAllComponents(); wbWindow.Show (); workbench.ContextChanged += contextChangedHandler; }