OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/events/keycodes/keyboard_code_conversion_android.h" | 5 #include "ui/events/keycodes/keyboard_code_conversion_android.h" |
6 | 6 |
7 #include <android/keycodes.h> | 7 #include <android/keycodes.h> |
8 | 8 |
9 namespace ui { | 9 namespace ui { |
10 | 10 |
11 namespace { | |
12 | |
13 // The Android NDK does not provide values for these yet: | |
14 enum { | |
15 AKEYCODE_ESCAPE = 111, | |
16 AKEYCODE_FORWARD_DEL = 112, | |
17 AKEYCODE_CTRL_LEFT = 113, | |
18 AKEYCODE_CTRL_RIGHT = 114, | |
19 AKEYCODE_CAPS_LOCK = 115, | |
20 AKEYCODE_SCROLL_LOCK = 116, | |
21 AKEYCODE_META_LEFT = 117, | |
22 AKEYCODE_META_RIGHT = 118, | |
23 AKEYCODE_BREAK = 121, | |
24 AKEYCODE_MOVE_HOME = 122, | |
25 AKEYCODE_MOVE_END = 123, | |
26 AKEYCODE_INSERT = 124, | |
27 AKEYCODE_MEDIA_PLAY = 126, | |
28 AKEYCODE_MEDIA_PAUSE = 127, | |
29 AKEYCODE_F1 = 131, | |
30 AKEYCODE_F2 = 132, | |
31 AKEYCODE_F3 = 133, | |
32 AKEYCODE_F4 = 134, | |
33 AKEYCODE_F5 = 135, | |
34 AKEYCODE_F6 = 136, | |
35 AKEYCODE_F7 = 137, | |
36 AKEYCODE_F8 = 138, | |
37 AKEYCODE_F9 = 139, | |
38 AKEYCODE_F10 = 140, | |
39 AKEYCODE_F11 = 141, | |
40 AKEYCODE_F12 = 142, | |
41 AKEYCODE_NUM_LOCK = 143, | |
42 AKEYCODE_NUMPAD_0 = 144, | |
43 AKEYCODE_NUMPAD_1 = 145, | |
44 AKEYCODE_NUMPAD_2 = 146, | |
45 AKEYCODE_NUMPAD_3 = 147, | |
46 AKEYCODE_NUMPAD_4 = 148, | |
47 AKEYCODE_NUMPAD_5 = 149, | |
48 AKEYCODE_NUMPAD_6 = 150, | |
49 AKEYCODE_NUMPAD_7 = 151, | |
50 AKEYCODE_NUMPAD_8 = 152, | |
51 AKEYCODE_NUMPAD_9 = 153, | |
52 AKEYCODE_NUMPAD_DIVIDE = 154, | |
53 AKEYCODE_NUMPAD_MULTIPLY = 155, | |
54 AKEYCODE_NUMPAD_SUBTRACT = 156, | |
55 AKEYCODE_NUMPAD_ADD = 157, | |
56 AKEYCODE_NUMPAD_DOT = 158, | |
57 AKEYCODE_VOLUME_MUTE = 164, | |
58 AKEYCODE_CHANNEL_UP = 166, | |
59 AKEYCODE_CHANNEL_DOWN = 167, | |
60 }; | |
61 | |
62 } // namespace | |
63 | |
64 KeyboardCode KeyboardCodeFromAndroidKeyCode(int keycode) { | |
65 // Does not provide all key codes, and does not handle all keys. | |
66 switch (keycode) { | |
67 case AKEYCODE_DEL: | |
68 return VKEY_BACK; | |
69 case AKEYCODE_TAB: | |
70 return VKEY_TAB; | |
71 case AKEYCODE_CLEAR: | |
72 return VKEY_CLEAR; | |
73 case AKEYCODE_DPAD_CENTER: | |
74 case AKEYCODE_ENTER: | |
75 return VKEY_RETURN; | |
76 case AKEYCODE_SHIFT_LEFT: | |
77 return VKEY_LSHIFT; | |
78 case AKEYCODE_SHIFT_RIGHT: | |
79 return VKEY_RSHIFT; | |
80 case AKEYCODE_BACK: | |
81 return VKEY_BROWSER_BACK; | |
82 case AKEYCODE_FORWARD: | |
83 return VKEY_BROWSER_FORWARD; | |
84 case AKEYCODE_SPACE: | |
85 return VKEY_SPACE; | |
86 case AKEYCODE_MOVE_HOME: | |
87 return VKEY_HOME; | |
88 case AKEYCODE_DPAD_LEFT: | |
89 return VKEY_LEFT; | |
90 case AKEYCODE_DPAD_UP: | |
91 return VKEY_UP; | |
92 case AKEYCODE_DPAD_RIGHT: | |
93 return VKEY_RIGHT; | |
94 case AKEYCODE_DPAD_DOWN: | |
95 return VKEY_DOWN; | |
96 case AKEYCODE_0: | |
97 return VKEY_0; | |
98 case AKEYCODE_1: | |
99 return VKEY_1; | |
100 case AKEYCODE_2: | |
101 return VKEY_2; | |
102 case AKEYCODE_3: | |
103 return VKEY_3; | |
104 case AKEYCODE_4: | |
105 return VKEY_4; | |
106 case AKEYCODE_5: | |
107 return VKEY_5; | |
108 case AKEYCODE_6: | |
109 return VKEY_6; | |
110 case AKEYCODE_7: | |
111 return VKEY_7; | |
112 case AKEYCODE_8: | |
113 return VKEY_8; | |
114 case AKEYCODE_9: | |
115 return VKEY_9; | |
116 case AKEYCODE_A: | |
117 return VKEY_A; | |
118 case AKEYCODE_B: | |
119 return VKEY_B; | |
120 case AKEYCODE_C: | |
121 return VKEY_C; | |
122 case AKEYCODE_D: | |
123 return VKEY_D; | |
124 case AKEYCODE_E: | |
125 return VKEY_E; | |
126 case AKEYCODE_F: | |
127 return VKEY_F; | |
128 case AKEYCODE_G: | |
129 return VKEY_G; | |
130 case AKEYCODE_H: | |
131 return VKEY_H; | |
132 case AKEYCODE_I: | |
133 return VKEY_I; | |
134 case AKEYCODE_J: | |
135 return VKEY_J; | |
136 case AKEYCODE_K: | |
137 return VKEY_K; | |
138 case AKEYCODE_L: | |
139 return VKEY_L; | |
140 case AKEYCODE_M: | |
141 return VKEY_M; | |
142 case AKEYCODE_N: | |
143 return VKEY_N; | |
144 case AKEYCODE_O: | |
145 return VKEY_O; | |
146 case AKEYCODE_P: | |
147 return VKEY_P; | |
148 case AKEYCODE_Q: | |
149 return VKEY_Q; | |
150 case AKEYCODE_R: | |
151 return VKEY_R; | |
152 case AKEYCODE_S: | |
153 return VKEY_S; | |
154 case AKEYCODE_T: | |
155 return VKEY_T; | |
156 case AKEYCODE_U: | |
157 return VKEY_U; | |
158 case AKEYCODE_V: | |
159 return VKEY_V; | |
160 case AKEYCODE_W: | |
161 return VKEY_W; | |
162 case AKEYCODE_X: | |
163 return VKEY_X; | |
164 case AKEYCODE_Y: | |
165 return VKEY_Y; | |
166 case AKEYCODE_Z: | |
167 return VKEY_Z; | |
168 case AKEYCODE_VOLUME_DOWN: | |
169 return VKEY_VOLUME_DOWN; | |
170 case AKEYCODE_VOLUME_UP: | |
171 return VKEY_VOLUME_UP; | |
172 case AKEYCODE_MEDIA_NEXT: | |
173 return VKEY_MEDIA_NEXT_TRACK; | |
174 case AKEYCODE_MEDIA_PREVIOUS: | |
175 return VKEY_MEDIA_PREV_TRACK; | |
176 case AKEYCODE_MEDIA_STOP: | |
177 return VKEY_MEDIA_STOP; | |
178 case AKEYCODE_MEDIA_PAUSE: | |
179 return VKEY_MEDIA_PLAY_PAUSE; | |
180 // Colon key. | |
181 case AKEYCODE_SEMICOLON: | |
182 return VKEY_OEM_1; | |
183 case AKEYCODE_COMMA: | |
184 return VKEY_OEM_COMMA; | |
185 case AKEYCODE_MINUS: | |
186 return VKEY_OEM_MINUS; | |
187 case AKEYCODE_EQUALS: | |
188 return VKEY_OEM_PLUS; | |
189 case AKEYCODE_PERIOD: | |
190 return VKEY_OEM_PERIOD; | |
191 case AKEYCODE_SLASH: | |
192 return VKEY_OEM_2; | |
193 case AKEYCODE_LEFT_BRACKET: | |
194 return VKEY_OEM_4; | |
195 case AKEYCODE_BACKSLASH: | |
196 return VKEY_OEM_5; | |
197 case AKEYCODE_RIGHT_BRACKET: | |
198 return VKEY_OEM_6; | |
199 case AKEYCODE_MUTE: | |
200 case AKEYCODE_VOLUME_MUTE: | |
201 return VKEY_VOLUME_MUTE; | |
202 case AKEYCODE_ESCAPE: | |
203 return VKEY_ESCAPE; | |
204 case AKEYCODE_MEDIA_PLAY: | |
205 case AKEYCODE_MEDIA_PLAY_PAUSE: | |
206 return VKEY_MEDIA_PLAY_PAUSE; | |
207 case AKEYCODE_MOVE_END: | |
208 return VKEY_END; | |
209 case AKEYCODE_ALT_LEFT: | |
210 return VKEY_LMENU; | |
211 case AKEYCODE_ALT_RIGHT: | |
212 return VKEY_RMENU; | |
213 case AKEYCODE_GRAVE: | |
214 return VKEY_OEM_3; | |
215 case AKEYCODE_APOSTROPHE: | |
216 return VKEY_OEM_3; | |
217 case AKEYCODE_MEDIA_REWIND: | |
218 return VKEY_OEM_103; | |
219 case AKEYCODE_MEDIA_FAST_FORWARD: | |
220 return VKEY_OEM_104; | |
221 case AKEYCODE_PAGE_UP: | |
222 return VKEY_PRIOR; | |
223 case AKEYCODE_PAGE_DOWN: | |
224 return VKEY_NEXT; | |
225 case AKEYCODE_FORWARD_DEL: | |
226 return VKEY_DELETE; | |
227 case AKEYCODE_CTRL_LEFT: | |
228 return VKEY_LCONTROL; | |
229 case AKEYCODE_CTRL_RIGHT: | |
230 return VKEY_RCONTROL; | |
231 case AKEYCODE_CAPS_LOCK: | |
232 return VKEY_CAPITAL; | |
233 case AKEYCODE_SCROLL_LOCK: | |
234 return VKEY_SCROLL; | |
235 case AKEYCODE_META_LEFT: | |
236 return VKEY_LWIN; | |
237 case AKEYCODE_META_RIGHT: | |
238 return VKEY_RWIN; | |
239 case AKEYCODE_BREAK: | |
240 return VKEY_PAUSE; | |
241 case AKEYCODE_INSERT: | |
242 return VKEY_INSERT; | |
243 case AKEYCODE_F1: | |
244 return VKEY_F1; | |
245 case AKEYCODE_F2: | |
246 return VKEY_F2; | |
247 case AKEYCODE_F3: | |
248 return VKEY_F3; | |
249 case AKEYCODE_F4: | |
250 return VKEY_F4; | |
251 case AKEYCODE_F5: | |
252 return VKEY_F5; | |
253 case AKEYCODE_F6: | |
254 return VKEY_F6; | |
255 case AKEYCODE_F7: | |
256 return VKEY_F7; | |
257 case AKEYCODE_F8: | |
258 return VKEY_F8; | |
259 case AKEYCODE_F9: | |
260 return VKEY_F9; | |
261 case AKEYCODE_F10: | |
262 return VKEY_F10; | |
263 case AKEYCODE_F11: | |
264 return VKEY_F11; | |
265 case AKEYCODE_F12: | |
266 return VKEY_F12; | |
267 case AKEYCODE_NUM_LOCK: | |
268 return VKEY_NUMLOCK; | |
269 case AKEYCODE_NUMPAD_0: | |
270 return VKEY_NUMPAD0; | |
271 case AKEYCODE_NUMPAD_1: | |
272 return VKEY_NUMPAD1; | |
273 case AKEYCODE_NUMPAD_2: | |
274 return VKEY_NUMPAD2; | |
275 case AKEYCODE_NUMPAD_3: | |
276 return VKEY_NUMPAD3; | |
277 case AKEYCODE_NUMPAD_4: | |
278 return VKEY_NUMPAD4; | |
279 case AKEYCODE_NUMPAD_5: | |
280 return VKEY_NUMPAD5; | |
281 case AKEYCODE_NUMPAD_6: | |
282 return VKEY_NUMPAD6; | |
283 case AKEYCODE_NUMPAD_7: | |
284 return VKEY_NUMPAD7; | |
285 case AKEYCODE_NUMPAD_8: | |
286 return VKEY_NUMPAD8; | |
287 case AKEYCODE_NUMPAD_9: | |
288 return VKEY_NUMPAD9; | |
289 case AKEYCODE_NUMPAD_DIVIDE: | |
290 return VKEY_DIVIDE; | |
291 case AKEYCODE_NUMPAD_MULTIPLY: | |
292 return VKEY_MULTIPLY; | |
293 case AKEYCODE_NUMPAD_SUBTRACT: | |
294 return VKEY_SUBTRACT; | |
295 case AKEYCODE_NUMPAD_ADD: | |
296 return VKEY_ADD; | |
297 case AKEYCODE_NUMPAD_DOT: | |
298 return VKEY_DECIMAL; | |
299 case AKEYCODE_CHANNEL_UP: | |
300 return VKEY_PRIOR; | |
301 case AKEYCODE_CHANNEL_DOWN: | |
302 return VKEY_NEXT; | |
303 default: | |
304 return VKEY_UNKNOWN; | |
305 } | |
306 } | |
307 | |
308 } // namespace ui | 11 } // namespace ui |
OLD | NEW |