git.y1.nz

SameBoy

Accurate GB/GBC emulator
download: https://git.y1.nz/archives/sameboy.tar.gz
README | Files | Log | Refs | LICENSE

Cocoa/NSString+StringForKey.m

      1 #import "NSString+StringForKey.h"
      2 #import "KeyboardShortcutPrivateAPIs.h"
      3 #import <Carbon/Carbon.h>
      4 
      5 @implementation NSString (StringForKey)
      6 
      7 + (NSString *) displayStringForKeyString: (NSString *)key_string
      8 {
      9     return [[NSKeyboardShortcut shortcutWithKeyEquivalent:key_string modifierMask:0] localizedDisplayName];
     10 }
     11 
     12 + (NSString *) displayStringForKeyCode:(unsigned short) keyCode
     13 {
     14     /* These cases are not handled by stringForVirtualKey */
     15     switch (keyCode) {
     16             
     17         case kVK_Home: return @"↖";
     18         case kVK_End: return @"↘";
     19         case kVK_PageUp: return @"⇞";
     20         case kVK_PageDown: return @"⇟";
     21         case kVK_Delete: return @"⌫";
     22         case kVK_ForwardDelete: return @"⌦";
     23         case kVK_ANSI_KeypadEnter: return @"⌤";
     24         case kVK_CapsLock: return @"⇪";
     25         case kVK_Shift: return @"Left ⇧";
     26         case kVK_Control: return @"Left ⌃";
     27         case kVK_Option: return @"Left ⌥";
     28         case kVK_Command: return @"Left ⌘";
     29         case kVK_RightShift: return @"Right ⇧";
     30         case kVK_RightControl: return @"Right ⌃";
     31         case kVK_RightOption: return @"Right ⌥";
     32         case kVK_RightCommand: return @"Right ⌘";
     33         case kVK_Function: return @"fn";
     34             
     35         /* Label Keypad buttons accordingly */
     36         default:
     37             if ((keyCode < kVK_ANSI_Keypad0 || keyCode > kVK_ANSI_Keypad9)) {
     38                 return [NSPrefPaneUtils stringForVirtualKey:keyCode modifiers:0];
     39             }
     40             
     41         case kVK_ANSI_KeypadDecimal: case kVK_ANSI_KeypadMultiply: case kVK_ANSI_KeypadPlus: case kVK_ANSI_KeypadDivide: case kVK_ANSI_KeypadMinus: case kVK_ANSI_KeypadEquals:
     42             return [@"Keypad " stringByAppendingString:[NSPrefPaneUtils stringForVirtualKey:keyCode modifiers:0]];
     43     }
     44 }
     45 
     46 @end

This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.