internal void SetStatus(NestedPaneCollection nestedPanes, DockPane previousPane, DockAlignment alignment, double proportion) { m_nestedPanes = nestedPanes; m_previousPane = previousPane; m_alignment = alignment; m_proportion = proportion; }
internal void Add(DockPane pane) { if (pane != null) { NestedPaneCollection nestedPaneCollection = (pane.NestedPanesContainer == null) ? null : pane.NestedPanesContainer.NestedPanes; nestedPaneCollection?.InternalRemove(pane); base.Items.Add(pane); nestedPaneCollection?.CheckFloatWindowDispose(); } }
public void DockTo(DockPanel panel, DockStyle dockStyle) { if (panel != DockPanel) { throw new ArgumentException(Strings.IDockDragSource_DockTo_InvalidPanel, "panel"); } NestedPaneCollection nestedPaneCollection = null; switch (dockStyle) { case DockStyle.Top: nestedPaneCollection = DockPanel.DockWindows[DockState.DockTop].NestedPanes; break; case DockStyle.Bottom: nestedPaneCollection = DockPanel.DockWindows[DockState.DockBottom].NestedPanes; break; case DockStyle.Left: nestedPaneCollection = DockPanel.DockWindows[DockState.DockLeft].NestedPanes; break; case DockStyle.Right: nestedPaneCollection = DockPanel.DockWindows[DockState.DockRight].NestedPanes; break; case DockStyle.Fill: nestedPaneCollection = DockPanel.DockWindows[DockState.Document].NestedPanes; break; } DockPane prevPane = null; for (int num = nestedPaneCollection.Count - 1; num >= 0; num--) { if (nestedPaneCollection[num] != VisibleNestedPanes[0]) { prevPane = nestedPaneCollection[num]; } } MergeNestedPanes(VisibleNestedPanes, nestedPaneCollection, prevPane, DockAlignment.Left, 0.5); }
internal DockWindow(DockPanel dockPanel, DockState dockState) { m_nestedPanes = new NestedPaneCollection(this); m_dockPanel = dockPanel; m_dockState = dockState; base.Visible = false; SuspendLayout(); if (DockState == DockState.DockLeft || DockState == DockState.DockRight || DockState == DockState.DockTop || DockState == DockState.DockBottom) { m_splitter = new SplitterControl(); base.Controls.Add(m_splitter); } if (DockState == DockState.DockLeft) { Dock = DockStyle.Left; m_splitter.Dock = DockStyle.Right; } else if (DockState == DockState.DockRight) { Dock = DockStyle.Right; m_splitter.Dock = DockStyle.Left; } else if (DockState == DockState.DockTop) { Dock = DockStyle.Top; m_splitter.Dock = DockStyle.Bottom; } else if (DockState == DockState.DockBottom) { Dock = DockStyle.Bottom; m_splitter.Dock = DockStyle.Top; } else if (DockState == DockState.Document) { Dock = DockStyle.Fill; } ResumeLayout(); }
private void InternalConstruct(DockPanel dockPanel, DockPane pane, bool boundsSpecified, Rectangle bounds) { if (dockPanel == null) { throw new ArgumentNullException(Strings.FloatWindow_Constructor_NullDockPanel); } m_nestedPanes = new NestedPaneCollection(this); base.FormBorderStyle = FormBorderStyle.SizableToolWindow; base.ShowInTaskbar = false; if (dockPanel.RightToLeft != RightToLeft) { RightToLeft = dockPanel.RightToLeft; } if (RightToLeftLayout != dockPanel.RightToLeftLayout) { RightToLeftLayout = dockPanel.RightToLeftLayout; } SuspendLayout(); if (boundsSpecified) { base.Bounds = bounds; base.StartPosition = FormStartPosition.Manual; } else { base.StartPosition = FormStartPosition.WindowsDefaultLocation; base.Size = dockPanel.DefaultFloatWindowSize; } m_dockPanel = dockPanel; base.Owner = DockPanel.FindForm(); DockPanel.AddFloatWindow(this); if (pane != null) { pane.FloatWindow = this; } ResumeLayout(); }
private static void MergeNestedPanes(VisibleNestedPaneCollection nestedPanesFrom, NestedPaneCollection nestedPanesTo, DockPane prevPane, DockAlignment alignment, double proportion) { if (nestedPanesFrom.Count != 0) { int count = nestedPanesFrom.Count; DockPane[] array = new DockPane[count]; DockPane[] array2 = new DockPane[count]; DockAlignment[] array3 = new DockAlignment[count]; double[] array4 = new double[count]; for (int i = 0; i < count; i++) { array[i] = nestedPanesFrom[i]; array2[i] = nestedPanesFrom[i].NestedDockingStatus.PreviousPane; array3[i] = nestedPanesFrom[i].NestedDockingStatus.Alignment; array4[i] = nestedPanesFrom[i].NestedDockingStatus.Proportion; } DockPane dockPane = array[0].DockTo(nestedPanesTo.Container, prevPane, alignment, proportion); array[0].DockState = nestedPanesTo.DockState; for (int i = 1; i < count; i++) { for (int j = i; j < count; j++) { if (array2[j] == array[i - 1]) { array2[j] = dockPane; } } dockPane = array[i].DockTo(nestedPanesTo.Container, array2[i], array3[i], array4[i]); array[i].DockState = nestedPanesTo.DockState; } } }
internal VisibleNestedPaneCollection(NestedPaneCollection nestedPanes) : base((IList <DockPane>) new List <DockPane>()) { m_nestedPanes = nestedPanes; }