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