| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 | #import <Carbon/Carbon.h>
#import <AppKit/AppKit.h>
#import "MASKeyCodes.h"
// These glyphs are missed in Carbon.h
enum {
    kMASShortcutGlyphEject = 0x23CF,
    kMASShortcutGlyphClear = 0x2715,
    kMASShortcutGlyphDeleteLeft = 0x232B,
    kMASShortcutGlyphDeleteRight = 0x2326,
    kMASShortcutGlyphLeftArrow = 0x2190,
    kMASShortcutGlyphRightArrow = 0x2192,
    kMASShortcutGlyphUpArrow = 0x2191,
    kMASShortcutGlyphDownArrow = 0x2193,
    kMASShortcutGlyphEscape = 0x238B,
    kMASShortcutGlyphHelp = 0x003F,
    kMASShortcutGlyphPageDown = 0x21DF,
    kMASShortcutGlyphPageUp = 0x21DE,
    kMASShortcutGlyphTabRight = 0x21E5,
    kMASShortcutGlyphReturn = 0x2305,
    kMASShortcutGlyphReturnR2L = 0x21A9,
    kMASShortcutGlyphPadClear = 0x2327,
    kMASShortcutGlyphNorthwestArrow = 0x2196,
    kMASShortcutGlyphSoutheastArrow = 0x2198,
};
NS_INLINE NSString* NSStringFromMASKeyCode(unsigned short ch)
{
    return [NSString stringWithFormat:@"%C", ch];
}
NS_INLINE NSUInteger MASPickCocoaModifiers(NSUInteger flags)
{
    return (flags & (NSEventModifierFlagControl | NSEventModifierFlagShift | NSEventModifierFlagOption | NSEventModifierFlagCommand));
}
NS_INLINE UInt32 MASCarbonModifiersFromCocoaModifiers(NSUInteger cocoaFlags)
{
    return
          (cocoaFlags & NSEventModifierFlagCommand ? cmdKey : 0)
        | (cocoaFlags & NSEventModifierFlagOption ? optionKey : 0)
        | (cocoaFlags & NSEventModifierFlagControl ? controlKey : 0)
        | (cocoaFlags & NSEventModifierFlagShift ? shiftKey : 0);
}
 |