void CheckIsDocking(POINT p) { if (!IsDockableEnabled) { DockingScreen = null; IsDockable = false; return; } var(dock, scr) = GetDockInfos(p); if (!IsDocked && (AllowedDocks.Contains(dock) || dock == DockName.None)) { DockingDock = dock; if (dock != DockName.None) { IsDockable = true; DockingScreen = scr; } else { DockingScreen = null; IsDockable = false; } } }
public void AttachToDock( DockName dock, ScreenInfo dockScreen = null) { if (dockScreen == null) { dockScreen = DisplayDevices .GetScreensInfos() .Where(x => x.IsPrimary) .FirstOrDefault(); } if (dockScreen != null) { _behavior.AttachToDock(dock, dockScreen); } }
public DockDirection GetDockDirection(DockName dock) { switch (dock) { case DockName.Left: case DockName.Right: return(DockDirection.Horizontal); case DockName.Top: case DockName.Bottom: return(DockDirection.Vertical); case DockName.None: return(DockDirection.None); } return(DockDirection.None); }
/*static ObservableCollection<DesktopPanelBaseViewModel> PanelsViewModels * = new ObservableCollection<DesktopPanelBaseViewModel>(); */ public static DesktopPanelBase AddDesktopPanel( DockName dock = DockName.Left, ScreenInfo screen = null) { var panel = new DesktopPanelBase(); PanelsViewModels.Add(panel.ViewModel); if (dock != DockName.None) { void attachMethod(object o, DependencyPropertyChangedEventArgs e) { panel.IsVisibleChanged -= attachMethod; panel.ViewModel.AttachToDock(dock, screen); } panel.IsVisibleChanged += attachMethod; } return(panel); }
public static DesktopPanelBase AddDesktopPanel( DesktopPanelBase panel = null, DockName dock = DockName.None, ScreenInfo screen = null, bool isPined = false, bool isCollapsed = false) { if (panel == null) { panel = new DesktopPanelBase(); } DesktopPanelToolViewModel .PanelsViewModels .Add(panel.ViewModel); if (dock != DockName.None) { void attachMethod(object o, DependencyPropertyChangedEventArgs e) { panel.IsVisibleChanged -= attachMethod; panel.ViewModel.AttachToDock( dock, screen); if (isPined) { panel.ViewModel.Pin(); } if (isCollapsed) { panel.ViewModel.Collapse(); } } panel.IsVisibleChanged += attachMethod; } return(panel); }
bool MustCollapseExpandWithMove(DockName dock) { return(dock == DockName.Right || dock == DockName.Bottom); }