/// <summary> /// Start drag routine /// </summary> /// <param name="wnd">Floating window to managed</param> /// <param name="point">Current mouse position</param> /// <param name="offset">Offset to be use to set floating window screen position</param> public void StartDrag(FloatingWindow wnd, Point point, Point offset) { _wnd = wnd; _offset = offset; if (_wnd.Width <= _offset.X) { _offset.X = _wnd.Width / 2; } _wnd.Left = point.X - _offset.X; _wnd.Top = point.Y - _offset.Y; if (!_wnd.IsActive) { _wnd.Show(); } foreach (IDropSurface surface in _surfaces) { if (surface.SurfaceRectangle.Contains(point)) { _surfacesWithDragOver.Add(surface); surface.OnDragEnter(point); } } }
/// <summary> /// Show this content /// </summary> /// <param name="dock">New dock border</param> /// <remarks>Show this content in a dockable pane. If no pane was previuosly created, it creates a new one with passed initial dock. </remarks> private void _Show(Dock dock) { FloatingWindow window = _GetRelatedFloatingWnd(); if (null != window) { window.Show(); } else { ContainerPane.UseSpecAllocation = true; ContainerPane.Show(dock); } FireVisibileStateChanged(); }
/// <summary> /// Start drag routine /// </summary> /// <param name="wnd">Floating window to managed</param> /// <param name="point">Current mouse position</param> /// <param name="offset">Offset to be use to set floating window screen position</param> public void StartDrag(FloatingWindow wnd, Point point, Point offset) { _wnd = wnd; _offset = offset; if (_wnd.Width <= _offset.X) _offset.X = _wnd.Width / 2; _wnd.Left = point.X - _offset.X; _wnd.Top = point.Y - _offset.Y; if (!_wnd.IsActive) _wnd.Show(); foreach (IDropSurface surface in _surfaces) { if (surface.SurfaceRectangle.Contains(point)) { _surfacesWithDragOver.Add(surface); surface.OnDragEnter(point); } } }