Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(728)

Side by Side Diff: ui/events/ozone/layout/xkb/xkb_keyboard_code_conversion.cc

Issue 778503002: XKB implementation of Ozone key layout. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@x430194-layout
Patch Set: fix boneheaded license paste Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "ui/events/ozone/layout/xkb/xkb_keyboard_code_conversion.h"
6
7 #include "ui/events/keycodes/dom3/dom_key.h"
8
9 namespace ui {
10
11 DomKey XkbKeySymToDomKey(xkb_keysym_t keysym) {
12 switch (keysym) {
13 case XKB_KEY_BackSpace:
14 return DomKey::BACKSPACE;
15 case XKB_KEY_Tab:
16 case XKB_KEY_KP_Tab:
17 case XKB_KEY_ISO_Left_Tab:
18 return DomKey::TAB;
19 case XKB_KEY_Clear:
20 case XKB_KEY_KP_Begin:
21 case XKB_KEY_XF86Clear:
22 return DomKey::CLEAR;
23 case XKB_KEY_Return:
24 case XKB_KEY_KP_Enter:
25 return DomKey::ENTER;
26 case XKB_KEY_Linefeed:
27 return DomKey::ENTER;
28 case XKB_KEY_Pause:
29 return DomKey::PAUSE;
30 case XKB_KEY_Scroll_Lock:
31 return DomKey::SCROLL_LOCK;
32 case XKB_KEY_Escape:
33 return DomKey::ESCAPE;
34 case XKB_KEY_Multi_key:
35 return DomKey::COMPOSE;
36 case XKB_KEY_Kanji:
37 return DomKey::KANJI_MODE;
38 case XKB_KEY_Muhenkan:
39 return DomKey::NON_CONVERT;
40 case XKB_KEY_Henkan_Mode:
41 return DomKey::CONVERT;
42 case XKB_KEY_Romaji:
43 return DomKey::ROMAJI;
44 case XKB_KEY_Hiragana:
45 return DomKey::HIRAGANA;
46 case XKB_KEY_Katakana:
47 return DomKey::KATAKANA;
48 case XKB_KEY_Hiragana_Katakana:
49 return DomKey::HIRAGANA_KATAKANA;
50 case XKB_KEY_Zenkaku:
51 return DomKey::ZENKAKU;
52 case XKB_KEY_Hankaku:
53 return DomKey::HANKAKU;
54 case XKB_KEY_Zenkaku_Hankaku:
55 return DomKey::ZENKAKU_HANKAKU;
56 case XKB_KEY_Kana_Lock:
57 return DomKey::KANA_MODE;
58 case XKB_KEY_Eisu_Shift:
59 case XKB_KEY_Eisu_toggle:
60 return DomKey::EISU;
61 case XKB_KEY_Hangul:
62 return DomKey::HANGUL_MODE;
63 case XKB_KEY_Hangul_Hanja:
64 return DomKey::HANJA_MODE;
65 case XKB_KEY_Codeinput:
66 return DomKey::CODE_INPUT;
67 case XKB_KEY_SingleCandidate:
68 return DomKey::SINGLE_CANDIDATE;
69 case XKB_KEY_MultipleCandidate:
70 return DomKey::ALL_CANDIDATES;
71 case XKB_KEY_PreviousCandidate:
72 return DomKey::PREVIOUS_CANDIDATE;
73 case XKB_KEY_Home:
74 case XKB_KEY_KP_Home:
75 return DomKey::HOME;
76 case XKB_KEY_Left:
77 case XKB_KEY_KP_Left:
78 return DomKey::ARROW_LEFT;
79 case XKB_KEY_Up:
80 case XKB_KEY_KP_Up:
81 return DomKey::ARROW_UP;
82 case XKB_KEY_Right:
83 case XKB_KEY_KP_Right:
84 return DomKey::ARROW_RIGHT;
85 case XKB_KEY_Down:
86 case XKB_KEY_KP_Down:
87 return DomKey::ARROW_DOWN;
88 case XKB_KEY_Prior:
89 case XKB_KEY_KP_Prior:
90 return DomKey::PAGE_UP;
91 case XKB_KEY_Next:
92 case XKB_KEY_KP_Next:
93 case XKB_KEY_XF86ScrollDown:
94 return DomKey::PAGE_DOWN;
95 case XKB_KEY_End:
96 case XKB_KEY_KP_End:
97 case XKB_KEY_XF86ScrollUp:
98 return DomKey::END;
99 case XKB_KEY_Select:
100 return DomKey::SELECT;
101 case XKB_KEY_Print:
102 return DomKey::PRINT;
103 case XKB_KEY_Execute:
104 return DomKey::EXECUTE;
105 case XKB_KEY_Insert:
106 case XKB_KEY_KP_Insert:
107 return DomKey::INSERT;
108 case XKB_KEY_Undo:
109 return DomKey::UNDO;
110 case XKB_KEY_Redo:
111 return DomKey::REDO;
112 case XKB_KEY_Menu:
113 return DomKey::CONTEXT_MENU;
114 case XKB_KEY_Find:
115 return DomKey::FIND;
116 case XKB_KEY_Cancel:
117 return DomKey::CANCEL;
118 case XKB_KEY_Help:
119 return DomKey::HELP;
120 case XKB_KEY_Break:
121 case XKB_KEY_3270_Attn:
122 return DomKey::ATTN;
123 case XKB_KEY_Mode_switch:
124 return DomKey::MODE_CHANGE;
125 case XKB_KEY_Num_Lock:
126 return DomKey::NUM_LOCK;
127 case XKB_KEY_F1:
128 case XKB_KEY_KP_F1:
129 return DomKey::F1;
130 case XKB_KEY_F2:
131 case XKB_KEY_KP_F2:
132 return DomKey::F2;
133 case XKB_KEY_F3:
134 case XKB_KEY_KP_F3:
135 return DomKey::F3;
136 case XKB_KEY_F4:
137 case XKB_KEY_KP_F4:
138 return DomKey::F4;
139 case XKB_KEY_F5:
140 return DomKey::F5;
141 case XKB_KEY_F6:
142 return DomKey::F6;
143 case XKB_KEY_F7:
144 return DomKey::F7;
145 case XKB_KEY_F8:
146 return DomKey::F8;
147 case XKB_KEY_F9:
148 return DomKey::F9;
149 case XKB_KEY_F10:
150 return DomKey::F10;
151 case XKB_KEY_F11:
152 return DomKey::F11;
153 case XKB_KEY_F12:
154 return DomKey::F12;
155 case XKB_KEY_F13:
156 return DomKey::F13;
157 case XKB_KEY_F14:
158 return DomKey::F14;
159 case XKB_KEY_F15:
160 return DomKey::F15;
161 case XKB_KEY_F16:
162 return DomKey::F16;
163 case XKB_KEY_F17:
164 return DomKey::F17;
165 case XKB_KEY_F18:
166 return DomKey::F18;
167 case XKB_KEY_F19:
168 return DomKey::F19;
169 case XKB_KEY_F20:
170 return DomKey::F20;
171 case XKB_KEY_F21:
172 return DomKey::F21;
173 case XKB_KEY_F22:
174 return DomKey::F22;
175 case XKB_KEY_F23:
176 return DomKey::F23;
177 case XKB_KEY_F24:
178 return DomKey::F24;
179 case XKB_KEY_Shift_L:
180 case XKB_KEY_Shift_R:
181 return DomKey::SHIFT;
182 case XKB_KEY_Control_L:
183 case XKB_KEY_Control_R:
184 return DomKey::CONTROL;
185 case XKB_KEY_Caps_Lock:
186 return DomKey::CAPS_LOCK;
187 case XKB_KEY_Meta_L:
188 case XKB_KEY_Meta_R:
189 return DomKey::META;
190 case XKB_KEY_Alt_L:
191 case XKB_KEY_Alt_R:
192 return DomKey::ALT;
193 case XKB_KEY_Super_L:
194 case XKB_KEY_Super_R:
195 return DomKey::OS;
196 case XKB_KEY_Hyper_L:
197 case XKB_KEY_Hyper_R:
198 return DomKey::HYPER;
199 case XKB_KEY_Delete:
200 return DomKey::DEL;
201 case XKB_KEY_SunProps:
202 return DomKey::PROPS;
203 case XKB_KEY_XF86Next_VMode:
204 return DomKey::VIDEO_MODE_NEXT;
205 case XKB_KEY_XF86MonBrightnessUp:
206 return DomKey::BRIGHTNESS_UP;
207 case XKB_KEY_XF86MonBrightnessDown:
208 return DomKey::BRIGHTNESS_DOWN;
209 case XKB_KEY_XF86Standby:
210 case XKB_KEY_XF86Sleep:
211 case XKB_KEY_XF86Suspend:
212 return DomKey::STANDBY;
213 case XKB_KEY_XF86AudioLowerVolume:
214 return DomKey::VOLUME_DOWN;
215 case XKB_KEY_XF86AudioMute:
216 return DomKey::VOLUME_MUTE;
217 case XKB_KEY_XF86AudioRaiseVolume:
218 return DomKey::VOLUME_UP;
219 case XKB_KEY_XF86AudioPlay:
220 return DomKey::MEDIA_PLAY;
221 case XKB_KEY_XF86AudioStop:
222 return DomKey::MEDIA_STOP;
223 case XKB_KEY_XF86AudioPrev:
224 return DomKey::MEDIA_TRACK_PREVIOUS;
225 case XKB_KEY_XF86AudioNext:
226 return DomKey::MEDIA_TRACK_NEXT;
227 case XKB_KEY_XF86HomePage:
228 return DomKey::BROWSER_HOME;
229 case XKB_KEY_XF86Mail:
230 return DomKey::LAUNCH_MAIL;
231 case XKB_KEY_XF86Search:
232 return DomKey::BROWSER_SEARCH;
233 case XKB_KEY_XF86AudioRecord:
234 return DomKey::MEDIA_RECORD;
235 case XKB_KEY_XF86Calculator:
236 return DomKey::LAUNCH_CALCULATOR;
237 case XKB_KEY_XF86Calendar:
238 return DomKey::LAUNCH_CALENDAR;
239 case XKB_KEY_XF86Back:
240 return DomKey::BROWSER_BACK;
241 case XKB_KEY_XF86Forward:
242 return DomKey::BROWSER_FORWARD;
243 case XKB_KEY_XF86Stop:
244 return DomKey::BROWSER_STOP;
245 case XKB_KEY_XF86Refresh:
246 case XKB_KEY_XF86Reload:
247 return DomKey::BROWSER_REFRESH;
248 case XKB_KEY_XF86PowerOff:
249 return DomKey::POWER_OFF;
250 case XKB_KEY_XF86WakeUp:
251 return DomKey::WAKE_UP;
252 case XKB_KEY_XF86Eject:
253 return DomKey::EJECT;
254 case XKB_KEY_XF86ScreenSaver:
255 return DomKey::LAUNCH_SCREEN_SAVER;
256 case XKB_KEY_XF86WWW:
257 return DomKey::LAUNCH_WEB_BROWSER;
258 case XKB_KEY_XF86Favorites:
259 return DomKey::BROWSER_FAVORITES;
260 case XKB_KEY_XF86AudioPause:
261 return DomKey::MEDIA_PAUSE;
262 case XKB_KEY_XF86AudioMedia:
263 case XKB_KEY_XF86Music:
264 return DomKey::LAUNCH_MUSIC_PLAYER;
265 case XKB_KEY_XF86MyComputer:
266 case XKB_KEY_XF86Explorer:
267 return DomKey::LAUNCH_MY_COMPUTER;
268 case XKB_KEY_XF86AudioRewind:
269 return DomKey::MEDIA_REWIND;
270 case XKB_KEY_XF86CD:
271 case XKB_KEY_XF86Video:
272 return DomKey::LAUNCH_MEDIA_PLAYER;
273 case XKB_KEY_XF86Close:
274 return DomKey::CLOSE;
275 case XKB_KEY_XF86Copy:
276 case XKB_KEY_SunCopy:
277 return DomKey::COPY;
278 case XKB_KEY_XF86Cut:
279 case XKB_KEY_SunCut:
280 return DomKey::CUT;
281 case XKB_KEY_XF86Display:
282 return DomKey::DISPLAY_SWAP;
283 case XKB_KEY_XF86Excel:
284 return DomKey::LAUNCH_SPREADSHEET;
285 case XKB_KEY_XF86LogOff:
286 return DomKey::LOG_OFF;
287 case XKB_KEY_XF86New:
288 return DomKey::NEW;
289 case XKB_KEY_XF86Open:
290 case XKB_KEY_SunOpen:
291 return DomKey::OPEN;
292 case XKB_KEY_XF86Paste:
293 case XKB_KEY_SunPaste:
294 return DomKey::PASTE;
295 case XKB_KEY_XF86Reply:
296 return DomKey::MAIL_REPLY;
297 case XKB_KEY_XF86Save:
298 return DomKey::SAVE;
299 case XKB_KEY_XF86Send:
300 return DomKey::MAIL_SEND;
301 case XKB_KEY_XF86Spell:
302 return DomKey::SPELL_CHECK;
303 case XKB_KEY_XF86SplitScreen:
304 return DomKey::SPLIT_SCREEN_TOGGLE;
305 case XKB_KEY_XF86Word:
306 case XKB_KEY_XF86OfficeHome:
307 return DomKey::LAUNCH_WORD_PROCESSOR;
308 case XKB_KEY_XF86ZoomIn:
309 return DomKey::ZOOM_IN;
310 case XKB_KEY_XF86ZoomOut:
311 return DomKey::ZOOM_OUT;
312 case XKB_KEY_XF86WebCam:
313 return DomKey::LAUNCH_WEB_CAM;
314 case XKB_KEY_XF86MailForward:
315 return DomKey::MAIL_FORWARD;
316 case XKB_KEY_XF86AudioForward:
317 return DomKey::MEDIA_FAST_FORWARD;
318 case XKB_KEY_XF86AudioRandomPlay:
319 return DomKey::RANDOM_TOGGLE;
320 case XKB_KEY_XF86Subtitle:
321 return DomKey::SUBTITLE;
322 case XKB_KEY_XF86Hibernate:
323 return DomKey::HIBERNATE;
324 case XKB_KEY_3270_EraseEOF:
325 return DomKey::ERASE_EOF;
326 case XKB_KEY_3270_Play:
327 return DomKey::PLAY;
328 case XKB_KEY_3270_ExSelect:
329 return DomKey::EX_SEL;
330 case XKB_KEY_3270_CursorSelect:
331 return DomKey::CR_SEL;
332 case XKB_KEY_3270_PrintScreen:
333 return DomKey::PRINT_SCREEN;
334 case XKB_KEY_ISO_Level3_Shift:
335 return DomKey::ALT_GRAPH;
336 case XKB_KEY_ISO_Next_Group:
337 return DomKey::GROUP_NEXT;
338 case XKB_KEY_ISO_Prev_Group:
339 return DomKey::GROUP_PREVIOUS;
340 case XKB_KEY_ISO_First_Group:
341 return DomKey::GROUP_FIRST;
342 case XKB_KEY_ISO_Last_Group:
343 return DomKey::GROUP_LAST;
344 case XKB_KEY_dead_grave:
345 case XKB_KEY_dead_acute:
346 case XKB_KEY_dead_circumflex:
347 case XKB_KEY_dead_tilde:
348 case XKB_KEY_dead_macron:
349 case XKB_KEY_dead_breve:
350 case XKB_KEY_dead_abovedot:
351 case XKB_KEY_dead_diaeresis:
352 case XKB_KEY_dead_abovering:
353 case XKB_KEY_dead_doubleacute:
354 case XKB_KEY_dead_caron:
355 case XKB_KEY_dead_cedilla:
356 case XKB_KEY_dead_ogonek:
357 case XKB_KEY_dead_iota:
358 case XKB_KEY_dead_belowdot:
359 case XKB_KEY_dead_hook:
360 case XKB_KEY_dead_horn:
361 case XKB_KEY_dead_stroke:
362 case XKB_KEY_dead_abovecomma:
363 case XKB_KEY_dead_abovereversedcomma:
364 case XKB_KEY_dead_doublegrave:
365 case XKB_KEY_dead_belowring:
366 case XKB_KEY_dead_belowmacron:
367 case XKB_KEY_dead_belowcircumflex:
368 case XKB_KEY_dead_belowtilde:
369 case XKB_KEY_dead_belowbreve:
370 case XKB_KEY_dead_belowdiaeresis:
371 case XKB_KEY_dead_invertedbreve:
372 case XKB_KEY_dead_belowcomma:
373 case XKB_KEY_dead_currency:
374 return DomKey::DEAD;
375 default:
376 return DomKey::NONE;
377 }
378 }
379
380 base::char16 XkbKeySymDeadKey(xkb_keysym_t keysym) {
381 switch (keysym) {
382 case XKB_KEY_dead_grave:
383 return 0x0768; // combining grave accent
384 case XKB_KEY_dead_acute:
385 return 0x0769; // combining acute accent
386 case XKB_KEY_dead_circumflex:
387 return 0x0770; // combining circumflex accent
388 case XKB_KEY_dead_tilde:
389 return 0x0771; // combining tilde
390 case XKB_KEY_dead_macron:
391 return 0x0772; // combining macron
392 case XKB_KEY_dead_breve:
393 return 0x0774; // combining breve
394 case XKB_KEY_dead_abovedot:
395 return 0x0775; // combining dot above
396 case XKB_KEY_dead_diaeresis:
397 return 0x0776; // combining diaeresis
398 case XKB_KEY_dead_abovering:
399 return 0x0778; // combining ring above
400 case XKB_KEY_dead_doubleacute:
401 return 0x0779; // combining double acute accent
402 case XKB_KEY_dead_caron:
403 return 0x0780; // combining caron
404 case XKB_KEY_dead_cedilla:
405 return 0x0807; // combining cedilla
406 case XKB_KEY_dead_ogonek:
407 return 0x0808; // combining ogonek
408 case XKB_KEY_dead_iota:
409 return 0x0837; // combining greek ypogegrammeni
410 case XKB_KEY_dead_belowdot:
411 return 0x0803; // combining dot below
412 case XKB_KEY_dead_hook:
413 return 0x0777; // combining hook above
414 case XKB_KEY_dead_horn:
415 return 0x0795; // combining horn
416 case XKB_KEY_dead_stroke:
417 return 0x0824; // combining long solidus overlay
418 case XKB_KEY_dead_abovecomma:
419 return 0x0787; // combining comma above
420 case XKB_KEY_dead_abovereversedcomma:
421 return 0x0788; // combining reversed comma above
422 case XKB_KEY_dead_doublegrave:
423 return 0x0783; // combining double grave accent
424 case XKB_KEY_dead_belowring:
425 return 0x0805; // combining ring below
426 case XKB_KEY_dead_belowmacron:
427 return 0x0817; // combining macron below
428 case XKB_KEY_dead_belowcircumflex:
429 return 0x0813; // combining circumflex accent below
430 case XKB_KEY_dead_belowtilde:
431 return 0x0816; // combining tilde below
432 case XKB_KEY_dead_belowbreve:
433 return 0x0814; // combining breve below
434 case XKB_KEY_dead_belowdiaeresis:
435 return 0x0804; // combining diaeresis below
436 case XKB_KEY_dead_invertedbreve:
437 return 0x0785; // combining inverted breve
438 case XKB_KEY_dead_belowcomma:
439 return 0x0806; // combining comma below
440 case XKB_KEY_dead_currency:
441 return 0x0164; // currency sign
442 default:
443 return 0;
444 }
445 }
446
447 } // namespace ui
OLDNEW
« no previous file with comments | « ui/events/ozone/layout/xkb/xkb_keyboard_code_conversion.h ('k') | ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698