ARCed.UI.DockPane.InternalConstruct C# (CSharp) Method

InternalConstruct() private method

private InternalConstruct ( IDockContent content, DockState dockState, bool flagBounds, Rectangle floatWindowBounds, DockPane prevPane, DockAlignment alignment, double proportion, bool show ) : void
content IDockContent
dockState DockState
flagBounds bool
floatWindowBounds System.Drawing.Rectangle
prevPane DockPane
alignment DockAlignment
proportion double
show bool
return void
        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);

            this.m_isFloat = (dockState == DockState.Float);

            this.m_contents = new DockContentCollection();
            this.m_displayingContents = new DockContentCollection(this);
            this.m_dockPanel = content.DockHandler.DockPanel;
            this.m_dockPanel.AddPane(this);

            this.m_splitter = new SplitterControl(this);

            this.m_nestedDockingStatus = new NestedDockingStatus(this);

            this.m_captionControl = this.DockPanel.DockPaneCaptionFactory.CreateDockPaneCaption(this);
            this.m_tabStripControl = this.DockPanel.DockPaneStripFactory.CreateDockPaneStrip(this);
            Controls.AddRange(new Control[] { this.m_captionControl, this.m_tabStripControl });

            this.DockPanel.SuspendLayout(true);
            if (flagBounds)
                this.FloatWindow = this.DockPanel.FloatWindowFactory.CreateFloatWindow(this.DockPanel, this, floatWindowBounds);
            else if (prevPane != null)
                this.DockTo(prevPane.NestedPanesContainer, prevPane, alignment, proportion);

            this.SetDockState(dockState);
            if (show)
            {
                content.DockHandler.Pane = this;
                if (this.IsFloat)
                {
                    Size size = (content as DockContent).DefaultFloatSize;
                    int x = (Screen.PrimaryScreen.Bounds.Width - size.Width) / 2;
                    int y = (Screen.PrimaryScreen.Bounds.Height - size.Height) / 2;
                    this.FloatWindow.Bounds = new Rectangle(new Point(x, y), size);
                }
            }
            else if (this.IsFloat)
                content.DockHandler.FloatPane = this;
            else
                content.DockHandler.PanelPane = this;

            ResumeLayout();
            this.DockPanel.ResumeLayout(true, true);
        }