/// <summary> /// Creates a new <see cref="WindowMonitor"/> instance. /// </summary> public WindowMonitor(int interval) { guiThreadInfo_ = new SafeNativeMethods.GUITHREADINFO(); guiThreadInfo_.cbSize = Marshal.SizeOf(guiThreadInfo_); interval_ = TimeSpan.FromMilliseconds(interval); eventMask_ = GuiEventTypes.All; ResetState_(); }
private bool ReportExpired_(ref IntPtr curwh, IntPtr newwh, GuiEventTypes guiEvent) { if (curwh == newwh) { return(false); } FireWindowEvent_(IntPtr.Zero != curwh, guiEvent, curwh); curwh = newwh; return(IntPtr.Zero != curwh); }
private void FireWindowEvent_(bool pred, GuiEventTypes eventType, IntPtr wh) { if (pred && null != GuiEvent && (0 != (eventMask_ & eventType))) { try { GuiEvent(this, new WindowEventArgs(DateTimeOffset.Now, eventType, wh)); } catch { } } }
/// <summary> /// Creates a new <see cref="KeyboardEventArgs"/> instance. /// </summary> public KeyboardEventArgs( DateTimeOffset timestamp, GuiEventTypes eventType, Keys key, Keys modifiers, char character = (char)0) : base(timestamp, eventType) { Handled = false; Key = key; Modifiers = modifiers; Char = character; }
/// <summary> /// Creates a new <see cref="MouseEventArgs"/> instance. /// </summary> public MouseEventArgs( DateTimeOffset timestamp, GuiEventTypes eventType, MouseButtons button, int clicks, int x, int y, int delta) : base(timestamp, eventType) { Button = button; Clicks = clicks; X = x; Y = y; Delta = delta; }
/// <summary> /// Creates a new <see cref="GuiEventArgs"/> instance. /// </summary> public GuiEventArgs(DateTimeOffset timestamp, GuiEventTypes eventType) { EventType = eventType; Timestamp = timestamp; }
/// <summary> /// Creates a <see cref="WindowEventArgs"/> instance. /// </summary> public WindowEventArgs(DateTimeOffset timestamp, GuiEventTypes eventType, IntPtr handle) : base(timestamp, eventType) { Window = handle; }
/// <summary> /// Returns <c>true</c> if and only if the input event is masked by the event mask. /// </summary> private bool IsEventEnabled_(GuiEventTypes e) { return(e == (e & eventMask_)); }