public void BeginDragContent(IDockContent content) { if (!InitDrag(content as Control, DragSource.Content)) return; Content_BeginDrag(content); }
/// <summary> /// Constructor used when window is created as consequence to user interaction. /// </summary> /// <param name="root">Parent dock panel</param> /// <param name="content">Content to host</param> /// <param name="origin">Origin, position on screen</param> /// <param name="size">Size of window</param> public FloatingWindow(DockPanel root, IDockContent content, Point origin, Size size) : this(root) { Left = origin.X; Top = origin.Y; Width = size.Width; Height = size.Height; if (content is TabLayout) { DockedContent = (TabLayout)content; } else { DockedContent = new TabLayout(Root); DockedContent.Dock(null, content, DockTo.Center); } foreach (DockContent subContent in DockedContent.Children) { subContent.Settings.DockState = DockState.Floating; } Content = DockedContent; Binding b = new Binding("Header"); b.Source = DockedContent; SetBinding(Window.TitleProperty, b); }
protected internal DockPane(IDockContent content, FloatWindow floatWindow, bool show) { if (floatWindow == null) throw new ArgumentNullException("floatWindow"); InternalConstruct(content, DockState.Float, false, Rectangle.Empty, floatWindow.NestedPanes.GetDefaultPreviousPane(this), DockAlignment.Right, 0.5, show); }
protected internal DockPane(IDockContent content, DockPane previousPane, DockAlignment alignment, double proportion, bool show) { if (previousPane == null) throw (new ArgumentNullException("previousPane")); InternalConstruct(content, previousPane.DockState, false, Rectangle.Empty, previousPane, alignment, proportion, show); }
internal int Add(IDockContent content) { #if DEBUG if (DockPane != null) throw new InvalidOperationException(); #endif if (Contains(content)) return IndexOf(content); return InnerList.Add(content); }
internal void AddAt(IDockContent content, int index) { #if DEBUG if (DockPane != null) throw new InvalidOperationException(); #endif if (index < 0 || index > InnerList.Count - 1) return; if (Contains(content)) return; InnerList.Insert(index, content); }
internal void AddAt(IDockContent content, IDockContent before) { #if DEBUG if (DockPane != null) throw new InvalidOperationException(); #endif if (!Contains(before)) return; if (Contains(content)) return; AddAt(content, IndexOf(before)); }
public ControlInfo(string name, string description, string id, Sce.Atf.Applications.StandardControlGroup group, object imageKey, IDockContent dockContent, IControlHostClient client) { Requires.NotNullOrEmpty(id, "id"); Requires.NotNull(dockContent, "dockContent"); Requires.NotNull(client, "client"); DockContent = dockContent; dockContent.PropertyChanged += DockContent_PropertyChanged; Name = name; Description = description; Id = id; Group = group; ImageSourceKey = imageKey; Client = client; }
private void InternalConstruct(IDockContent content, DockState dockState, bool flagBounds, Rectangle floatWindowBounds, DockPane prevPane, DockAlignment alignment, double proportion, bool show) { if (dockState == DockState.Hidden || dockState == DockState.Unknown) throw new ArgumentException(Strings.DockPane_SetDockState_InvalidState); if (content == null) throw new ArgumentNullException(Strings.DockPane_Constructor_NullContent); if (content.DockHandler.DockPanel == null) throw new ArgumentException(Strings.DockPane_Constructor_NullDockPanel); SuspendLayout(); SetStyle(ControlStyles.Selectable, false); m_isFloat = (dockState == DockState.Float); m_contents = new DockContentCollection(); m_displayingContents = new DockContentCollection(this); m_dockPanel = content.DockHandler.DockPanel; m_dockPanel.AddPane(this); m_splitter = new SplitterControl(this); m_nestedDockingStatus = new NestedDockingStatus(this); m_captionControl = DockPanel.DockPaneCaptionFactory.CreateDockPaneCaption(this); m_tabStripControl = DockPanel.DockPaneStripFactory.CreateDockPaneStrip(this); Controls.AddRange(new Control[] { m_captionControl, m_tabStripControl }); DockPanel.SuspendLayout(true); if (flagBounds) FloatWindow = DockPanel.FloatWindowFactory.CreateFloatWindow(DockPanel, this, floatWindowBounds); else if (prevPane != null) DockTo(prevPane.NestedPanesContainer, prevPane, alignment, proportion); SetDockState(dockState); if (show) content.DockHandler.Pane = this; else if (this.IsFloat) content.DockHandler.FloatPane = this; else content.DockHandler.PanelPane = this; ResumeLayout(); DockPanel.ResumeLayout(true, true); }
private void DrawTab(Graphics g, TabVS2005 tab) { Rectangle rectTabOrigin = GetTabRectangle(tab); if (rectTabOrigin.IsEmpty) { return; } DockState dockState = tab.Content.DockHandler.DockState; IDockContent content = tab.Content; GraphicsPath path = GetTabOutline(tab, false, true); Color startColor = DockPanel.Skin.AutoHideStripSkin.TabGradient.StartColor; Color endColor = DockPanel.Skin.AutoHideStripSkin.TabGradient.EndColor; LinearGradientMode gradientMode = DockPanel.Skin.AutoHideStripSkin.TabGradient.LinearGradientMode; g.FillPath(new LinearGradientBrush(rectTabOrigin, startColor, endColor, gradientMode), path); g.DrawPath(PenTabBorder, path); // Set no rotate for drawing icon and text Matrix matrixRotate = g.Transform; g.Transform = MatrixIdentity; // Draw the icon Rectangle rectImage = rectTabOrigin; rectImage.X += ImageGapLeft; rectImage.Y += ImageGapTop; int imageHeight = rectTabOrigin.Height - ImageGapTop - ImageGapBottom; int imageWidth = ImageWidth; if (imageHeight > ImageHeight) { imageWidth = ImageWidth * (imageHeight / ImageHeight); } rectImage.Height = imageHeight; rectImage.Width = imageWidth; rectImage = GetTransformedRectangle(dockState, rectImage); if (dockState == DockState.DockLeftAutoHide || dockState == DockState.DockRightAutoHide) { // The DockState is DockLeftAutoHide or DockRightAutoHide, so rotate the image 90 degrees to the right. Rectangle rectTransform = RtlTransform(rectImage, dockState); Point[] rotationPoints = { new Point(rectTransform.X + rectTransform.Width, rectTransform.Y), new Point(rectTransform.X + rectTransform.Width, rectTransform.Y + rectTransform.Height), new Point(rectTransform.X, rectTransform.Y) }; using (Icon rotatedIcon = new Icon(((Form)content).Icon, 16, 16)) { g.DrawImage(rotatedIcon.ToBitmap(), rotationPoints); } } else { // Draw the icon normally without any rotation. g.DrawIcon(((Form)content).Icon, RtlTransform(rectImage, dockState)); } // Draw the text Rectangle rectText = rectTabOrigin; rectText.X += ImageGapLeft + imageWidth + ImageGapRight + TextGapLeft; rectText.Width -= ImageGapLeft + imageWidth + ImageGapRight + TextGapLeft; rectText = RtlTransform(GetTransformedRectangle(dockState, rectText), dockState); Color textColor = DockPanel.Skin.AutoHideStripSkin.TabGradient.TextColor; if (dockState == DockState.DockLeftAutoHide || dockState == DockState.DockRightAutoHide) { g.DrawString(content.DockHandler.TabText, TextFont, new SolidBrush(textColor), rectText, StringFormatTabVertical); } else { g.DrawString(content.DockHandler.TabText, TextFont, new SolidBrush(textColor), rectText, StringFormatTabHorizontal); } // Set rotate back g.Transform = matrixRotate; }
protected internal abstract void EnsureTabVisible(IDockContent content);
public bool HasChild(IDockContent content) { return(m_children.Any(x => x == content)); }
internal TabVS2003(IDockContent content) : base(content) { }
public IDockContent[] DocumentsToArray() { int count = DocumentsCount; IDockContent[] documents = new IDockContent[count]; int i = 0; foreach (IDockContent content in Documents) { documents[i] = content; i++; } return documents; }
private void DrawTab(Graphics g, TabVS2005 tab) { Rectangle rectTabOrigin = GetTabRectangle(tab); if (rectTabOrigin.IsEmpty) { return; } DockState dockState = tab.Content.DockHandler.DockState; IDockContent content = tab.Content; GraphicsPath path = GetTabOutline(tab, false, true); g.FillPath(BrushTabBackground, path); String tabStyle = PluginCore.PluginBase.MainForm.GetThemeValue("VS2005AutoHideStrip.TabStyle"); Color tabUlColor = PluginCore.PluginBase.MainForm.GetThemeColor("VS2005AutoHideStrip.TabUnderlineColor"); if (tabStyle == "Underlined") { Int32 spacing = ScaleHelper.Scale(4); Brush brush = tabUlColor != Color.Empty ? new SolidBrush(tabUlColor) : SystemBrushes.Highlight; if (dockState == DockState.DockRightAutoHide) { g.FillRectangle(brush, new Rectangle(rectTabOrigin.Left + spacing, rectTabOrigin.Y, rectTabOrigin.Width - (spacing * 2), spacing)); rectTabOrigin.Y += spacing; } else if (dockState == DockState.DockTopAutoHide) { g.FillRectangle(brush, new Rectangle(rectTabOrigin.X + spacing, rectTabOrigin.Bottom - (spacing / 3), rectTabOrigin.Width - (spacing * 2), rectTabOrigin.Bottom)); rectTabOrigin.Y -= (spacing / 3); } else { g.FillRectangle(brush, new Rectangle(rectTabOrigin.X + spacing, rectTabOrigin.Bottom - spacing, rectTabOrigin.Width - (spacing * 2), rectTabOrigin.Bottom)); rectTabOrigin.Y -= spacing; } } else { g.DrawPath(PenTabBorder, path); } // Set no rotate for drawing icon and text Matrix matrixRotate = g.Transform; g.Transform = MatrixIdentity; // Draw the icon Rectangle rectImage = rectTabOrigin; // HACK - This makes the Silk icon set look better (although it is NOT VS 2005 behavior) if (dockState == DockState.DockLeftAutoHide || dockState == DockState.DockRightAutoHide) { rectImage.Y -= 1; } rectImage.X += ImageGapLeft; rectImage.Y += ImageGapTop; int imageHeight = rectTabOrigin.Height - ImageGapTop - ImageGapBottom; int imageWidth = ImageWidth; if (imageHeight > ImageHeight) { imageWidth = ImageWidth * (imageHeight / ImageHeight); } rectImage.Height = imageHeight; rectImage.Width = imageWidth; rectImage = GetTransformedRectangle(dockState, rectImage); if (tabStyle != "Underlined") { g.DrawIcon(((Form)content).Icon, RtlTransform(rectImage, dockState)); } // Draw the text Rectangle rectText = rectTabOrigin; // CHANGED - Mika if (Font.SizeInPoints > 8F) { rectText.Y += 1; } if (tabStyle == "Underlined") { rectText.X += TextGapRight; } else { rectText.X += ImageGapLeft + imageWidth + ImageGapRight + TextGapLeft; rectText.Width -= ImageGapLeft + imageWidth + ImageGapRight + TextGapLeft; } rectText = RtlTransform(GetTransformedRectangle(dockState, rectText), dockState); if (dockState == DockState.DockLeftAutoHide || dockState == DockState.DockRightAutoHide) { g.DrawString(content.DockHandler.TabText, Font, BrushTabText, rectText, StringFormatTabVertical); } else { g.DrawString(content.DockHandler.TabText, Font, BrushTabText, rectText, StringFormatTabHorizontal); } // Set rotate back g.Transform = matrixRotate; }
public DockContentEventArgs(IDockContent content) { m_content = content; }
public DockPane CreateDockPane(IDockContent content, DockPane prevPane, DockAlignment alignment, double proportion, bool show) { return new DockPane(content, prevPane, alignment, proportion, show); }
internal protected DockPane(IDockContent content, Rectangle floatWindowBounds, bool show) { InternalConstruct(content, DockState.Float, true, floatWindowBounds, null, DockAlignment.Right, 0.5, show); }
private void InternalConstruct(IDockContent content, DockState dockState, bool flagBounds, Rectangle floatWindowBounds, DockPane prevPane, DockAlignment alignment, double proportion, bool show) { if (dockState == DockState.Hidden || dockState == DockState.Unknown) { throw new ArgumentException(DJMaxEditor.Resources.DockPane_SetDockState_InvalidState); } if (content == null) { throw new ArgumentNullException(DJMaxEditor.Resources.DockPane_Constructor_NullContent); } if (content.DockHandler.DockPanel == null) { throw new ArgumentException(DJMaxEditor.Resources.DockPane_Constructor_NullDockPanel); } SuspendLayout(); SetStyle(ControlStyles.Selectable, false); m_isFloat = (dockState == DockState.Float); m_contents = new DockContentCollection(); m_displayingContents = new DockContentCollection(this); m_dockPanel = content.DockHandler.DockPanel; m_dockPanel.AddPane(this); m_splitter = new SplitterControl(this); m_nestedDockingStatus = new NestedDockingStatus(this); m_captionControl = DockPanel.DockPaneCaptionFactory.CreateDockPaneCaption(this); m_tabStripControl = DockPanel.DockPaneStripFactory.CreateDockPaneStrip(this); Controls.AddRange(new Control[] { m_captionControl, m_tabStripControl }); DockPanel.SuspendLayout(true); if (flagBounds) { FloatWindow = DockPanel.FloatWindowFactory.CreateFloatWindow(DockPanel, this, floatWindowBounds); } else if (prevPane != null) { DockTo(prevPane.NestedPanesContainer, prevPane, alignment, proportion); } SetDockState(dockState); if (show) { content.DockHandler.Pane = this; } else if (this.IsFloat) { content.DockHandler.FloatPane = this; } else { content.DockHandler.PanelPane = this; } ResumeLayout(); DockPanel.ResumeLayout(true, true); }
internal protected DockPane(IDockContent content, DockState visibleState, bool show) { InternalConstruct(content, visibleState, false, Rectangle.Empty, null, DockAlignment.Right, 0.5, show); }
private void RefreshStateChange(INestedPanesContainer oldContainer, DockState oldDockState) { if (IsRefreshStateChangeSuspended) { return; } SuspendRefreshStateChange(); DockPanel.SuspendLayout(true); IDockContent contentFocused = GetFocusedContent(); if (contentFocused != null) { DockPanel.SaveFocus(); } SetParent(); if (ActiveContent != null) { ActiveContent.DockHandler.SetDockState(ActiveContent.DockHandler.IsHidden, DockState, ActiveContent.DockHandler.Pane); } foreach (IDockContent content in Contents) { if (content.DockHandler.Pane == this) { content.DockHandler.SetDockState(content.DockHandler.IsHidden, DockState, content.DockHandler.Pane); } } if (oldContainer != null) { Control oldContainerControl = (Control)oldContainer; if (oldContainer.DockState == oldDockState && !oldContainerControl.IsDisposed) { oldContainerControl.PerformLayout(); } } if (DockHelper.IsDockStateAutoHide(oldDockState)) { DockPanel.RefreshActiveAutoHideContent(); } if (NestedPanesContainer.DockState == DockState) { ((Control)NestedPanesContainer).PerformLayout(); } if (DockHelper.IsDockStateAutoHide(DockState)) { DockPanel.RefreshActiveAutoHideContent(); } if (DockHelper.IsDockStateAutoHide(oldDockState) || DockHelper.IsDockStateAutoHide(DockState)) { DockPanel.RefreshAutoHideStrip(); DockPanel.PerformLayout(); } ResumeRefreshStateChange(); if (contentFocused != null) { contentFocused.DockHandler.Activate(); } DockPanel.ResumeLayout(true, true); if (oldDockState != DockState) { OnDockStateChanged(EventArgs.Empty); } }
public static void LoadFromXml(DockPanel dockPanel, Stream stream, DeserializeDockContent deserializeContent, bool closeStream) { if (dockPanel.Contents.Count != 0) { throw new InvalidOperationException(ResourceHelper.GetString("DockPanel.LoadFromXml.AlreadyInitialized")); } EnumConverter dockStateConverter = new EnumConverter(typeof(DockState)); EnumConverter dockAlignmentConverter = new EnumConverter(typeof(DockAlignment)); RectangleConverter rectConverter = new RectangleConverter(); XmlTextReader xmlIn = new XmlTextReader(stream); xmlIn.WhitespaceHandling = WhitespaceHandling.None; xmlIn.MoveToContent(); while (!xmlIn.Name.Equals("DockPanel")) { if (!MoveToNextElement(xmlIn)) { throw new ArgumentException(ResourceHelper.GetString("DockPanel.LoadFromXml.InvalidXmlFormat")); } } string formatVersion = xmlIn.GetAttribute("FormatVersion"); if (!IsFormatVersionValid(formatVersion)) { throw new ArgumentException(ResourceHelper.GetString("DockPanel.LoadFromXml.InvalidFormatVersion")); } DockPanelStruct dockPanelStruct = new DockPanelStruct(); dockPanelStruct.DockLeftPortion = Convert.ToDouble(xmlIn.GetAttribute("DockLeftPortion"), CultureInfo.InvariantCulture); dockPanelStruct.DockRightPortion = Convert.ToDouble(xmlIn.GetAttribute("DockRightPortion"), CultureInfo.InvariantCulture); dockPanelStruct.DockTopPortion = Convert.ToDouble(xmlIn.GetAttribute("DockTopPortion"), CultureInfo.InvariantCulture); dockPanelStruct.DockBottomPortion = Convert.ToDouble(xmlIn.GetAttribute("DockBottomPortion"), CultureInfo.InvariantCulture); dockPanelStruct.IndexActiveDocumentPane = Convert.ToInt32(xmlIn.GetAttribute("ActiveDocumentPane")); dockPanelStruct.IndexActivePane = Convert.ToInt32(xmlIn.GetAttribute("ActivePane")); // Load Contents MoveToNextElement(xmlIn); if (xmlIn.Name != "Contents") { throw new ArgumentException(ResourceHelper.GetString("DockPanel.LoadFromXml.InvalidXmlFormat")); } int countOfContents = Convert.ToInt32(xmlIn.GetAttribute("Count")); ContentStruct[] contents = new ContentStruct[countOfContents]; MoveToNextElement(xmlIn); for (int i = 0; i < countOfContents; i++) { int id = Convert.ToInt32(xmlIn.GetAttribute("ID")); if (xmlIn.Name != "Content" || id != i) { throw new ArgumentException(ResourceHelper.GetString("DockPanel.LoadFromXml.InvalidXmlFormat")); } contents[i].PersistString = xmlIn.GetAttribute("PersistString"); contents[i].AutoHidePortion = Convert.ToDouble(xmlIn.GetAttribute("AutoHidePortion"), CultureInfo.InvariantCulture); contents[i].IsHidden = Convert.ToBoolean(xmlIn.GetAttribute("IsHidden")); contents[i].IsFloat = Convert.ToBoolean(xmlIn.GetAttribute("IsFloat")); MoveToNextElement(xmlIn); } // Load Panes if (xmlIn.Name != "Panes") { throw new ArgumentException(ResourceHelper.GetString("DockPanel.LoadFromXml.InvalidXmlFormat")); } int countOfPanes = Convert.ToInt32(xmlIn.GetAttribute("Count")); PaneStruct[] panes = new PaneStruct[countOfPanes]; MoveToNextElement(xmlIn); for (int i = 0; i < countOfPanes; i++) { int id = Convert.ToInt32(xmlIn.GetAttribute("ID")); if (xmlIn.Name != "Pane" || id != i) { throw new ArgumentException(ResourceHelper.GetString("DockPanel.LoadFromXml.InvalidXmlFormat")); } panes[i].DockState = (DockState)dockStateConverter.ConvertFrom(xmlIn.GetAttribute("DockState")); panes[i].IndexActiveContent = Convert.ToInt32(xmlIn.GetAttribute("ActiveContent")); panes[i].ZOrderIndex = -1; MoveToNextElement(xmlIn); if (xmlIn.Name != "Contents") { throw new ArgumentException(ResourceHelper.GetString("DockPanel.LoadFromXml.InvalidXmlFormat")); } int countOfPaneContents = Convert.ToInt32(xmlIn.GetAttribute("Count")); panes[i].IndexContents = new int[countOfPaneContents]; MoveToNextElement(xmlIn); for (int j = 0; j < countOfPaneContents; j++) { int id2 = Convert.ToInt32(xmlIn.GetAttribute("ID")); if (xmlIn.Name != "Content" || id2 != j) { throw new ArgumentException(ResourceHelper.GetString("DockPanel.LoadFromXml.InvalidXmlFormat")); } panes[i].IndexContents[j] = Convert.ToInt32(xmlIn.GetAttribute("RefID")); MoveToNextElement(xmlIn); } } // Load DockWindows if (xmlIn.Name != "DockWindows") { throw new ArgumentException(ResourceHelper.GetString("DockPanel.LoadFromXml.InvalidXmlFormat")); } int countOfDockWindows = dockPanel.DockWindows.Count; DockWindowStruct[] dockWindows = new DockWindowStruct[countOfDockWindows]; MoveToNextElement(xmlIn); for (int i = 0; i < countOfDockWindows; i++) { int id = Convert.ToInt32(xmlIn.GetAttribute("ID")); if (xmlIn.Name != "DockWindow" || id != i) { throw new ArgumentException(ResourceHelper.GetString("DockPanel.LoadFromXml.InvalidXmlFormat")); } dockWindows[i].DockState = (DockState)dockStateConverter.ConvertFrom(xmlIn.GetAttribute("DockState")); dockWindows[i].ZOrderIndex = Convert.ToInt32(xmlIn.GetAttribute("ZOrderIndex")); MoveToNextElement(xmlIn); if (xmlIn.Name != "DockList") { throw new ArgumentException(ResourceHelper.GetString("DockPanel.LoadFromXml.InvalidXmlFormat")); } int countOfDockList = Convert.ToInt32(xmlIn.GetAttribute("Count")); dockWindows[i].DockList = new DockListItem[countOfDockList]; MoveToNextElement(xmlIn); for (int j = 0; j < countOfDockList; j++) { int id2 = Convert.ToInt32(xmlIn.GetAttribute("ID")); if (xmlIn.Name != "Pane" || id2 != j) { throw new ArgumentException(ResourceHelper.GetString("DockPanel.LoadFromXml.InvalidXmlFormat")); } dockWindows[i].DockList[j].IndexPane = Convert.ToInt32(xmlIn.GetAttribute("RefID")); dockWindows[i].DockList[j].IndexPrevPane = Convert.ToInt32(xmlIn.GetAttribute("PrevPane")); dockWindows[i].DockList[j].Alignment = (DockAlignment)dockAlignmentConverter.ConvertFrom(xmlIn.GetAttribute("Alignment")); dockWindows[i].DockList[j].Proportion = Convert.ToDouble(xmlIn.GetAttribute("Proportion"), CultureInfo.InvariantCulture); MoveToNextElement(xmlIn); } } // Load FloatWindows if (xmlIn.Name != "FloatWindows") { throw new ArgumentException(ResourceHelper.GetString("DockPanel.LoadFromXml.InvalidXmlFormat")); } int countOfFloatWindows = Convert.ToInt32(xmlIn.GetAttribute("Count")); FloatWindowStruct[] floatWindows = new FloatWindowStruct[countOfFloatWindows]; MoveToNextElement(xmlIn); for (int i = 0; i < countOfFloatWindows; i++) { int id = Convert.ToInt32(xmlIn.GetAttribute("ID")); if (xmlIn.Name != "FloatWindow" || id != i) { throw new ArgumentException(ResourceHelper.GetString("DockPanel.LoadFromXml.InvalidXmlFormat")); } floatWindows[i].Bounds = (Rectangle)rectConverter.ConvertFromInvariantString(xmlIn.GetAttribute("Bounds")); floatWindows[i].AllowRedocking = Convert.ToBoolean(xmlIn.GetAttribute("AllowRedocking")); floatWindows[i].ZOrderIndex = Convert.ToInt32(xmlIn.GetAttribute("ZOrderIndex")); MoveToNextElement(xmlIn); if (xmlIn.Name != "DockList") { throw new ArgumentException(ResourceHelper.GetString("DockPanel.LoadFromXml.InvalidXmlFormat")); } int countOfDockList = Convert.ToInt32(xmlIn.GetAttribute("Count")); floatWindows[i].DockList = new DockListItem[countOfDockList]; MoveToNextElement(xmlIn); for (int j = 0; j < countOfDockList; j++) { int id2 = Convert.ToInt32(xmlIn.GetAttribute("ID")); if (xmlIn.Name != "Pane" || id2 != j) { throw new ArgumentException(ResourceHelper.GetString("DockPanel.LoadFromXml.InvalidXmlFormat")); } floatWindows[i].DockList[j].IndexPane = Convert.ToInt32(xmlIn.GetAttribute("RefID")); floatWindows[i].DockList[j].IndexPrevPane = Convert.ToInt32(xmlIn.GetAttribute("PrevPane")); floatWindows[i].DockList[j].Alignment = (DockAlignment)dockAlignmentConverter.ConvertFrom(xmlIn.GetAttribute("Alignment")); floatWindows[i].DockList[j].Proportion = Convert.ToDouble(xmlIn.GetAttribute("Proportion"), CultureInfo.InvariantCulture); MoveToNextElement(xmlIn); } } if (closeStream) { xmlIn.Close(); } dockPanel.DockLeftPortion = dockPanelStruct.DockLeftPortion; dockPanel.DockRightPortion = dockPanelStruct.DockRightPortion; dockPanel.DockTopPortion = dockPanelStruct.DockTopPortion; dockPanel.DockBottomPortion = dockPanelStruct.DockBottomPortion; // Set DockWindow ZOrders int prevMaxDockWindowZOrder = int.MaxValue; for (int i = 0; i < dockWindows.Length; i++) { int maxDockWindowZOrder = -1; int index = -1; for (int j = 0; j < dockWindows.Length; j++) { if (dockWindows[j].ZOrderIndex > maxDockWindowZOrder && dockWindows[j].ZOrderIndex < prevMaxDockWindowZOrder) { maxDockWindowZOrder = dockWindows[j].ZOrderIndex; index = j; } } dockPanel.DockWindows[dockWindows[index].DockState].BringToFront(); prevMaxDockWindowZOrder = maxDockWindowZOrder; } // Create Contents for (int i = 0; i < contents.Length; i++) { IDockContent content = deserializeContent(contents[i].PersistString); if (content == null) { content = new DummyContent(); } content.DockHandler.DockPanel = dockPanel; content.DockHandler.AutoHidePortion = contents[i].AutoHidePortion; content.DockHandler.IsHidden = true; content.DockHandler.IsFloat = contents[i].IsFloat; } // Create panes for (int i = 0; i < panes.Length; i++) { DockPane pane = null; for (int j = 0; j < panes[i].IndexContents.Length; j++) { IDockContent content = dockPanel.Contents[panes[i].IndexContents[j]]; if (j == 0) { pane = dockPanel.DockPaneFactory.CreateDockPane(content, panes[i].DockState, false); } else if (panes[i].DockState == DockState.Float) { content.DockHandler.FloatPane = pane; } else { content.DockHandler.PanelPane = pane; } } } // Assign Panes to DockWindows for (int i = 0; i < dockWindows.Length; i++) { for (int j = 0; j < dockWindows[i].DockList.Length; j++) { DockWindow dw = dockPanel.DockWindows[dockWindows[i].DockState]; int indexPane = dockWindows[i].DockList[j].IndexPane; DockPane pane = dockPanel.Panes[indexPane]; int indexPrevPane = dockWindows[i].DockList[j].IndexPrevPane; DockPane prevPane = (indexPrevPane == -1) ? dw.DockList.GetDefaultPrevPane(pane) : dockPanel.Panes[indexPrevPane]; DockAlignment alignment = dockWindows[i].DockList[j].Alignment; double proportion = dockWindows[i].DockList[j].Proportion; pane.AddToDockList(dw, prevPane, alignment, proportion); if (panes[indexPane].DockState == dw.DockState) { panes[indexPane].ZOrderIndex = dockWindows[i].ZOrderIndex; } } } // Create float windows for (int i = 0; i < floatWindows.Length; i++) { FloatWindow fw = null; for (int j = 0; j < floatWindows[i].DockList.Length; j++) { int indexPane = floatWindows[i].DockList[j].IndexPane; DockPane pane = dockPanel.Panes[indexPane]; if (j == 0) { fw = dockPanel.FloatWindowFactory.CreateFloatWindow(dockPanel, pane, floatWindows[i].Bounds); } else { int indexPrevPane = floatWindows[i].DockList[j].IndexPrevPane; DockPane prevPane = indexPrevPane == -1 ? null : dockPanel.Panes[indexPrevPane]; DockAlignment alignment = floatWindows[i].DockList[j].Alignment; double proportion = floatWindows[i].DockList[j].Proportion; pane.AddToDockList(fw, prevPane, alignment, proportion); if (panes[indexPane].DockState == fw.DockState) { panes[indexPane].ZOrderIndex = floatWindows[i].ZOrderIndex; } } } } // sort IDockContent by its Pane's ZOrder int[] sortedContents = null; if (contents.Length > 0) { sortedContents = new int[contents.Length]; for (int i = 0; i < contents.Length; i++) { sortedContents[i] = i; } int lastDocument = contents.Length; for (int i = 0; i < contents.Length - 1; i++) { for (int j = i + 1; j < contents.Length; j++) { DockPane pane1 = dockPanel.Contents[sortedContents[i]].DockHandler.Pane; int ZOrderIndex1 = pane1 == null ? 0 : panes[dockPanel.Panes.IndexOf(pane1)].ZOrderIndex; DockPane pane2 = dockPanel.Contents[sortedContents[j]].DockHandler.Pane; int ZOrderIndex2 = pane2 == null ? 0 : panes[dockPanel.Panes.IndexOf(pane2)].ZOrderIndex; if (ZOrderIndex1 > ZOrderIndex2) { int temp = sortedContents[i]; sortedContents[i] = sortedContents[j]; sortedContents[j] = temp; } } } } // show non-document IDockContent first to avoid screen flickers for (int i = 0; i < contents.Length; i++) { IDockContent content = dockPanel.Contents[sortedContents[i]]; if (content.DockHandler.Pane != null && content.DockHandler.Pane.DockState != DockState.Document) { content.DockHandler.IsHidden = contents[sortedContents[i]].IsHidden; } } // after all non-document IDockContent, show document IDockContent for (int i = 0; i < contents.Length; i++) { IDockContent content = dockPanel.Contents[sortedContents[i]]; if (content.DockHandler.Pane != null && content.DockHandler.Pane.DockState == DockState.Document) { content.DockHandler.IsHidden = contents[sortedContents[i]].IsHidden; } } for (int i = 0; i < panes.Length; i++) { dockPanel.Panes[i].ActiveContent = panes[i].IndexActiveContent == -1 ? null : dockPanel.Contents[panes[i].IndexActiveContent]; } if (dockPanelStruct.IndexActiveDocumentPane != -1) { dockPanel.Panes[dockPanelStruct.IndexActiveDocumentPane].Activate(); } if (dockPanelStruct.IndexActivePane != -1) { dockPanel.Panes[dockPanelStruct.IndexActivePane].Activate(); } for (int i = dockPanel.Contents.Count - 1; i >= 0; i--) { if (dockPanel.Contents[i] is DummyContent) { dockPanel.Contents[i].DockHandler.Form.Close(); } } }
/// <summary> /// Return the content's parent as an IDockLayout</summary> /// <param name="content">The docked content whose parent is requested</param> /// <returns>The parent as IDockLayout</returns> IDockLayout IDockLayout.FindParentLayout(IDockContent content) { return (content is DockContent && Children.Contains((DockContent)content)) ? this : null; }
public static void LoadFromXml(DockPanel dockPanel, Stream stream, DeserializeDockContent deserializeContent, bool closeStream = true) { if (dockPanel.Contents.Count != 0) { throw new InvalidOperationException(Strings.DockPanel_LoadFromXml_AlreadyInitialized); } DockPanelStruct dockPanelStruct; ContentStruct[] contents; PaneStruct[] panes; DockWindowStruct[] dockWindows; FloatWindowStruct[] floatWindows; using (var xmlIn = new XmlTextReader(stream) { WhitespaceHandling = WhitespaceHandling.None }) { xmlIn.MoveToContent(); while (!xmlIn.Name.Equals("DockPanel")) { if (!MoveToNextElement(xmlIn)) { throw new ArgumentException(Strings.DockPanel_LoadFromXml_InvalidXmlFormat); } } string formatVersion = xmlIn.GetAttribute("FormatVersion"); if (!IsFormatVersionValid(formatVersion)) { throw new ArgumentException(Strings.DockPanel_LoadFromXml_InvalidFormatVersion); } dockPanelStruct = new DockPanelStruct { DockLeftPortion = Convert.ToDouble(xmlIn.GetAttribute("DockLeftPortion"), CultureInfo.InvariantCulture), DockRightPortion = Convert.ToDouble(xmlIn.GetAttribute("DockRightPortion"), CultureInfo.InvariantCulture), DockTopPortion = Convert.ToDouble(xmlIn.GetAttribute("DockTopPortion"), CultureInfo.InvariantCulture), DockBottomPortion = Convert.ToDouble(xmlIn.GetAttribute("DockBottomPortion"), CultureInfo.InvariantCulture), IndexActiveDocumentPane = Convert.ToInt32(xmlIn.GetAttribute("ActiveDocumentPane"), CultureInfo.InvariantCulture), IndexActivePane = Convert.ToInt32(xmlIn.GetAttribute("ActivePane"), CultureInfo.InvariantCulture) }; // Load Contents MoveToNextElement(xmlIn); if (xmlIn.Name != "Contents") { throw new ArgumentException(Strings.DockPanel_LoadFromXml_InvalidXmlFormat); } contents = LoadContents(xmlIn); // Load Panes if (xmlIn.Name != "Panes") { throw new ArgumentException(Strings.DockPanel_LoadFromXml_InvalidXmlFormat); } panes = LoadPanes(xmlIn); // Load DockWindows if (xmlIn.Name != "DockWindows") { throw new ArgumentException(Strings.DockPanel_LoadFromXml_InvalidXmlFormat); } dockWindows = LoadDockWindows(xmlIn, dockPanel); // Load FloatWindows if (xmlIn.Name != "FloatWindows") { throw new ArgumentException(Strings.DockPanel_LoadFromXml_InvalidXmlFormat); } floatWindows = LoadFloatWindows(xmlIn); if (closeStream) { xmlIn.Close(); } } dockPanel.SuspendLayout(true); dockPanel.DockLeftPortion = dockPanelStruct.DockLeftPortion; dockPanel.DockRightPortion = dockPanelStruct.DockRightPortion; dockPanel.DockTopPortion = dockPanelStruct.DockTopPortion; dockPanel.DockBottomPortion = dockPanelStruct.DockBottomPortion; // Set DockWindow ZOrders int prevMaxDockWindowZOrder = int.MaxValue; for (int i = 0; i < dockWindows.Length; i++) { int maxDockWindowZOrder = -1; int index = -1; for (int j = 0; j < dockWindows.Length; j++) { if (dockWindows[j].ZOrderIndex > maxDockWindowZOrder && dockWindows[j].ZOrderIndex < prevMaxDockWindowZOrder) { maxDockWindowZOrder = dockWindows[j].ZOrderIndex; index = j; } } dockPanel.DockWindows[dockWindows[index].DockState].BringToFront(); prevMaxDockWindowZOrder = maxDockWindowZOrder; } // Create Contents for (int i = 0; i < contents.Length; i++) { var content = deserializeContent(contents[i].PersistString) ?? new DummyContent(); content.DockHandler.DockPanel = dockPanel; content.DockHandler.AutoHidePortion = contents[i].AutoHidePortion; content.DockHandler.IsHidden = true; content.DockHandler.IsFloat = contents[i].IsFloat; } // Create panes for (int i = 0; i < panes.Length; i++) { DockPane pane = null; for (int j = 0; j < panes[i].IndexContents.Length; j++) { IDockContent content = dockPanel.Contents[panes[i].IndexContents[j]]; if (j == 0) { pane = dockPanel.DockPaneFactory.CreateDockPane(content, panes[i].DockState, false); } else if (panes[i].DockState == DockState.Float) { content.DockHandler.FloatPane = pane; } else { content.DockHandler.PanelPane = pane; } } } // Assign Panes to DockWindows for (int i = 0; i < dockWindows.Length; i++) { for (int j = 0; j < dockWindows[i].NestedPanes.Length; j++) { DockWindow dw = dockPanel.DockWindows[dockWindows[i].DockState]; int indexPane = dockWindows[i].NestedPanes[j].IndexPane; DockPane pane = dockPanel.Panes[indexPane]; int indexPrevPane = dockWindows[i].NestedPanes[j].IndexPrevPane; DockPane prevPane = indexPrevPane == -1 ? dw.NestedPanes.GetDefaultPreviousPane(pane) : dockPanel.Panes[indexPrevPane]; DockAlignment alignment = dockWindows[i].NestedPanes[j].Alignment; double proportion = dockWindows[i].NestedPanes[j].Proportion; pane.DockTo(dw, prevPane, alignment, proportion); if (panes[indexPane].DockState == dw.DockState) { panes[indexPane].ZOrderIndex = dockWindows[i].ZOrderIndex; } } } // Create float windows for (var i = 0; i < floatWindows.Length; i++) { FloatWindow fw = null; for (int j = 0; j < floatWindows[i].NestedPanes.Length; j++) { int indexPane = floatWindows[i].NestedPanes[j].IndexPane; DockPane pane = dockPanel.Panes[indexPane]; if (j == 0) { fw = dockPanel.FloatWindowFactory.CreateFloatWindow(dockPanel, pane, floatWindows[i].Bounds); } else { int indexPrevPane = floatWindows[i].NestedPanes[j].IndexPrevPane; DockPane prevPane = indexPrevPane == -1 ? null : dockPanel.Panes[indexPrevPane]; DockAlignment alignment = floatWindows[i].NestedPanes[j].Alignment; double proportion = floatWindows[i].NestedPanes[j].Proportion; pane.DockTo(fw, prevPane, alignment, proportion); } if (panes[indexPane].DockState == fw.DockState) { panes[indexPane].ZOrderIndex = floatWindows[i].ZOrderIndex; } } } // sort IDockContent by its Pane's ZOrder int[] sortedContents = null; if (contents.Length > 0) { sortedContents = new int[contents.Length]; for (int i = 0; i < contents.Length; i++) { sortedContents[i] = i; } for (int i = 0; i < contents.Length - 1; i++) { for (int j = i + 1; j < contents.Length; j++) { var pane1 = dockPanel.Contents[sortedContents[i]].DockHandler.Pane; var zOrderIndex1 = pane1 == null ? 0 : panes[dockPanel.Panes.IndexOf(pane1)].ZOrderIndex; var pane2 = dockPanel.Contents[sortedContents[j]].DockHandler.Pane; var zOrderIndex2 = pane2 == null ? 0 : panes[dockPanel.Panes.IndexOf(pane2)].ZOrderIndex; if (zOrderIndex1 <= zOrderIndex2) { continue; } var temp = sortedContents[i]; sortedContents[i] = sortedContents[j]; sortedContents[j] = temp; } } } // show non-document IDockContent first to avoid screen flickers for (int i = 0; i < contents.Length; i++) { IDockContent content = dockPanel.Contents[sortedContents[i]]; if (content.DockHandler.Pane != null && content.DockHandler.Pane.DockState != DockState.Document) { content.DockHandler.IsHidden = contents[sortedContents[i]].IsHidden; } } // after all non-document IDockContent, show document IDockContent for (int i = 0; i < contents.Length; i++) { IDockContent content = dockPanel.Contents[sortedContents[i]]; if (content.DockHandler.Pane != null && content.DockHandler.Pane.DockState == DockState.Document) { content.DockHandler.IsHidden = contents[sortedContents[i]].IsHidden; } } for (int i = 0; i < panes.Length; i++) { dockPanel.Panes[i].ActiveContent = panes[i].IndexActiveContent == -1 ? null : dockPanel.Contents[panes[i].IndexActiveContent]; } if (dockPanelStruct.IndexActiveDocumentPane != -1) { dockPanel.Panes[dockPanelStruct.IndexActiveDocumentPane].Activate(); } if (dockPanelStruct.IndexActivePane != -1) { dockPanel.Panes[dockPanelStruct.IndexActivePane].Activate(); } for (int i = dockPanel.Contents.Count - 1; i >= 0; i--) { if (dockPanel.Contents[i] is DummyContent) { dockPanel.Contents[i].DockHandler.Form.Close(); } } dockPanel.ResumeLayout(true, true); }
public DockPane CreateDockPane(IDockContent content, DockState visibleState, bool show) { return new DockPane(content, visibleState, show); }
protected override void WndProc(ref Message m) { if (m.Msg == (int)Win32.Msgs.WM_NCLBUTTONDOWN) { if (IsDisposed) { return; } uint result = !NativeMethods.ShouldUseWin32() ? 0 : NativeMethods.SendMessage(this.Handle, (int)Win32.Msgs.WM_NCHITTEST, 0, (uint)m.LParam); if (result == 2 && DockPanel.AllowEndUserDocking && this.AllowEndUserDocking) // HITTEST_CAPTION { Activate(); m_dockPanel.BeginDrag(this); } else { base.WndProc(ref m); } return; } else if (m.Msg == (int)Win32.Msgs.WM_NCRBUTTONDOWN) { uint result = !NativeMethods.ShouldUseWin32() ? 0 : NativeMethods.SendMessage(this.Handle, (int)Win32.Msgs.WM_NCHITTEST, 0, (uint)m.LParam); if (result == 2) // HITTEST_CAPTION { DockPane theOnlyPane = (VisibleNestedPanes.Count == 1) ? VisibleNestedPanes[0] : null; if (theOnlyPane != null && theOnlyPane.ActiveContent != null) { theOnlyPane.ShowTabPageContextMenu(this, PointToClient(Control.MousePosition)); return; } } base.WndProc(ref m); return; } else if (m.Msg == (int)Win32.Msgs.WM_CLOSE) { if (NestedPanes.Count == 0) { base.WndProc(ref m); return; } for (int i = NestedPanes.Count - 1; i >= 0; i--) { DockContentCollection contents = NestedPanes[i].Contents; for (int j = contents.Count - 1; j >= 0; j--) { IDockContent content = contents[j]; if (content.DockHandler.DockState != DockState.Float) { continue; } if (!content.DockHandler.CloseButton) { continue; } if (content.DockHandler.HideOnClose) { content.DockHandler.Hide(); } else { content.DockHandler.Close(); } } } return; } else if (m.Msg == (int)Win32.Msgs.WM_NCLBUTTONDBLCLK) { uint result = !DoubleClickTitleBarToDock || !NativeMethods.ShouldUseWin32() ? 0 : NativeMethods.SendMessage(this.Handle, (int)Win32.Msgs.WM_NCHITTEST, 0, (uint)m.LParam); if (result != 2) // HITTEST_CAPTION { base.WndProc(ref m); return; } DockPanel.SuspendLayout(true); // Restore to panel foreach (DockPane pane in NestedPanes) { if (pane.DockState != DockState.Float) { continue; } pane.RestoreToPanel(); } DockPanel.ResumeLayout(true, true); return; } else if (m.Msg == WM_CHECKDISPOSE) { if (NestedPanes.Count == 0) { Dispose(); } return; } base.WndProc(ref m); }
protected override AutoHideStripBase.Tab CreateTab(IDockContent content) { return new TabVS2003(content); }
IDockLayout IDockLayout.FindParentLayout(IDockContent content) { return((content is DockContent && m_children.Contains((DockContent)content)) ? this : null); }
internal void RemoveContent(IDockContent content) { if (content == null) throw(new ArgumentNullException()); if (Contents.Contains(content)) { Contents.Remove(content); OnContentRemoved(new DockContentEventArgs(content)); } }
public void GiveUpFocus(IDockContent content) { DockContentHandler handler = content.DockHandler; if (!handler.Form.ContainsFocus) return; if (IsFocusTrackingSuspended) DockPanel.DummyControl.Focus(); if (LastActiveContent == content) { IDockContent prev = handler.PreviousActive; if (prev != null) Activate(prev); else if (ListContent.Count > 0) Activate(ListContent[ListContent.Count - 1]); } else if (LastActiveContent != null) Activate(LastActiveContent); else if (ListContent.Count > 0) Activate(ListContent[ListContent.Count - 1]); }
public bool HasDescendant(IDockContent content) { return(HasChild(content)); }
internal void SetActiveContent() { IDockContent value = ActivePane == null ? null : ActivePane.ActiveContent; if (m_activeContent == value) return; if (m_activeContent != null) m_activeContent.DockHandler.IsActivated = false; m_activeContent = value; if (m_activeContent != null) { m_activeContent.DockHandler.IsActivated = true; if (!DockHelper.IsDockStateAutoHide((m_activeContent.DockHandler.DockState))) AddLastToActiveList(m_activeContent); } }
protected internal override DockPaneStripBase.Tab CreateTab(IDockContent content) { return(new TabVS2003(content)); }
/// <summary> /// Check if the layout contains the content as direct child</summary> /// <param name="content">Content to search for</param> /// <returns>True iff the content is child of this control</returns> public bool HasChild(IDockContent content) { return Children.Any(x => x == content); }
protected override AutoHideStripBase.Tab CreateTab(IDockContent content) { return(new TabVS2005(content)); }
/// <summary> /// Dock the new content next to content</summary> /// <param name="nextTo">Dock content to add new content next to</param> /// <param name="newContent">New content to be docked</param> /// <param name="dockTo">Side of nextTo content where new content should be docked</param> public void Dock(IDockContent nextTo, IDockContent newContent, DockTo dockTo) { TabLayout tabLayout = newContent as TabLayout; if (tabLayout != null) { IEnumerator<DockContent> contentEnumerator = tabLayout.Children.GetEnumerator(); while (contentEnumerator.MoveNext()) { DockContent content = contentEnumerator.Current; tabLayout.RemoveItem(content); AddOneItem((DockContent)nextTo, content); contentEnumerator = tabLayout.Children.GetEnumerator(); } } else { AddOneItem((DockContent)nextTo, newContent as DockContent); } Focus(); UpdateLayout(); }
public void Show(DockPane pane, IDockContent beforeContent) { DockHandler.Show(pane, beforeContent); }
public Tab(IDockContent content) { Content = content; }
private void RemoveFromActiveList(IDockContent content) { if (LastActiveContent == content) LastActiveContent = content.DockHandler.PreviousActive; IDockContent prev = content.DockHandler.PreviousActive; IDockContent next = content.DockHandler.NextActive; if (prev != null) prev.DockHandler.NextActive = next; if (next != null) next.DockHandler.PreviousActive = prev; content.DockHandler.PreviousActive = null; content.DockHandler.NextActive = null; }
public DockPaneTab CreateDockPaneTab(IDockContent content) { return(new DockPaneTabVS2003(content)); }
private static bool ContentContains(IDockContent content, IntPtr hWnd) { Control control = Control.FromChildHandle(hWnd); for (Control parent = control; parent != null; parent = parent.Parent) if (parent == content.DockHandler.Form) return true; return false; }
public AutoHideTab CreateAutoHideTab(IDockContent content) { return(new AutoHideTabVS2003(content)); }
private void SetActiveDocument() { IDockContent value = ActiveDocumentPane == null ? null : ActiveDocumentPane.ActiveContent; if (m_activeDocument == value) return; m_activeDocument = value; }
public bool Contains(IDockContent content) { return(IndexOf(content) != -1); }
/// <summary> /// Check if the layout contains the content as child or descendant</summary> /// <param name="content">Content to search for</param> /// <returns>True iff content is child or descendant</returns> public bool HasDescendant(IDockContent content) { return HasChild(content); }
public int IndexOf(IDockContent content) { return(DockPane.DisplayingContents.IndexOf(content)); }
/// <summary> /// Undock given content</summary> /// <param name="content">Content to undock</param> public void Undock(IDockContent content) { foreach (IDockContent contentItem in Children) { if (content == contentItem) { RemoveItem(content as DockContent); if (Parent is IDockLayout && Children.Count == 0) { ((IDockLayout)Parent).Undock((IDockLayout)this); } break; } } }
protected internal Tab(IDockContent content) { m_content = content; }
public void Show(DockPane pane, IDockContent beforeContent) { if (pane == null) throw(new ArgumentNullException(Strings.DockContentHandler_Show_NullPane)); if (beforeContent != null && pane.Contents.IndexOf(beforeContent) == -1) throw(new ArgumentException(Strings.DockContentHandler_Show_InvalidBeforeContent)); pane.DockPanel.SuspendLayout(true); DockPanel = pane.DockPanel; Pane = pane; pane.SetContentIndex(Content, pane.Contents.IndexOf(beforeContent)); Show(); pane.DockPanel.ResumeLayout(true, true); }
protected virtual Tab CreateTab(IDockContent content) { return(new Tab(content)); }
public DockPane CreateDockPane(IDockContent content, FloatWindow floatWindow, bool show) { return new DockPane(content, floatWindow, show); }
public DockPane CreateDockPane(IDockContent content, FloatWindow floatWindow, bool show) { return(new DockPane(content, floatWindow, show)); }
public DockPane CreateDockPane(IDockContent content, Rectangle floatWindowBounds, bool show) { return new DockPane(content, floatWindowBounds, show); }
public DockPane CreateDockPane(IDockContent content, DockPane prevPane, DockAlignment alignment, double proportion, bool show) { return(new DockPane(content, prevPane, alignment, proportion, show)); }
public DockPane CreateDockPane(IDockContent content, Rectangle floatWindowBounds, bool show) { return(new DockPane(content, floatWindowBounds, show)); }
internal void AddContent(IDockContent content) { if (content == null) throw(new ArgumentNullException()); if (!Contents.Contains(content)) { Contents.Add(content); OnContentAdded(new DockContentEventArgs(content)); } }
private bool IsInActiveList(IDockContent content) { return(!(content.DockHandler.NextActive == null && LastActiveContent != content)); }
public DockPane CreateDockPane(IDockContent content, DockState visibleState, bool show) { return(new DockPane(content, visibleState, show)); }