private void StartSystem() { // Bind handlers Exit += App_Exit; DispatcherUnhandledException += App_DispatcherUnhandledException; // Create system objects foregroundWindowHook = new ForegroundWindowHook(); windowUpdateHook = new WindowUpdateHook(); mouseHook = new ClipMouseHook(); appSystem = new AppSystem(foregroundWindowHook, windowUpdateHook, mouseHook); windowEnumerator = new WindowEnumerator(); // Create components lockingComponent = new LockingComponent(appSystem); toolbarComponent = new ToolbarComponent(); windowListComponent = new WindowListComponent(windowEnumerator); findProgramComponent = new FindProgramComponent(); lockWindowComponent = new LockWindowComponent(appSystem); aboutComponent = new AboutComponent(); settingsComponent = new SettingsComponent(); mainWindowComponent = new MainWindowComponent(appSystem); // Create gui system guiSystem = new GuiSystem(lockingComponent, toolbarComponent, windowListComponent, findProgramComponent, lockWindowComponent, aboutComponent, settingsComponent, mainWindowComponent); guiSystem.Startup(); }
// Constructor public LockWindowComponent(IAppSystem appSystem) { _appSystem = appSystem; _appSystem.PathChanged += AppSystem_PathChanged; _appSystem.ForegroundChanged += AppSystem_ForegroundChanged; _appSystem.TitleChanged += AppSystem_TitleChanged; _appSystem.DimensionsChanged += AppSystem_DimensionsChanged; // Create view model _viewModel = new LockWindow { LeftOffset = 10, TopOffset = 10, RightOffset = 10, BottomOffset = 10 }; // Subscribe to events _viewModel.PropertyChanged += ViewModel_PropertyChanged; // Send padding values to system _appSystem.SetPadding(_viewModel.LeftOffset, _viewModel.TopOffset, -_viewModel.RightOffset, -_viewModel.BottomOffset); }
// Constructor public MainWindowComponent(IAppSystem appSystem) { _appSystem = appSystem; _appSystem.ForegroundChanged += AppSystem_ForegroundChanged; _viewModel = new ViewModels.MainWindow(); }
// Constructor public LockingComponent(IAppSystem appSystem) { _appSystem = appSystem; _appSystem.LockStateChanged += AppSystem_LockStateChanged; }