Esempio n. 1
0
        /// <summary>
        /// Maximises a panel.
        /// </summary>
        /// <param name="sender">the panel to maximise.</param>
        /// <param name="e">Event args.</param>
        private void DragDockPanel_Maximized(object sender, EventArgs e)
        {
            var dragDockPanel1 = sender as DragDockPanel;

            // Store max'ed panel
            maximizedPanel = dragDockPanel1;

            // Loop through children to disable dragging
            foreach (var child in panels)
            {
                var panel = child;

                panel.DraggingEnabled = false;

                if (panel != maximizedPanel)
                    panel.Minimize();
            }

            // Update sizes and layout
            AnimatePanelSizes();
            AnimatePanelLayout();
        }
Esempio n. 2
0
        /// <summary>
        /// Puts all of the panel back to a grid view.
        /// </summary>
        /// <param name="sender">The minimising panel.</param>
        /// <param name="e">Event args.</param>
        private void DragDockPanel_Restored(object sender, EventArgs e)
        {
            // Set max'ed panel to null
            maximizedPanel = null;

            // Loop through children to disable dragging
            foreach (var child in panels)
            {
                var panel = child;
                panel.Restore();
                panel.DraggingEnabled = true;
            }

            // Update sizes and layout
            AnimatePanelSizes();
            AnimatePanelLayout();
        }
Esempio n. 3
0
        /// <summary>
        /// Drops the dragging panel.
        /// </summary>
        /// <param name="sender">The dragging panel.</param>
        /// <param name="args">Drag event args.</param>
        private void DragDockPanel_DragFinished(object sender, DragEventArgs args)
        {
            // Set dragging panel back to null
            draggingPanel = null;

            // Update the layout (to reset all panel positions)
            UpdatePanelLayout();
        }
Esempio n. 4
0
        /// <summary>
        /// Keeps a reference to the dragging panel.
        /// </summary>
        /// <param name="sender">The dragging panel.</param>
        /// <param name="args">Drag event args.</param>
        private void DragDockPanel_DragStarted(object sender, DragEventArgs args)
        {
            var panel = sender as DragDockPanel;

            // Keep reference to dragging panel
            draggingPanel = panel;
        }
Esempio n. 5
0
        /// <summary>
        /// Unprepares a panel for the UI. Override for hooking custom events.
        /// </summary>
        /// <param name="panel">The panel to prepare.</param>
        protected virtual void UnpreparePanel(DragDockPanel panel)
        {
            if (panel == null)
                return;

            if (panel.PanelState == PanelState.Maximized)
                DragDockPanel_Restored(null, null);

            // Hook up panel events
            panel.DragStarted -= DragDockPanel_DragStarted;
            panel.DragFinished -= DragDockPanel_DragFinished;
            panel.DragMoved -= DragDockPanel_DragMoved;
            panel.Maximized -= DragDockPanel_Maximized;
            panel.Restored -= DragDockPanel_Restored;
        }
Esempio n. 6
0
        /// <summary>
        /// Prepares a panel for the UI. Override for hooking custom events.
        /// </summary>
        /// <param name="panel">The panel to prepare.</param>
        protected virtual void PreparePanel(DragDockPanel panel)
        {
            // Hook up panel events
            if (panel == null)
                return;

            panel.DragStarted += DragDockPanel_DragStarted;
            panel.DragFinished += DragDockPanel_DragFinished;
            panel.DragMoved += DragDockPanel_DragMoved;
            panel.Maximized += DragDockPanel_Maximized;
            panel.Restored += DragDockPanel_Restored;

            if (panel.PanelState != PanelState.Maximized)
                return;

            maximizedPanel = panel;

            foreach (var dragDockPanel in panels.Where(dragDockPanel => panel != dragDockPanel))
                dragDockPanel.Minimize();
        }