Example #1
0
        public void Refresh()
        {
            if (DockState == DockState.Unknown || DockState == DockState.Hidden)
            {
                return;
            }

            if (IsAutoHide)
            {
                DockManager.Invalidate();
            }

            if (TabWindow != null)
            {
                TabWindow.Invalidate();
                PerformLayout();
                if (TabWindow is DockWindow)
                {
                    ((DockWindow)TabWindow).OnAutoHide(DockManager.ActiveAutoHideContent == ActiveContent);
                }
            }
        }
Example #2
0
        private void TabWindowSplitter_OnEndDrag(bool abort)
        {
            if (abort)
            {
                return;
            }

            Point       pt          = m_splitterLocation;
            Rectangle   rect        = TabWindowSplitter_GetDragRectangle();
            TabWindow   tabWindow   = DragControl as TabWindow;
            DockManager dockManager = tabWindow.DockManager;
            DockState   state       = tabWindow.DockState;

            if (tabWindow.IsTopLevel)
            {
                Rectangle rectDockArea = dockManager.DockArea;
                Content   c            = dockManager.ActiveAutoHideContent;
                if (state == DockState.DockLeft && rectDockArea.Width > 0)
                {
                    dockManager.DockLeftPortion += ((double)rect.X - (double)pt.X) / (double)rectDockArea.Width;
                }
                else if (state == DockState.DockRight && rectDockArea.Width > 0)
                {
                    dockManager.DockRightPortion += ((double)pt.X - (double)rect.X) / (double)rectDockArea.Width;
                }
                else if (state == DockState.DockBottom && rectDockArea.Height > 0)
                {
                    dockManager.DockBottomPortion += ((double)pt.Y - (double)rect.Y) / (double)rectDockArea.Height;
                }
                else if (state == DockState.DockTop && rectDockArea.Height > 0)
                {
                    dockManager.DockTopPortion += ((double)rect.Y - (double)pt.Y) / (double)rectDockArea.Height;
                }
                else if (state == DockState.DockLeftAutoHide && rectDockArea.Width > 0)
                {
                    c.AutoHidePortion += ((double)rect.X - (double)pt.X) / (double)rectDockArea.Width;
                }
                else if (state == DockState.DockRightAutoHide && rectDockArea.Width > 0)
                {
                    c.AutoHidePortion += ((double)pt.X - (double)rect.X) / (double)rectDockArea.Width;
                }
                else if (state == DockState.DockBottomAutoHide && rectDockArea.Height > 0)
                {
                    c.AutoHidePortion += ((double)pt.Y - (double)rect.Y) / (double)rectDockArea.Height;
                }
                else if (state == DockState.DockTopAutoHide && rectDockArea.Height > 0)
                {
                    c.AutoHidePortion += ((double)rect.Y - (double)pt.Y) / (double)rectDockArea.Height;
                }
            }
            else
            {
                TabWindow tabWindowPrev = tabWindow.Previous;
                double    sizeAdjust;
                if (tabWindowPrev.LayoutStyle == LayoutStyles.Horizontal && tabWindowPrev.ClientRectangle.Width > 0)
                {
                    sizeAdjust = ((double)rect.X - (double)pt.X) / (double)tabWindowPrev.ClientRectangle.Width;
                }
                else
                {
                    sizeAdjust = ((double)rect.Y - (double)pt.Y) / (double)tabWindowPrev.ClientRectangle.Height;
                }

                tabWindowPrev.LayoutSize += sizeAdjust;
                tabWindowPrev.Invalidate();
                tabWindowPrev.PerformLayout();
            }
        }