Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Add sorted fill containers to the list
        /// </summary>
        /// <param name="containers">containers</param>
        private void AddSortedFillContainers(List <DockingContainer> containers)
        {
            List <DockingContainer> containersToBringInFront = new List <DockingContainer>();

            foreach (DockableFormInfo info in _dockableForms)
            {
                FormsTabbedView view = HierarchyUtility.GetTabbedView(info.DockableForm);
                if (view.HostContainerDock != DockStyle.Fill)
                {
                    continue;
                }

                DockingContainer container = HierarchyUtility.GetClosestDockableContainer(info.DockableForm);
                while (true)
                {
                    if (container.Parent as DockingContainer != null)
                    {
                        container = (DockingContainer)container.Parent;
                    }
                    else
                    {
                        break;
                    }
                }

                Debug.Assert(_host.Contains(container), "Floating form views must have their parent in form");

                if (containersToBringInFront.Contains(container) == false)
                {
                    containersToBringInFront.Add(container);
                }
            }

            SortContainersBasedOnTheirZOrder(containersToBringInFront);

            containers.AddRange(containersToBringInFront);
        }