diff options
| author | Vadim Shpakovski | 2012-08-25 23:42:19 +0300 | 
|---|---|---|
| committer | Vadim Shpakovski | 2012-08-25 23:42:19 +0300 | 
| commit | 11dd71d546a15a8418176f0c0f245833be8d1fa2 (patch) | |
| tree | a7c9db444b3c5f66a8bb44aa12a6df7c062795dc | |
| parent | e5a490c0fc0c6dd85a8254d8418384eef5a54cc7 (diff) | |
| download | MASShortcut-11dd71d546a15a8418176f0c0f245833be8d1fa2.tar.bz2 | |
Allows support for Function keys in shortcuts.
| -rw-r--r-- | MASShortcut.h | 2 | ||||
| -rw-r--r-- | MASShortcut.m | 16 | ||||
| -rw-r--r-- | MASShortcutView.m | 2 | 
3 files changed, 10 insertions, 10 deletions
| diff --git a/MASShortcut.h b/MASShortcut.h index 828769d..02b3fb6 100644 --- a/MASShortcut.h +++ b/MASShortcut.h @@ -40,7 +40,7 @@ enum {  @property (nonatomic, readonly) NSString *modifierFlagsString;  @property (nonatomic, readonly) NSData *data;  @property (nonatomic, readonly) BOOL shouldBypass; -@property (nonatomic, readonly) BOOL hasRequiredModifierFlags; +@property (nonatomic, readonly, getter = isValid) BOOL valid;  - (id)initWithKeyCode:(NSUInteger)code modifierFlags:(NSUInteger)flags; diff --git a/MASShortcut.m b/MASShortcut.m index 5915d5d..49fece4 100644 --- a/MASShortcut.m +++ b/MASShortcut.m @@ -202,19 +202,19 @@ NSString *const kMASShortcutModifierFlags = @"ModifierFlags";      return (self.modifierFlags == NSCommandKeyMask) && ([codeString isEqualToString:@"W"] || [codeString isEqualToString:@"Q"]);  } -- (BOOL)hasRequiredModifierFlags +- (BOOL)isValid  {      BOOL hasFlags = (_modifierFlags > 0);      BOOL hasCommand = ((_modifierFlags & NSCommandKeyMask) > 0);      BOOL hasControl = ((_modifierFlags & NSControlKeyMask) > 0);      BOOL hasOption = ((_modifierFlags & NSAlternateKeyMask) > 0); -    BOOL isSpecial = ((_keyCode == kVK_Space) || (_keyCode == kVK_Escape) || (_keyCode == kVK_Return) || -                      (_keyCode == kVK_F1) || (_keyCode == kVK_F2) || (_keyCode == kVK_F3) || (_keyCode == kVK_F4) || -                      (_keyCode == kVK_F5) || (_keyCode == kVK_F6) || (_keyCode == kVK_F7) || (_keyCode == kVK_F8) || -                      (_keyCode == kVK_F9) || (_keyCode == kVK_F10) || (_keyCode == kVK_F11) || (_keyCode == kVK_F12) || -                      (_keyCode == kVK_F13) || (_keyCode == kVK_F14) || (_keyCode == kVK_F15) || (_keyCode == kVK_F16) || -                      (_keyCode == kVK_F17) || (_keyCode == kVK_F18) || (_keyCode == kVK_F19) || (_keyCode == kVK_F20)); -    return (hasFlags && (hasCommand || hasControl || (hasOption && isSpecial))); +    BOOL isFunction = ((_keyCode == kVK_F1) || (_keyCode == kVK_F2) || (_keyCode == kVK_F3) || (_keyCode == kVK_F4) || +                       (_keyCode == kVK_F5) || (_keyCode == kVK_F6) || (_keyCode == kVK_F7) || (_keyCode == kVK_F8) || +                       (_keyCode == kVK_F9) || (_keyCode == kVK_F10) || (_keyCode == kVK_F11) || (_keyCode == kVK_F12) || +                       (_keyCode == kVK_F13) || (_keyCode == kVK_F14) || (_keyCode == kVK_F15) || (_keyCode == kVK_F16) || +                       (_keyCode == kVK_F17) || (_keyCode == kVK_F18) || (_keyCode == kVK_F19) || (_keyCode == kVK_F20)); +    BOOL isSpecial = ((_keyCode == kVK_Space) || (_keyCode == kVK_Escape) || (_keyCode == kVK_Return)); +    return ((hasFlags && (hasCommand || hasControl || (hasOption && isSpecial))) || isFunction);  }  - (BOOL)isKeyEquivalent:(NSString *)keyEquivalent flags:(NSUInteger)flags takenInMenu:(NSMenu *)menu error:(NSError **)outError diff --git a/MASShortcutView.m b/MASShortcutView.m index 063f249..a6862fa 100644 --- a/MASShortcutView.m +++ b/MASShortcutView.m @@ -320,7 +320,7 @@ void *kUserDataHint = &kUserDataHint;              else {                  // Verify possible shortcut                  if (shortcut.keyCodeString.length > 0) { -                    if (shortcut.hasRequiredModifierFlags) { +                    if (shortcut.valid) {                          // Verify that shortcut is not used                          NSError *error = nil;                          if ([shortcut isTakenError:&error]) { | 
