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

InternalAddToDockList() private method

private InternalAddToDockList ( INestedPanesContainer container, DockPane prevPane, DockAlignment alignment, double proportion ) : void
container INestedPanesContainer
prevPane DockPane
alignment DockAlignment
proportion double
return void
        private void InternalAddToDockList(INestedPanesContainer container, DockPane prevPane, DockAlignment alignment, double proportion)
        {
            if ((container.DockState == DockState.Float) != this.IsFloat)
                throw new InvalidOperationException(Strings.DockPane_DockTo_InvalidContainer);

            int count = container.NestedPanes.Count;
            if (container.NestedPanes.Contains(this))
                count--;
            if (prevPane == null && count > 0)
                throw new InvalidOperationException(Strings.DockPane_DockTo_NullPrevPane);

            if (prevPane != null && !container.NestedPanes.Contains(prevPane))
                throw new InvalidOperationException(Strings.DockPane_DockTo_NoPrevPane);

            if (prevPane == this)
                throw new InvalidOperationException(Strings.DockPane_DockTo_SelfPrevPane);

            INestedPanesContainer oldContainer = this.NestedPanesContainer;
            DockState oldDockState = this.DockState;
            container.NestedPanes.Add(this);
            this.NestedDockingStatus.SetStatus(container.NestedPanes, prevPane, alignment, proportion);

            if (DockHelper.IsDockWindowState(this.DockState))
                this.m_dockState = container.DockState;

            this.RefreshStateChange(oldContainer, oldDockState);
        }