<s> from AppKit import * <EOL> from Carbon . Events import cmdKey , controlKey , shiftKey , optionKey <EOL> virtualKeyCodes = { <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" <EOL> "<STR_LIT:a>" : <NUM_LIT:0> , <EOL> "<STR_LIT:s>" : <NUM_LIT:1> , <EOL> "<STR_LIT:d>" : <NUM_LIT:2> , <EOL> "<STR_LIT:f>" : <NUM_LIT:3> , <EOL> "<STR_LIT:h>" : <NUM_LIT:4> , <EOL> "<STR_LIT:g>" : <NUM_LIT:5> , <EOL> "<STR_LIT:z>" : <NUM_LIT:6> , <EOL> "<STR_LIT:x>" : <NUM_LIT:7> , <EOL> "<STR_LIT:c>" : <NUM_LIT:8> , <EOL> "<STR_LIT:v>" : <NUM_LIT:9> , <EOL> "<STR_LIT:b>" : <NUM_LIT:11> , <EOL> "<STR_LIT:q>" : <NUM_LIT:12> , <EOL> "<STR_LIT:w>" : <NUM_LIT> , <EOL> "<STR_LIT:e>" : <NUM_LIT> , <EOL> "<STR_LIT:r>" : <NUM_LIT:15> , <EOL> "<STR_LIT:y>" : <NUM_LIT:16> , <EOL> "<STR_LIT:t>" : <NUM_LIT> , <EOL> "<STR_LIT:1>" : <NUM_LIT> , <EOL> "<STR_LIT:2>" : <NUM_LIT> , <EOL> "<STR_LIT:3>" : <NUM_LIT:20> , <EOL> "<STR_LIT:4>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT:5>" : <NUM_LIT> , <EOL> "<STR_LIT:=>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT:->" : <NUM_LIT> , <EOL> "<STR_LIT:_>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT:0>" : <NUM_LIT> , <EOL> "<STR_LIT:]>" : <NUM_LIT:30> , <EOL> "<STR_LIT:}>" : <NUM_LIT:30> , <EOL> "<STR_LIT:o>" : <NUM_LIT> , <EOL> "<STR_LIT:u>" : <NUM_LIT:32> , <EOL> "<STR_LIT:[>" : <NUM_LIT> , <EOL> "<STR_LIT:{>" : <NUM_LIT> , <EOL> "<STR_LIT:i>" : <NUM_LIT> , <EOL> "<STR_LIT:p>" : <NUM_LIT> , <EOL> "<STR_LIT:\n>" : <NUM_LIT> , <EOL> "<STR_LIT:l>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT:'>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT:k>" : <NUM_LIT> , <EOL> "<STR_LIT:;>" : <NUM_LIT> , <EOL> "<STR_LIT::>" : <NUM_LIT> , <EOL> "<STR_LIT:\\>" : <NUM_LIT> , <EOL> "<STR_LIT:|>" : <NUM_LIT> , <EOL> "<STR_LIT:U+002C>" : <NUM_LIT> , <EOL> "<STR_LIT:<>" : <NUM_LIT> , <EOL> "<STR_LIT:/>" : <NUM_LIT> , <EOL> "<STR_LIT:n>" : <NUM_LIT> , <EOL> "<STR_LIT:m>" : <NUM_LIT> , <EOL> "<STR_LIT:.>" : <NUM_LIT> , <EOL> "<STR_LIT:>>" : <NUM_LIT> , <EOL> "<STR_LIT:\t>" : <NUM_LIT> , <EOL> "<STR_LIT:U+0020>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT:50> , <EOL> "<STR_LIT>" : <NUM_LIT:50> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT:100> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT:end>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT:left>" : <NUM_LIT> , <EOL> "<STR_LIT:right>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> , <EOL> "<STR_LIT>" : <NUM_LIT> <EOL> } <EOL> def hotKeyToVirtualCodes ( name ) : <EOL> flags = <NUM_LIT:0> <EOL> parts = name . split ( "<STR_LIT:+>" ) <EOL> for part in parts [ <NUM_LIT:0> : - <NUM_LIT:1> ] : <EOL> if part == "<STR_LIT>" : <EOL> flags |= cmdKey <EOL> elif part == "<STR_LIT>" : <EOL> flags |= controlKey <EOL> elif part == "<STR_LIT>" : <EOL> flags |= shiftKey <EOL> elif part == "<STR_LIT>" or part == "<STR_LIT>" : <EOL> flags |= optionKey <EOL> code = virtualKeyCodes [ parts [ - <NUM_LIT:1> ] . lower ( ) ] <EOL> return code , flags <EOL> def hotKeyToPrettyName ( name ) : <EOL> flags = <NUM_LIT:0> <EOL> parts = name . split ( "<STR_LIT:+>" ) <EOL> for part in parts [ <NUM_LIT:0> : - <NUM_LIT:1> ] : <EOL> if part == "<STR_LIT>" : <EOL> flags |= NSCommandKeyMask <EOL> elif part == "<STR_LIT>" : <EOL> flags |= NSControlKeyMask <EOL> elif part == "<STR_LIT>" : <EOL> flags |= NSShiftKeyMask <EOL> elif part == "<STR_LIT>" or part == "<STR_LIT>" : <EOL> flags |= NSOptionKeyMask <EOL> char = parts [ - <NUM_LIT:1> ] . upper ( ) <EOL> return char , flags </s>
