// Constructor public AppSystem(IForegroundWindowHook fgHook, IWindowUpdateHook winHook, IMouseHook msHook) { _state = new InitialState(); _stateContext = new AppStateContext { PathModeLocksToHandle = false, ForegroundHook = fgHook, WindowHook = winHook, MouseHook = msHook, SetCurrentState = (next) => SetCurrentState(next), SendLockStateChange = () => LockStateChanged.Invoke(this, new Events.LockStateChangedEventArgs { IsLocked = IsLocked }), SendPathChange = (path) => PathChanged.Invoke(this, new Events.PathChangedEventArgs { Path = path }), SendTitleChange = (title) => TitleChanged.Invoke(this, new Events.TitleChangedEventArgs { Title = title }), SendDimensionsChange = (dimensions) => DimensionsChanged.Invoke(this, new Events.DimensionsChangedEventArgs { Dimensions = dimensions }), SendForegroundChange = (inForeground) => ForegroundChanged.Invoke(this, new Events.ForegroundStateChangedEventArgs { InForeground = inForeground }) }; fgHook.ForegroundWindowChanged += ForegroundHook_ForegroundWindowChanged; winHook.WindowClosed += WindowHook_WindowClosed; winHook.DimensionsChanged += WindowHook_DimensionsChanged; winHook.TitleChanged += WindowHook_TitleChanged; }
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(); }
public DecayGaugeForm() { InitializeComponent(); Reset(); _timer.Start(); _mouseHook = new WindowsMouseHook(); _mouseHook.InstallHook(); _mouseHook.Activity += new EventHandler <MouseEvent>(_mouseHook_Activity); _keyboardHook = new WindowsKeyboardHook(); _keyboardHook.InstallHook(); _keyboardHook.KeyActivity += new EventHandler <KeyEvent>(_keyboardHook_KeyActivity); }
public void InstallHookTests(TestMethodRecord tmr) { using (IMouseHook mHook = HookFactory.CreateMouseHook()) { TestInstallHook(tmr, mHook, "IMouseHook"); } using (IMouseHookExt mHookExt = HookFactory.CreateMouseHookExt()) { TestInstallHook(tmr, mHookExt, "IMouseHookExt"); } using (IMouseHookLite mHookLite = HookFactory.CreateMouseHookLite()) { TestInstallHook(tmr, mHookLite, "IMouseHookLite"); } }
public void ReferenceCountingTest(TestMethodRecord tmr) { // // In this test we are observing how the various mouse hook // classes are interacting with their implementation classes. They // should add references in their constructor and release them when // disposed. The implementation should only be disposed when the ref // count is zero. // MouseHookTestImpl testImpl = new MouseHookTestImpl(); tmr.RunTest(testImpl.ReferenceCount == 0, "Now references count is 0."); tmr.RunTest(testImpl.Disposed == false, "Not initially disposed."); using (IMouseHook hook1 = HookFactory.CreateMouseHook(testImpl)) { tmr.RunTest(testImpl.ReferenceCount == 1, "Now references count is 1."); tmr.RunTest(testImpl.Disposed == false, "Not disposed."); using (IMouseHookExt hook2 = HookFactory.CreateMouseHookExt(testImpl)) { tmr.RunTest(testImpl.ReferenceCount == 2, "Now references count is 2."); tmr.RunTest(testImpl.Disposed == false, "Not disposed."); using (IMouseHookLite hook3 = HookFactory.CreateMouseHookLite(testImpl)) { tmr.RunTest(testImpl.ReferenceCount == 3, "Now references count is 3."); tmr.RunTest(testImpl.Disposed == false, "Not disposed."); } tmr.RunTest(testImpl.ReferenceCount == 2, "Now references count is 2."); tmr.RunTest(testImpl.Disposed == false, "Not disposed."); } tmr.RunTest(testImpl.ReferenceCount == 1, "Now references count is 1."); tmr.RunTest(testImpl.Disposed == false, "Not disposed."); } tmr.RunTest(testImpl.ReferenceCount == 0, "Now references count is 0."); tmr.RunTest(testImpl.Disposed == true, "Disposed."); }