IEnumerable <IDropArea> IOverlayWindowHost.GetDropAreas(LayoutFloatingWindowControl draggingWindow) { if (_dropAreas != null) { return(_dropAreas); } _dropAreas = new List <IDropArea>(); if (draggingWindow.Model is LayoutDocumentFloatingWindow) { return(_dropAreas); } if (Content is FloatingWindowContentHost floatingWindowContentHost) { var rootVisual = floatingWindowContentHost.RootVisual; foreach (var areaHost in rootVisual.FindVisualChildren <LayoutAnchorablePaneControl>()) { _dropAreas.Add(new DropArea <LayoutAnchorablePaneControl>( areaHost, DropAreaType.AnchorablePane)); } foreach (var areaHost in rootVisual.FindVisualChildren <LayoutDocumentPaneControl>()) { _dropAreas.Add(new DropArea <LayoutDocumentPaneControl>( areaHost, DropAreaType.DocumentPane)); } } return(_dropAreas); }
IEnumerable<IDropArea> IOverlayWindowHost.GetDropAreas(LayoutFloatingWindowControl draggingWindow) { if (_dropAreas != null) return _dropAreas; _dropAreas = new List<IDropArea>(); if (draggingWindow.Model is LayoutAnchorableFloatingWindow) return _dropAreas; var floatingWindowContentHost = Content as FloatingWindowContentHost; if (floatingWindowContentHost != null) { var rootVisual = floatingWindowContentHost.RootVisual; foreach (var areaHost in rootVisual.FindVisualChildren<LayoutAnchorablePaneControl>()) { _dropAreas.Add(new DropArea<LayoutAnchorablePaneControl>( areaHost, DropAreaType.AnchorablePane)); } foreach (var areaHost in rootVisual.FindVisualChildren<LayoutDocumentPaneControl>()) { _dropAreas.Add(new DropArea<LayoutDocumentPaneControl>( areaHost, DropAreaType.DocumentPane)); } } return _dropAreas; }
public DragService(LayoutFloatingWindowControl floatingWindow) { _floatingWindow = floatingWindow; _manager = floatingWindow.Model.Root.Manager; GetOverlayWindowHosts(); }
IOverlayWindow IOverlayWindowHost.ShowOverlayWindow(LayoutFloatingWindowControl draggingWindow) { CreateOverlayWindow(); _overlayWindow.Owner = draggingWindow; _overlayWindow.EnableDropTargets(); _overlayWindow.Show(); return(_overlayWindow); }
void IOverlayWindow.DragLeave(LayoutFloatingWindowControl floatingWindow) { Visibility = Visibility.Hidden; _floatingWindow = null; }
void IOverlayWindow.DragEnter(LayoutFloatingWindowControl floatingWindow) { _floatingWindow = floatingWindow; EnableDropTargets(); }
IOverlayWindow IOverlayWindowHost.ShowOverlayWindow(LayoutFloatingWindowControl draggingWindow) { CreateOverlayWindow(); _overlayWindow.Owner = draggingWindow; _overlayWindow.EnableDropTargets(); _overlayWindow.Show(); return _overlayWindow; }
public FloatingWindowContentHost(LayoutFloatingWindowControl owner) { _owner = owner; }
internal void RemoveFloatingWindow(LayoutFloatingWindowControl floatingWindow) { _fwList.Remove(floatingWindow); }
IEnumerable<IDropArea> IOverlayWindowHost.GetDropAreas(LayoutFloatingWindowControl draggingWindow) { if (_areas != null) return _areas; var isDraggingDocuments = draggingWindow.Model is LayoutDocumentFloatingWindow; _areas = new List<IDropArea>(); if (!isDraggingDocuments) { _areas.Add(new DropArea<DockingManager>( this, DropAreaType.DockingManager)); foreach ( var areaHost in this.FindVisualChildren<LayoutAnchorablePaneControl>().Where(areaHost => areaHost.Model.Descendents().Any())) { _areas.Add(new DropArea<LayoutAnchorablePaneControl>( areaHost, DropAreaType.AnchorablePane)); } } foreach (var areaHost in this.FindVisualChildren<LayoutDocumentPaneControl>()) { _areas.Add(new DropArea<LayoutDocumentPaneControl>( areaHost, DropAreaType.DocumentPane)); } foreach (var areaHost in this.FindVisualChildren<LayoutDocumentPaneGroupControl>()) { var documentGroupModel = areaHost.Model as LayoutDocumentPaneGroup; if (documentGroupModel != null && !documentGroupModel.Children.Any(c => c.IsVisible)) { _areas.Add(new DropArea<LayoutDocumentPaneGroupControl>( areaHost, DropAreaType.DocumentPaneGroup)); } } return _areas; }