Exemple #1
0
        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);
     }
 }
Exemple #3
0
        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);
        }
Exemple #4
0
        /*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);
        }
Exemple #6
0
 bool MustCollapseExpandWithMove(DockName dock)
 {
     return(dock == DockName.Right || dock == DockName.Bottom);
 }