private void CheckForEmergencyHit(InterceptionEventArgs e) { bool isCtrlDown = this.interceptor.IsKeyDown(e.Device, InterceptionKey.LeftControl) || this.interceptor.IsKeyDown(e.Device, InterceptionKey.RightControl); bool isAltDown = this.interceptor.IsKeyDown(e.Device, InterceptionKey.LeftAlt) || this.interceptor.IsKeyDown(e.Device, InterceptionKey.RightAlt); bool isDeleteDown = this.interceptor.IsKeyDown(e.Device, InterceptionKey.Delete) || this.interceptor.IsKeyDown(e.Device, InterceptionKey.NumpadDelete); if (isCtrlDown && isAltDown && isDeleteDown) { if (this.EmergencyStop != null) { this.EmergencyStop(this, EventArgs.Empty); } this.ResetEmergency(); return; } foreach (var keyInfo in e.KeyInfos) { if (keyInfo.Key == InputHelper.ToInterceptionKey(InputManager.EmergencyLeftKey)) { if (keyInfo.IsDown) { this.emergencyLeftDownCount++; } else { this.emergencyLeftUpCount++; } } else if (keyInfo.Key == InputHelper.ToInterceptionKey(InputManager.EmergencyRightKey)) { if (keyInfo.IsDown) { this.emergencyRightDownCount++; } else { this.emergencyRightUpCount++; } } else { this.ResetEmergency(); return; } } if (this.emergencyLeftDownCount >= 5 && this.emergencyLeftUpCount >= 5) { this.OnEmergencyDetected(InputManager.EmergencyLeftKey); } else if (this.emergencyRightDownCount >= 5 && this.emergencyRightUpCount >= 5) { this.OnEmergencyDetected(InputManager.EmergencyRightKey); } }
private void OnInterceptionInputActivity(object sender, InterceptionEventArgs e) { var action = new Action(() => { foreach (var keyInfo in e.KeyInfos) { var device = InputHelper.ToInputDevice(e.Device); var key = InputHelper.ToInputKey(keyInfo.Key); var args = new InputEventArgs(device, key, keyInfo.IsDown, e.Handled); if (this.InputActivity != null) { this.InputActivity(this, args); e.Handled = args.Handled; } if (!KeysHelper.IsMouseMoveKey(keyInfo.Key)) { var sb = new StringBuilder(this.InputMonitorHistory); sb.AppendLine(args.ToString()); this.InputMonitorHistory = sb.ToString(); } } this.CheckForEmergencyHit(e); }); bool isMouseClick = e.Device.DeviceType == InterceptionDeviceType.Mouse && e.KeyInfos.Any(x => KeysHelper.IsMouseClickKey(x.Key)); // App.IsFocused is maybe too slow and the ui freezes the splitter main window if (isMouseClick && GlobalSettings.IsMainWindowActivated) { this.Dispatcher.BeginInvoke(action); } else { this.Dispatcher.Invoke(action); } if (GlobalSettings.IsMainWindowActivated) { e.Handled = false; } }
public override void OnTargetInitialized(object sender, InterceptionEventArgs eventArgs) { Console.WriteLine("LoggingAspect: Mixin [{0}] initialized for [{1}]", eventArgs.Mixin.GetType().FullName, eventArgs.Target.GetType().FullName); }
public void OnMixinInitialized(object sender, InterceptionEventArgs args) { InitializedCount++; }