예제 #1
0
        protected override void CreateComponents()
        {
            RunServiceImpl       = new RunService(RunWindowStrategy.WinForms);
            KeyServiceImpl       = new KeyServiceHotKey(RunServiceImpl);
            RectangleServiceImpl = new RectangleService();
            WindowOsServiceImpl  = new WindowOsService();
            WindowRepositoryImpl = new WindowRepository(new WindowId.WindowIdEqualityComparer());
            ScreenOsServiceImpl  = new ScreenOsService();
            ScreenRepositoryImpl = new ScreenRepository();

            AddComponent(RunService);
            AddComponent(KeyService);
            AddComponent(RectangleService);
            AddComponent(WindowOsService);
            AddComponent(WindowRepository);
            AddComponent(ScreenOsService);
            AddComponent(ScreenRepository);
        }
예제 #2
0
        public async Task StartAsync()
        {
            var screens  = ScreenOsService.GetScreens().OrderBy(s => s.Rectangle.Position.Left).ToList();
            var desktops = await DesktopRepository.GetDesktops();

            var desktop = desktops.First();

            foreach (var screen in screens)
            {
                await ScreenRepository.AddOrUpdateScreen(screen);

                desktop.Screen = screen;

                desktop = await DesktopRepository.GetNext(desktop);
            }
            var windows = WindowOsService.GetWindowsSync();

            foreach (var window in windows)
            {
                await WindowRepository.AddOrUpdateWindow(window);
            }
            ForceLayout();
        }