Exemplo n.º 1
0
        /// <summary>
        /// Resets all fields.
        /// </summary>
        private void Reset()
        {
            Debug.Assert(Mouse.Captured == null);
            Debug.Assert(_borderDockIndicators == null);
            Debug.Assert(_paneDockIndicators == null);
            Debug.Assert(
                _dockStrategy == null || !_dockStrategy.DockControl.GetDockElements().OfType <DockTabItemProxy>().Any(),
                "All item proxies should have been removed.");

            _dockStrategy = null;
            _draggedItems.Clear();
            _activeItem           = null;
            _floatWindow          = null;
            _targetDockTabPane    = null;
            _layoutChanged        = false;
            _initialMousePosition = new Point(double.NaN, double.NaN);
            _dragDeltaExceeded    = false;
            _mouseOffset          = new Vector(double.NaN, double.NaN);
            _initialSize          = new Size(double.NaN, double.NaN);
            _canFloat             = true;
            _originalDockState    = DockState.Hide;
            _originalFloatWindow  = null;
            _originalFloatLeft    = 0;
            _originalFloatTop     = 0;
        }
Exemplo n.º 2
0
 private void BackupFloatWindowPosition()
 {
     if (_floatWindow != null)
     {
         _originalFloatWindow = _floatWindow.GetViewModel();
         _originalFloatLeft   = _originalFloatWindow.Left;
         _originalFloatTop    = _originalFloatWindow.Top;
     }
 }
Exemplo n.º 3
0
        private FloatWindow GetView(IFloatWindow viewModel)
        {
            for (int i = 0; i < _floatWindows.Count; i++)
            {
                if (_floatWindows[i].DataContext == viewModel)
                {
                    return(_floatWindows[i]);
                }
            }

            return(null);
        }
Exemplo n.º 4
0
            public SerializationContext(IDockControl dockControl)
            {
                Debug.Assert(dockControl != null);
                Debug.Assert(dockControl.DockStrategy != null);

                DockControl = dockControl;

                var dockStrategy = dockControl.DockStrategy;

                DefaultFloatWindow    = dockStrategy.CreateFloatWindow();
                DefaultDockAnchorPane = dockStrategy.CreateDockAnchorPane();
                DefaultDockSplitPane  = dockStrategy.CreateDockSplitPane();
                DefaultDockTabPane    = dockStrategy.CreateDockTabPane();
            }
        /// <summary>
        /// Gets the <see cref="FloatWindow"/> (view) for the <see cref="IFloatWindow"/>
        /// (view-model).
        /// </summary>
        /// <param name="viewModel">The <see cref="IFloatWindow"/>.</param>
        /// <returns>The <see cref="FloatWindow"/>.</returns>
        private FloatWindow GetFloatWindow(IFloatWindow viewModel)
        {
            Debug.Assert(_dockControl != null);
            Debug.Assert(viewModel != null);

            _dockControl.UpdateFloatWindows();
            for (int i = 0; i < _dockControl.FloatWindows.Count; i++)
            {
                var floatWindow = _dockControl.FloatWindows[i];
                if (floatWindow.GetViewModel() == viewModel)
                {
                    return(floatWindow);
                }
            }

            return(null);
        }
Exemplo n.º 6
0
        private static XElement Save(SerializationContext context, IFloatWindow floatWindow)
        {
            if (floatWindow == null)
            {
                return(null);
            }

            if (!ContainsItemsToSave(context, floatWindow.RootPane))
            {
                return(null);
            }

            var xElement = new XElement("FloatWindow");

            if (!floatWindow.Left.Equals(context.DefaultFloatWindow.Left))
            {
                xElement.Add(new XAttribute("Left", floatWindow.Left));
            }
            if (!floatWindow.Left.Equals(context.DefaultFloatWindow.Top))
            {
                xElement.Add(new XAttribute("Top", floatWindow.Top));
            }
            if (!floatWindow.Left.Equals(context.DefaultFloatWindow.Width))
            {
                xElement.Add(new XAttribute("Width", floatWindow.Width));
            }
            if (!floatWindow.Left.Equals(context.DefaultFloatWindow.Height))
            {
                xElement.Add(new XAttribute("Height", floatWindow.Height));
            }
            if (floatWindow.WindowState != context.DefaultFloatWindow.WindowState)
            {
                xElement.Add(new XAttribute("WindowState", floatWindow.WindowState));
            }

            xElement.Add(Save(context, floatWindow.RootPane));

            return(xElement);
        }
        /// <summary>
        /// Gets the <see cref="FloatWindow"/> (view) for the <see cref="IFloatWindow"/>
        /// (view-model).
        /// </summary>
        /// <param name="viewModel">The <see cref="IFloatWindow"/>.</param>
        /// <returns>The <see cref="FloatWindow"/>.</returns>
        private FloatWindow GetFloatWindow(IFloatWindow viewModel)
        {
            Debug.Assert(_dockControl != null);
            Debug.Assert(viewModel != null);

            _dockControl.UpdateFloatWindows();
            for (int i = 0; i < _dockControl.FloatWindows.Count; i++)
            {
                var floatWindow = _dockControl.FloatWindows[i];
                if (floatWindow.GetViewModel() == viewModel)
                    return floatWindow;
            }

            return null;
        }
