public bool ShortcutValidator(SRValidator aValidator, ushort aKeyCode, NSEventModifierMask aFlags, out string outReason) { outReason = string.Empty; var recorder = View.Window.FirstResponder as SRRecorderControl; if (recorder == null) { return(false); } var shortcut = CFunctions.SRShortcutWithCocoaModifierFlagsAndKeyCode(aFlags, aKeyCode); if (IsTaken(pingShortcutRecorder, shortcut) || IsTaken(globalPingShortcutRecorder, shortcut) || IsTaken(pingItemShortcutRecorder, shortcut)) { outReason = "it's already used. To use this shortcut, first remove or change the other shortcut"; return(true); } else { return(false); } }
public override void AwakeFromNib() { base.AwakeFromNib(); // ensure we can safely change shortcuts without executing other bound actions UnbindGlobalShortcuts(); Level = NSWindowLevel.ModalPanel; NSWindow.Notifications.ObserveWillClose(OnClose); _settings = new Settings(); // setup shortcut recorders _validator = new SRValidator(this); _controlDelegate = new ShortcutRecorderDelegate(_validator, x => PresentError(x)); WdgRecorderScanSelect.Delegate = _controlDelegate; WdgRecorderScanClick.Delegate = _controlDelegate; var defaults = NSUserDefaultsController.SharedUserDefaultsController; WdgRecorderScanSelect.Bind(ShortcutRecorder.Constants.NSValueBinding, defaults, Constants.KEY_HOTKEY_SCAN_SELECT, null); WdgRecorderScanClick.Bind(ShortcutRecorder.Constants.NSValueBinding, defaults, Constants.KEY_HOTKEY_SCAN_CLICK, null); // setup settings BtnResultsClipboard.State = _settings.ShouldOutputScanResultsToClipboard ? NSCellStateValue.On : NSCellStateValue.Off; BtnResultsNotificationCenter.State = _settings.ShouldOutputScanResultsToNotificationCenter ? NSCellStateValue.On : NSCellStateValue.Off; _btnResultsClipboardObserver = BtnResultsClipboard.AddObserver(Constants.KEY_CHECKBOX_CHANGED, NSKeyValueObservingOptions.Initial, OnCheckboxChanged); _btnResultsNotificationCenterObserver = BtnResultsNotificationCenter.AddObserver(Constants.KEY_CHECKBOX_CHANGED, NSKeyValueObservingOptions.Initial, OnCheckboxChanged); }
public override void AwakeFromNib() { base.AwakeFromNib(); _validator = new SRValidator(this); _controlDelegate = new MySRRecorderControlDelegate(_validator, x => PresentError(x)); pingButton.Activated += PingButton_Activated; pingButton.BindHotKey(NSUserDefaultsController.SharedUserDefaultsController, "values.ping"); pingShortcutRecorder.Delegate = _controlDelegate; globalPingShortcutRecorder.Delegate = _controlDelegate; pingItemShortcutRecorder.Delegate = _controlDelegate; var defaults = NSUserDefaultsController.SharedUserDefaultsController; pingShortcutRecorder.Bind(Constants.NSValueBinding, defaults, "values.ping", null); pingShortcutRecorder.Bind(Constants.NSEnabledBinding, defaults, "values.isPingItemEnabled", null); pingShortcutRecorder.SetAllowedModifierFlags( newAllowedModifierFlags: NSEventModifierMask.ShiftKeyMask | NSEventModifierMask.AlternateKeyMask | NSEventModifierMask.CommandKeyMask, newRequiredModifierFlags: (NSEventModifierMask)0, newAllowsEmptyModifierFlags: true); globalPingShortcutRecorder.Bind(Constants.NSValueBinding, defaults, "values.globalPing", null); pingItemShortcutRecorder.Bind(Constants.NSValueBinding, defaults, "values.pingItem", null); defaults.AddObserver(this, "values.globalPing", NSKeyValueObservingOptions.Initial, IntPtr.Zero); }
public bool ShortcutValidator(SRValidator aValidator, ushort aKeyCode, NSEventModifierMask aFlags, out string outReason) { outReason = string.Empty; if (!(FirstResponder is SRRecorderControl recorder)) { return(false); } var shortcut = CFunctions.SRShortcutWithCocoaModifierFlagsAndKeyCode(aFlags, aKeyCode); if (IsTaken(WdgRecorderScanSelect, shortcut) || IsTaken(WdgRecorderScanClick, shortcut)) { outReason = "it's already used. To use this shortcut, first remove or change the other shortcut"; return(true); } return(false); }
public bool ShortcutValidatorShouldCheckMenu(SRValidator aValidator) { return(true); }
public bool ShortcutValidatorShouldUseASCIIStringForKeyCodes(SRValidator aValidator) { return(false); }
public bool ShortcutValidatorShouldCheckSystemShortcuts(SRValidator aValidator) { return(false); }
public MySRRecorderControlDelegate(SRValidator validator, Action <NSError> onError) { _validator = validator; _onError = onError; }
public ShortcutRecorderDelegate(SRValidator validator, Action <NSError> onError) { _validator = validator; _onError = onError; }