public VirtualDesktopCreater(IServiceProvider service)// IFocusTracker focusTracker, IFocusHandler focusHandler, IWindowEventHandler windowHandler, IWindowTracker windowTracker, IPInvokeHandler pinvokeHandler, IContainerNodeCreater containerCreater) { this.service = service; this.focusHandler = service.GetRequiredService <IFocusHandler>(); this.windowHandler = service.GetRequiredService <IWindowEventHandler>(); this.windowTracker = service.GetRequiredService <IWindowTracker>(); this.pinvokeHandler = service.GetRequiredService <IPInvokeHandler>(); this.containerCreater = service.GetRequiredService <IContainerNodeCreater>(); this.screenCreater = service.GetRequiredService <IScreenNodeCreater>(); this.signalHandler = service.GetRequiredService <ISignalHandler>(); }
public StartupHandler(IScreens screensInfo, IVirtualDesktopCollection virtualDesktops, IContainerNodeCreater containerNodeCreator, IVirtualDesktopCreater virtualDesktopCreator, IScreenNodeCreater screenNodeCreator, ISignalHandler signal, IKeyHandler keyHandler, ICommandHelper commandHelper, IWindowTracker windowTracker, IPInvokeHandler pinvokeHandler) { this.screensInfo = screensInfo; this.desktops = virtualDesktops; this.containerNodeCreator = containerNodeCreator; this.signal = signal; this.keyHandler = keyHandler; this.commandHelper = commandHelper; this.windowTracker = windowTracker; this.pinvokeHandler = pinvokeHandler; this.HandlesToIgnore = new List <IntPtr>(); var result = screensInfo.AllScreens.GetOrderRect(); _screens = result.rect.ToArray(); for (var i = 0; i < desktops.Count; i++) { var screensToAdd = _screens.Select((rect, i) => screenNodeCreator.Create("Screen" + i, rect, dir: result.direction)).ToArray(); desktops[i] = virtualDesktopCreator.Create(i, rect: _screens.TotalRect(), dir: result.direction, childs: screensToAdd); desktops[i].Hide(); } desktops.Index = 0; desktops.ActiveDesktop.Show(); }