Update project for OS X 10.10.
[enjoyable.git] / Classes / NJKeyInputField.m
index 02896a8..3cdbd7c 100644 (file)
 
 enum {
     kVK_RightCommand = kVK_Command - 1,
+    kVK_Insert = 0x72,
+    kVK_Power = 0x7f,
+    kVK_ApplicationMenu = 0x6e,
     kVK_MAX = 0xFFFF,
 };
 
 const CGKeyCode NJKeyInputFieldEmpty = kVK_MAX;
 
+@interface NJKeyInputField () <NSTextFieldDelegate>
+@end
+
 @implementation NJKeyInputField {
     NSTextField *field;
     NSImageView *warning;
@@ -49,7 +55,7 @@ const CGKeyCode NJKeyInputFieldEmpty = kVK_MAX;
 
 - (void)clear {
     self.keyCode = NJKeyInputFieldEmpty;
-        [self.delegate keyInputFieldDidClear:self];
+    [self.delegate keyInputFieldDidClear:self];
     [self resignIfFirstResponder];
 }
 
@@ -57,7 +63,7 @@ const CGKeyCode NJKeyInputFieldEmpty = kVK_MAX;
     return self.keyCode != NJKeyInputFieldEmpty;
 }
 
-+ (NSString *)stringForKeyCode:(CGKeyCode)keyCode {
++ (NSString *)displayNameForKeyCode:(CGKeyCode)keyCode {
     switch (keyCode) {
         case kVK_F1: return @"F1";
         case kVK_F2: return @"F2";
@@ -191,7 +197,15 @@ const CGKeyCode NJKeyInputFieldEmpty = kVK_MAX;
             return NSLocalizedString(@"Key Pad ,", @"numeric pad key");
         case kVK_JIS_Eisu: return @"英数";
         case kVK_JIS_Kana: return @"かな";
-
+            
+        case kVK_Power: return @"⌽";
+        case kVK_VolumeUp: return @"🔊";
+        case kVK_VolumeDown: return @"🔉";
+            
+        case kVK_Insert:
+            return NSLocalizedString(@"Insert", "keyboard key");
+        case kVK_ApplicationMenu:
+            return NSLocalizedString(@"Menu", "keyboard key");
 
         case kVK_MAX: // NJKeyInputFieldEmpty
             return @"";
@@ -218,7 +232,7 @@ const CGKeyCode NJKeyInputFieldEmpty = kVK_MAX;
 
 - (void)setKeyCode:(CGKeyCode)keyCode {
     _keyCode = keyCode;
-    field.stringValue = [NJKeyInputField stringForKeyCode:keyCode];
+    field.stringValue = [NJKeyInputField displayNameForKeyCode:keyCode];
 }
 
 - (void)keyDown:(NSEvent *)event {
@@ -253,7 +267,7 @@ static BOOL isValidKeyCode(long code) {
     warning.hidden = YES;
     char *error = NULL;
     const char *s = field.stringValue.UTF8String;
-    long code = strtol(s, &error, 16);
+    short code = (short)strtol(s, &error, 16);
     
     if (!*error && isValidKeyCode(code) && field.stringValue.length) {
         self.keyCode = code;