Exemplo n.º 8
0
 /// <inheritdoc/>
 public override bool CanClose(IFloatWindow floatWindow)
 {
     // Optional: Handle CanClose for FloatWindow with multiple documents.
     return(base.CanClose(floatWindow));
 }
Exemplo n.º 9
0
            public SerializationContext(IDockControl dockControl)
            {
                Debug.Assert(dockControl != null);
                Debug.Assert(dockControl.DockStrategy != null);

                DockControl = dockControl;

                var dockStrategy = dockControl.DockStrategy;
                DefaultFloatWindow = dockStrategy.CreateFloatWindow();
                DefaultDockAnchorPane = dockStrategy.CreateDockAnchorPane();
                DefaultDockSplitPane = dockStrategy.CreateDockSplitPane();
                DefaultDockTabPane = dockStrategy.CreateDockTabPane();
            }
Exemplo n.º 10
0
        private static XElement Save(SerializationContext context, IFloatWindow floatWindow)
        {
            if (floatWindow == null)
                return null;

            if (!ContainsItemsToSave(context, floatWindow.RootPane))
                return null;

            var xElement = new XElement("FloatWindow");

            if (!floatWindow.Left.Equals(context.DefaultFloatWindow.Left))
                xElement.Add(new XAttribute("Left", floatWindow.Left));
            if (!floatWindow.Left.Equals(context.DefaultFloatWindow.Top))
                xElement.Add(new XAttribute("Top", floatWindow.Top));
            if (!floatWindow.Left.Equals(context.DefaultFloatWindow.Width))
                xElement.Add(new XAttribute("Width", floatWindow.Width));
            if (!floatWindow.Left.Equals(context.DefaultFloatWindow.Height))
                xElement.Add(new XAttribute("Height", floatWindow.Height));
            if (floatWindow.WindowState != context.DefaultFloatWindow.WindowState)
                xElement.Add(new XAttribute("WindowState", floatWindow.WindowState));

            xElement.Add(Save(context, floatWindow.RootPane));

            return xElement;
        }
Exemplo n.º 11
0
        //--------------------------------------------------------------
        /// <summary>
        /// Resets all fields.
        /// </summary>
        private void Reset()
        {
            Debug.Assert(Mouse.Captured == null);
            Debug.Assert(_borderDockIndicators == null);
            Debug.Assert(_paneDockIndicators == null);
            Debug.Assert(
                _dockStrategy == null || !_dockStrategy.DockControl.GetDockElements().OfType<DockTabItemProxy>().Any(),
                "All item proxies should have been removed.");

            _dockStrategy = null;
            _draggedItems.Clear();
            _activeItem = null;
            _floatWindow = null;
            _targetDockTabPane = null;
            _layoutChanged = false;
            _initialMousePosition = new Point(double.NaN, double.NaN);
            _dragDeltaExceeded = false;
            _mouseOffset = new Vector(double.NaN, double.NaN);
            _initialSize = new Size(double.NaN, double.NaN);
            _canFloat = true;
            _originalDockState = DockState.Hide;
            _originalFloatWindow = null;
            _originalFloatLeft = 0;
            _originalFloatTop = 0;
        }
Exemplo n.º 12
0
 private void BackupFloatWindowPosition()
 {
     if (_floatWindow != null)
     {
         _originalFloatWindow = _floatWindow.GetViewModel();
         _originalFloatLeft = _originalFloatWindow.Left;
         _originalFloatTop = _originalFloatWindow.Top;
     }
 }
Exemplo n.º 13
0
        private FloatWindow GetView(IFloatWindow viewModel)
        {
            for (int i = 0; i < _floatWindows.Count; i++)
                if (_floatWindows[i].DataContext == viewModel)
                    return _floatWindows[i];

            return null;
        }