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.