aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Shpakovski2012-08-25 23:42:19 +0300
committerVadim Shpakovski2012-08-25 23:42:19 +0300
commit11dd71d546a15a8418176f0c0f245833be8d1fa2 (patch)
treea7c9db444b3c5f66a8bb44aa12a6df7c062795dc
parente5a490c0fc0c6dd85a8254d8418384eef5a54cc7 (diff)
downloadMASShortcut-11dd71d546a15a8418176f0c0f245833be8d1fa2.tar.bz2
Allows support for Function keys in shortcuts.
-rw-r--r--MASShortcut.h2
-rw-r--r--MASShortcut.m16
-rw-r--r--MASShortcutView.m2
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]) {