/// <summary> /// On begin move a positioner using the mouse /// </summary> /// <param name="sender">sender of the event</param> /// <param name="e">event arguments</param> private void OnPositionerBeginMoveByMouse(object sender, EventArgs e) { DockingContainer container = sender as DockingContainer; if (container != null) { Debug.Assert(_host.Contains(container), "Only floating forms should have a container as positioner. Docked forms should have their tabbed view."); _host.MoveFirst(container); } else { FormsTabbedView view = sender as FormsTabbedView; Debug.Assert(view != null, "The positioner should wrap either a container for floating forms or a tabbed view for docked forms"); Undock(view); container = view.Parent as DockingContainer; } EventHandler <ControlEventArgs> handler = BeginMoveByMouse; if (handler != null) { ControlEventArgs args = new ControlEventArgs(container); handler(this, args); } }
/// <summary> /// Start auto-show pane process /// </summary> /// <param name="panelToShow">panel to show</param> private void StartAutoShowPane(AutoHidePanel panelToShow) { if (_autoShowPanel != panelToShow) { _animationCommand.Handler = null; _autoHidePanel = _autoShowPanel; _autoShowPanel = panelToShow; if (_autoShowPanel != null) { _host.MoveFirst(_autoShowPanel); } if (_autoHidePanel != null) { _animationCommand.Handler = _autoHidePanel.AutoHideHandler; } else if (_autoShowPanel != null) { _animationCommand.Handler = _autoShowPanel.AutoShowHandler; } else { _animationCommand.Handler = HideAutoPaneWhenMouseExits; } } }
/// <summary> /// Show the floating windows /// </summary> private void ShowFloatingWindows() { List <DockingContainer> containersToBringInFront = new List <DockingContainer>(); AddSortedFloatingContainers(containersToBringInFront); AddSortedFillContainers(containersToBringInFront); for (int index = containersToBringInFront.Count - 1; index >= 0; index--) { _host.MoveFirst(containersToBringInFront[index]); } }