@@ -43,9 +43,90 @@ bitflags! {
4343 }
4444}
4545
46+ /// These constants are the virtual keycodes defined originally in
47+ /// Inside Mac Volume V, pg. V-191. They identify physical keys on a
48+ /// keyboard. Those constants with "ANSI" in the name are labeled
49+ /// according to the key position on an ANSI-standard US keyboard.
50+ /// For example, kVK_ANSI_A indicates the virtual keycode for the key
51+ /// with the letter 'A' in the US keyboard layout. Other keyboard
52+ /// layouts may have the 'A' key label on a different physical key;
53+ /// in this case, pressing 'A' will generate a different virtual
54+ /// keycode.
55+ ///
56+ /// [Ref](https://github.com/phracker/MacOSX-SDKs/blob/master/MacOSX10.13.sdk/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Events.h#L197-L261)
57+ #[ repr( C ) ]
58+ pub struct ANSIKeyCode ;
59+ impl KeyCode {
60+ pub const ANSI_A : CGKeyCode = 0x00 ;
61+ pub const ANSI_S : CGKeyCode = 0x01 ;
62+ pub const ANSI_D : CGKeyCode = 0x02 ;
63+ pub const ANSI_F : CGKeyCode = 0x03 ;
64+ pub const ANSI_H : CGKeyCode = 0x04 ;
65+ pub const ANSI_G : CGKeyCode = 0x05 ;
66+ pub const ANSI_Z : CGKeyCode = 0x06 ;
67+ pub const ANSI_X : CGKeyCode = 0x07 ;
68+ pub const ANSI_C : CGKeyCode = 0x08 ;
69+ pub const ANSI_V : CGKeyCode = 0x09 ;
70+ pub const ANSI_B : CGKeyCode = 0x0B ;
71+ pub const ANSI_Q : CGKeyCode = 0x0C ;
72+ pub const ANSI_W : CGKeyCode = 0x0D ;
73+ pub const ANSI_E : CGKeyCode = 0x0E ;
74+ pub const ANSI_R : CGKeyCode = 0x0F ;
75+ pub const ANSI_Y : CGKeyCode = 0x10 ;
76+ pub const ANSI_T : CGKeyCode = 0x11 ;
77+ pub const ANSI_1 : CGKeyCode = 0x12 ;
78+ pub const ANSI_2 : CGKeyCode = 0x13 ;
79+ pub const ANSI_3 : CGKeyCode = 0x14 ;
80+ pub const ANSI_4 : CGKeyCode = 0x15 ;
81+ pub const ANSI_6 : CGKeyCode = 0x16 ;
82+ pub const ANSI_5 : CGKeyCode = 0x17 ;
83+ pub const ANSI_EQUAL : CGKeyCode = 0x18 ;
84+ pub const ANSI_9 : CGKeyCode = 0x19 ;
85+ pub const ANSI_7 : CGKeyCode = 0x1A ;
86+ pub const ANSI_MINUS : CGKeyCode = 0x1B ;
87+ pub const ANSI_8 : CGKeyCode = 0x1C ;
88+ pub const ANSI_0 : CGKeyCode = 0x1D ;
89+ pub const ANSI_RIGHT_BRACKET : CGKeyCode = 0x1E ;
90+ pub const ANSI_O : CGKeyCode = 0x1F ;
91+ pub const ANSI_U : CGKeyCode = 0x20 ;
92+ pub const ANSI_LEFT_BRACKET : CGKeyCode = 0x21 ;
93+ pub const ANSI_I : CGKeyCode = 0x22 ;
94+ pub const ANSI_P : CGKeyCode = 0x23 ;
95+ pub const ANSI_L : CGKeyCode = 0x25 ;
96+ pub const ANSI_J : CGKeyCode = 0x26 ;
97+ pub const ANSI_QUOTE : CGKeyCode = 0x27 ;
98+ pub const ANSI_K : CGKeyCode = 0x28 ;
99+ pub const ANSI_SEMICOLON : CGKeyCode = 0x29 ;
100+ pub const ANSI_BACKSLASH : CGKeyCode = 0x2A ;
101+ pub const ANSI_COMMA : CGKeyCode = 0x2B ;
102+ pub const ANSI_SLASH : CGKeyCode = 0x2C ;
103+ pub const ANSI_N : CGKeyCode = 0x2D ;
104+ pub const ANSI_M : CGKeyCode = 0x2E ;
105+ pub const ANSI_PERIOD : CGKeyCode = 0x2F ;
106+ pub const ANSI_GRAVE : CGKeyCode = 0x32 ;
107+ pub const ANSI_KEYPAD_DECIMAL : CGKeyCode = 0x41 ;
108+ pub const ANSI_KEYPAD_MULTIPLY : CGKeyCode = 0x43 ;
109+ pub const ANSI_KEYPAD_PLUS : CGKeyCode = 0x45 ;
110+ pub const ANSI_KEYPAD_CLEAR : CGKeyCode = 0x47 ;
111+ pub const ANSI_KEYPAD_DIVIDE : CGKeyCode = 0x4B ;
112+ pub const ANSI_KEYPAD_ENTER : CGKeyCode = 0x4C ;
113+ pub const ANSI_KEYPAD_MINUS : CGKeyCode = 0x4E ;
114+ pub const ANSI_KEYPAD_EQUAL : CGKeyCode = 0x51 ;
115+ pub const ANSI_KEYPAD_0 : CGKeyCode = 0x52 ;
116+ pub const ANSI_KEYPAD_1 : CGKeyCode = 0x53 ;
117+ pub const ANSI_KEYPAD_2 : CGKeyCode = 0x54 ;
118+ pub const ANSI_KEYPAD_3 : CGKeyCode = 0x55 ;
119+ pub const ANSI_KEYPAD_4 : CGKeyCode = 0x56 ;
120+ pub const ANSI_KEYPAD_5 : CGKeyCode = 0x57 ;
121+ pub const ANSI_KEYPAD_6 : CGKeyCode = 0x58 ;
122+ pub const ANSI_KEYPAD_7 : CGKeyCode = 0x59 ;
123+ pub const ANSI_KEYPAD_8 : CGKeyCode = 0x5B ;
124+ pub const ANSI_KEYPAD_9 : CGKeyCode = 0x5C ;
125+ }
126+
46127/// Key codes for keys that are independent of keyboard layout.
47128///
48- /// [Ref](https://github.com/phracker/MacOSX-SDKs/blob/master/MacOSX10.13.sdk/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Events.h)
129+ /// [Ref](https://github.com/phracker/MacOSX-SDKs/blob/master/MacOSX10.13.sdk/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Events.h#L266-L313 )
49130#[ repr( C ) ]
50131pub struct KeyCode ;
51132impl KeyCode {
@@ -64,41 +145,63 @@ impl KeyCode {
64145 pub const RIGHT_OPTION : CGKeyCode = 0x3D ;
65146 pub const RIGHT_CONTROL : CGKeyCode = 0x3E ;
66147 pub const FUNCTION : CGKeyCode = 0x3F ;
148+ pub const F17 : CGKeyCode = 0x40 ;
67149 pub const VOLUME_UP : CGKeyCode = 0x48 ;
68150 pub const VOLUME_DOWN : CGKeyCode = 0x49 ;
69151 pub const MUTE : CGKeyCode = 0x4A ;
70- pub const F1 : CGKeyCode = 0x7A ;
71- pub const F2 : CGKeyCode = 0x78 ;
72- pub const F3 : CGKeyCode = 0x63 ;
73- pub const F4 : CGKeyCode = 0x76 ;
152+ pub const F18 : CGKeyCode = 0x4F ;
153+ pub const F19 : CGKeyCode = 0x50 ;
154+ pub const F20 : CGKeyCode = 0x5A ;
74155 pub const F5 : CGKeyCode = 0x60 ;
75156 pub const F6 : CGKeyCode = 0x61 ;
76157 pub const F7 : CGKeyCode = 0x62 ;
158+ pub const F3 : CGKeyCode = 0x63 ;
77159 pub const F8 : CGKeyCode = 0x64 ;
78160 pub const F9 : CGKeyCode = 0x65 ;
79- pub const F10 : CGKeyCode = 0x6D ;
80161 pub const F11 : CGKeyCode = 0x67 ;
81- pub const F12 : CGKeyCode = 0x6F ;
82162 pub const F13 : CGKeyCode = 0x69 ;
163+ pub const F16 : CGKeyCode = 0x6A ;
83164 pub const F14 : CGKeyCode = 0x6B ;
165+ pub const F10 : CGKeyCode = 0x6D ;
166+ pub const F12 : CGKeyCode = 0x6F ;
84167 pub const F15 : CGKeyCode = 0x71 ;
85- pub const F16 : CGKeyCode = 0x6A ;
86- pub const F17 : CGKeyCode = 0x40 ;
87- pub const F18 : CGKeyCode = 0x4F ;
88- pub const F19 : CGKeyCode = 0x50 ;
89- pub const F20 : CGKeyCode = 0x5A ;
90168 pub const HELP : CGKeyCode = 0x72 ;
91169 pub const HOME : CGKeyCode = 0x73 ;
92170 pub const PAGE_UP : CGKeyCode = 0x74 ;
93171 pub const FORWARD_DELETE : CGKeyCode = 0x75 ;
172+ pub const F4 : CGKeyCode = 0x76 ;
94173 pub const END : CGKeyCode = 0x77 ;
174+ pub const F2 : CGKeyCode = 0x78 ;
95175 pub const PAGE_DOWN : CGKeyCode = 0x79 ;
176+ pub const F1 : CGKeyCode = 0x7A ;
96177 pub const LEFT_ARROW : CGKeyCode = 0x7B ;
97178 pub const RIGHT_ARROW : CGKeyCode = 0x7C ;
98179 pub const DOWN_ARROW : CGKeyCode = 0x7D ;
99180 pub const UP_ARROW : CGKeyCode = 0x7E ;
100181}
101182
183+ /// ISO keyboards only
184+ ///
185+ /// [Ref](https://github.com/phracker/MacOSX-SDKs/blob/master/MacOSX10.13.sdk/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Events.h#L318)
186+ #[ repr( C ) ]
187+ pub struct ISOKeyCode ;
188+ impl KeyCode {
189+ pub const ISO_SECTION : CGKeyCode = 0x0A ;
190+ }
191+
192+ /// JIS keyboards only
193+ ///
194+ /// [Ref](https://github.com/phracker/MacOSX-SDKs/blob/master/MacOSX10.13.sdk/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Events.h#L323-L327)
195+ #[ repr( C ) ]
196+ pub struct JISKeyCode ;
197+ impl KeyCode {
198+ pub const JIS_YEN : CGKeyCode = 0x5D ;
199+ pub const JIS_UNDERSCORE : CGKeyCode = 0x5E ;
200+ pub const JIS_KEYPAD_COMMA : CGKeyCode = 0x5F ;
201+ pub const JIS_EISU : CGKeyCode = 0x66 ;
202+ pub const JIS_KANA : CGKeyCode = 0x68 ;
203+ }
204+
102205#[ repr( C ) ]
103206pub struct ScrollEventUnit { }
104207impl ScrollEventUnit {
0 commit comments