OLD | NEW |
(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 #include "ui/events/ozone/layout/xkb/xkb_keysym.h" |
| 9 |
| 10 namespace ui { |
| 11 |
| 12 namespace { |
| 13 |
| 14 } // anonymous namespace |
| 15 |
| 16 DomKey XkbKeySymToDomKey(XkbKeySym keysym) { |
| 17 switch (keysym) { |
| 18 case XK_BackSpace: |
| 19 return DomKey::BACKSPACE; |
| 20 case XK_Tab: |
| 21 case XK_KP_Tab: |
| 22 case XK_ISO_Left_Tab: |
| 23 return DomKey::TAB; |
| 24 case XK_Clear: |
| 25 case XK_KP_Begin: |
| 26 case XF86XK_Clear: |
| 27 return DomKey::CLEAR; |
| 28 case XK_Return: |
| 29 case XK_KP_Enter: |
| 30 return DomKey::ENTER; |
| 31 case XK_Linefeed: |
| 32 return DomKey::ENTER; |
| 33 case XK_Pause: |
| 34 return DomKey::PAUSE; |
| 35 case XK_Scroll_Lock: |
| 36 return DomKey::SCROLL_LOCK; |
| 37 case XK_Escape: |
| 38 return DomKey::ESCAPE; |
| 39 case XK_Multi_key: |
| 40 return DomKey::COMPOSE; |
| 41 case XK_Kanji: |
| 42 return DomKey::KANJI_MODE; |
| 43 case XK_Muhenkan: |
| 44 return DomKey::NON_CONVERT; |
| 45 case XK_Henkan_Mode: |
| 46 return DomKey::CONVERT; |
| 47 case XK_Romaji: |
| 48 return DomKey::ROMAJI; |
| 49 case XK_Hiragana: |
| 50 return DomKey::HIRAGANA; |
| 51 case XK_Katakana: |
| 52 return DomKey::KATAKANA; |
| 53 case XK_Hiragana_Katakana: |
| 54 return DomKey::HIRAGANA_KATAKANA; |
| 55 case XK_Zenkaku: |
| 56 return DomKey::ZENKAKU; |
| 57 case XK_Hankaku: |
| 58 return DomKey::HANKAKU; |
| 59 case XK_Zenkaku_Hankaku: |
| 60 return DomKey::ZENKAKU_HANKAKU; |
| 61 case XK_Kana_Lock: |
| 62 return DomKey::KANA_MODE; |
| 63 case XK_Eisu_Shift: |
| 64 case XK_Eisu_toggle: |
| 65 return DomKey::EISU; |
| 66 case XK_Hangul: |
| 67 return DomKey::HANGUL_MODE; |
| 68 case XK_Hangul_Hanja: |
| 69 return DomKey::HANJA_MODE; |
| 70 case XK_Codeinput: |
| 71 return DomKey::CODE_INPUT; |
| 72 case XK_SingleCandidate: |
| 73 return DomKey::SINGLE_CANDIDATE; |
| 74 case XK_MultipleCandidate: |
| 75 return DomKey::ALL_CANDIDATES; |
| 76 case XK_PreviousCandidate: |
| 77 return DomKey::PREVIOUS_CANDIDATE; |
| 78 case XK_Home: |
| 79 case XK_KP_Home: |
| 80 return DomKey::HOME; |
| 81 case XK_Left: |
| 82 case XK_KP_Left: |
| 83 return DomKey::ARROW_LEFT; |
| 84 case XK_Up: |
| 85 case XK_KP_Up: |
| 86 return DomKey::ARROW_UP; |
| 87 case XK_Right: |
| 88 case XK_KP_Right: |
| 89 return DomKey::ARROW_RIGHT; |
| 90 case XK_Down: |
| 91 case XK_KP_Down: |
| 92 return DomKey::ARROW_DOWN; |
| 93 case XK_Prior: |
| 94 case XK_KP_Prior: |
| 95 return DomKey::PAGE_UP; |
| 96 case XK_Next: |
| 97 case XK_KP_Next: |
| 98 case XF86XK_ScrollDown: |
| 99 return DomKey::PAGE_DOWN; |
| 100 case XK_End: |
| 101 case XK_KP_End: |
| 102 case XF86XK_ScrollUp: |
| 103 return DomKey::END; |
| 104 case XK_Select: |
| 105 return DomKey::SELECT; |
| 106 case XK_Print: |
| 107 return DomKey::PRINT; |
| 108 case XK_Execute: |
| 109 return DomKey::EXECUTE; |
| 110 case XK_Insert: |
| 111 case XK_KP_Insert: |
| 112 return DomKey::INSERT; |
| 113 case XK_Undo: |
| 114 return DomKey::UNDO; |
| 115 case XK_Redo: |
| 116 return DomKey::REDO; |
| 117 case XK_Menu: |
| 118 return DomKey::CONTEXT_MENU; |
| 119 case XK_Find: |
| 120 return DomKey::FIND; |
| 121 case XK_Cancel: |
| 122 return DomKey::CANCEL; |
| 123 case XK_Help: |
| 124 return DomKey::HELP; |
| 125 case XK_Break: |
| 126 case XK_3270_Attn: |
| 127 return DomKey::ATTN; |
| 128 case XK_Mode_switch: |
| 129 return DomKey::MODE_CHANGE; |
| 130 case XK_Num_Lock: |
| 131 return DomKey::NUM_LOCK; |
| 132 case XK_F1: |
| 133 case XK_KP_F1: |
| 134 return DomKey::F1; |
| 135 case XK_F2: |
| 136 case XK_KP_F2: |
| 137 return DomKey::F2; |
| 138 case XK_F3: |
| 139 case XK_KP_F3: |
| 140 return DomKey::F3; |
| 141 case XK_F4: |
| 142 case XK_KP_F4: |
| 143 return DomKey::F4; |
| 144 case XK_F5: |
| 145 return DomKey::F5; |
| 146 case XK_F6: |
| 147 return DomKey::F6; |
| 148 case XK_F7: |
| 149 return DomKey::F7; |
| 150 case XK_F8: |
| 151 return DomKey::F8; |
| 152 case XK_F9: |
| 153 return DomKey::F9; |
| 154 case XK_F10: |
| 155 return DomKey::F10; |
| 156 case XK_F11: |
| 157 return DomKey::F11; |
| 158 case XK_F12: |
| 159 return DomKey::F12; |
| 160 case XK_F13: |
| 161 return DomKey::F13; |
| 162 case XK_F14: |
| 163 return DomKey::F14; |
| 164 case XK_F15: |
| 165 return DomKey::F15; |
| 166 case XK_F16: |
| 167 return DomKey::F16; |
| 168 case XK_F17: |
| 169 return DomKey::F17; |
| 170 case XK_F18: |
| 171 return DomKey::F18; |
| 172 case XK_F19: |
| 173 return DomKey::F19; |
| 174 case XK_F20: |
| 175 return DomKey::F20; |
| 176 case XK_F21: |
| 177 return DomKey::F21; |
| 178 case XK_F22: |
| 179 return DomKey::F22; |
| 180 case XK_F23: |
| 181 return DomKey::F23; |
| 182 case XK_F24: |
| 183 return DomKey::F24; |
| 184 case XK_Shift_L: |
| 185 case XK_Shift_R: |
| 186 return DomKey::SHIFT; |
| 187 case XK_Control_L: |
| 188 case XK_Control_R: |
| 189 return DomKey::CONTROL; |
| 190 case XK_Caps_Lock: |
| 191 return DomKey::CAPS_LOCK; |
| 192 case XK_Meta_L: |
| 193 case XK_Meta_R: |
| 194 return DomKey::META; |
| 195 case XK_Alt_L: |
| 196 case XK_Alt_R: |
| 197 return DomKey::ALT; |
| 198 case XK_Super_L: |
| 199 case XK_Super_R: |
| 200 return DomKey::OS; |
| 201 case XK_Hyper_L: |
| 202 case XK_Hyper_R: |
| 203 return DomKey::HYPER; |
| 204 case XK_Delete: |
| 205 return DomKey::DEL; |
| 206 case SunXK_Props: |
| 207 return DomKey::PROPS; |
| 208 case XF86XK_Next_VMode: |
| 209 return DomKey::VIDEO_MODE_NEXT; |
| 210 case XF86XK_MonBrightnessUp: |
| 211 return DomKey::BRIGHTNESS_UP; |
| 212 case XF86XK_MonBrightnessDown: |
| 213 return DomKey::BRIGHTNESS_DOWN; |
| 214 case XF86XK_Standby: |
| 215 case XF86XK_Sleep: |
| 216 case XF86XK_Suspend: |
| 217 return DomKey::STANDBY; |
| 218 case XF86XK_AudioLowerVolume: |
| 219 return DomKey::VOLUME_DOWN; |
| 220 case XF86XK_AudioMute: |
| 221 return DomKey::VOLUME_MUTE; |
| 222 case XF86XK_AudioRaiseVolume: |
| 223 return DomKey::VOLUME_UP; |
| 224 case XF86XK_AudioPlay: |
| 225 return DomKey::MEDIA_PLAY; |
| 226 case XF86XK_AudioStop: |
| 227 return DomKey::MEDIA_STOP; |
| 228 case XF86XK_AudioPrev: |
| 229 return DomKey::MEDIA_TRACK_PREVIOUS; |
| 230 case XF86XK_AudioNext: |
| 231 return DomKey::MEDIA_TRACK_NEXT; |
| 232 case XF86XK_HomePage: |
| 233 return DomKey::BROWSER_HOME; |
| 234 case XF86XK_Mail: |
| 235 return DomKey::LAUNCH_MAIL; |
| 236 case XF86XK_Search: |
| 237 return DomKey::BROWSER_SEARCH; |
| 238 case XF86XK_AudioRecord: |
| 239 return DomKey::MEDIA_RECORD; |
| 240 case XF86XK_Calculator: |
| 241 return DomKey::LAUNCH_CALCULATOR; |
| 242 case XF86XK_Calendar: |
| 243 return DomKey::LAUNCH_CALENDAR; |
| 244 case XF86XK_Back: |
| 245 return DomKey::BROWSER_BACK; |
| 246 case XF86XK_Forward: |
| 247 return DomKey::BROWSER_FORWARD; |
| 248 case XF86XK_Stop: |
| 249 return DomKey::BROWSER_STOP; |
| 250 case XF86XK_Refresh: |
| 251 case XF86XK_Reload: |
| 252 return DomKey::BROWSER_REFRESH; |
| 253 case XF86XK_PowerOff: |
| 254 return DomKey::POWER_OFF; |
| 255 case XF86XK_WakeUp: |
| 256 return DomKey::WAKE_UP; |
| 257 case XF86XK_Eject: |
| 258 return DomKey::EJECT; |
| 259 case XF86XK_ScreenSaver: |
| 260 return DomKey::LAUNCH_SCREEN_SAVER; |
| 261 case XF86XK_WWW: |
| 262 return DomKey::LAUNCH_WEB_BROWSER; |
| 263 case XF86XK_Favorites: |
| 264 return DomKey::BROWSER_FAVORITES; |
| 265 case XF86XK_AudioPause: |
| 266 return DomKey::MEDIA_PAUSE; |
| 267 case XF86XK_AudioMedia: |
| 268 case XF86XK_Music: |
| 269 return DomKey::LAUNCH_MUSIC_PLAYER; |
| 270 case XF86XK_MyComputer: |
| 271 case XF86XK_Explorer: |
| 272 return DomKey::LAUNCH_MY_COMPUTER; |
| 273 case XF86XK_AudioRewind: |
| 274 return DomKey::MEDIA_REWIND; |
| 275 case XF86XK_CD: |
| 276 case XF86XK_Video: |
| 277 return DomKey::LAUNCH_MEDIA_PLAYER; |
| 278 case XF86XK_Close: |
| 279 return DomKey::CLOSE; |
| 280 case XF86XK_Copy: |
| 281 case SunXK_Copy: |
| 282 return DomKey::COPY; |
| 283 case XF86XK_Cut: |
| 284 case SunXK_Cut: |
| 285 return DomKey::CUT; |
| 286 case XF86XK_Display: |
| 287 return DomKey::DISPLAY_SWAP; |
| 288 case XF86XK_Excel: |
| 289 return DomKey::LAUNCH_SPREADSHEET; |
| 290 case XF86XK_LogOff: |
| 291 return DomKey::LOG_OFF; |
| 292 case XF86XK_New: |
| 293 return DomKey::NEW; |
| 294 case XF86XK_Open: |
| 295 case SunXK_Open: |
| 296 return DomKey::OPEN; |
| 297 case XF86XK_Paste: |
| 298 case SunXK_Paste: |
| 299 return DomKey::PASTE; |
| 300 case XF86XK_Reply: |
| 301 return DomKey::MAIL_REPLY; |
| 302 case XF86XK_Save: |
| 303 return DomKey::SAVE; |
| 304 case XF86XK_Send: |
| 305 return DomKey::MAIL_SEND; |
| 306 case XF86XK_Spell: |
| 307 return DomKey::SPELL_CHECK; |
| 308 case XF86XK_SplitScreen: |
| 309 return DomKey::SPLIT_SCREEN_TOGGLE; |
| 310 case XF86XK_Word: |
| 311 case XF86XK_OfficeHome: |
| 312 return DomKey::LAUNCH_WORD_PROCESSOR; |
| 313 case XF86XK_ZoomIn: |
| 314 return DomKey::ZOOM_IN; |
| 315 case XF86XK_ZoomOut: |
| 316 return DomKey::ZOOM_OUT; |
| 317 case XF86XK_WebCam: |
| 318 return DomKey::LAUNCH_WEB_CAM; |
| 319 case XF86XK_MailForward: |
| 320 return DomKey::MAIL_FORWARD; |
| 321 case XF86XK_AudioForward: |
| 322 return DomKey::MEDIA_FAST_FORWARD; |
| 323 case XF86XK_AudioRandomPlay: |
| 324 return DomKey::RANDOM_TOGGLE; |
| 325 case XF86XK_Subtitle: |
| 326 return DomKey::SUBTITLE; |
| 327 case XF86XK_Hibernate: |
| 328 return DomKey::HIBERNATE; |
| 329 case XK_3270_EraseEOF: |
| 330 return DomKey::ERASE_EOF; |
| 331 case XK_3270_Play: |
| 332 return DomKey::PLAY; |
| 333 case XK_3270_ExSelect: |
| 334 return DomKey::EX_SEL; |
| 335 case XK_3270_CursorSelect: |
| 336 return DomKey::CR_SEL; |
| 337 case XK_3270_PrintScreen: |
| 338 return DomKey::PRINT_SCREEN; |
| 339 case XK_ISO_Level3_Shift: |
| 340 return DomKey::ALT_GRAPH; |
| 341 case XK_ISO_Next_Group: |
| 342 return DomKey::GROUP_NEXT; |
| 343 case XK_ISO_Prev_Group: |
| 344 return DomKey::GROUP_PREVIOUS; |
| 345 case XK_ISO_First_Group: |
| 346 return DomKey::GROUP_FIRST; |
| 347 case XK_ISO_Last_Group: |
| 348 return DomKey::GROUP_LAST; |
| 349 case XK_dead_grave: |
| 350 case XK_dead_acute: |
| 351 case XK_dead_circumflex: |
| 352 case XK_dead_tilde: |
| 353 case XK_dead_macron: |
| 354 case XK_dead_breve: |
| 355 case XK_dead_abovedot: |
| 356 case XK_dead_diaeresis: |
| 357 case XK_dead_abovering: |
| 358 case XK_dead_doubleacute: |
| 359 case XK_dead_caron: |
| 360 case XK_dead_cedilla: |
| 361 case XK_dead_ogonek: |
| 362 case XK_dead_iota: |
| 363 case XK_dead_belowdot: |
| 364 case XK_dead_hook: |
| 365 case XK_dead_horn: |
| 366 case XK_dead_stroke: |
| 367 case XK_dead_abovecomma: |
| 368 case XK_dead_abovereversedcomma: |
| 369 case XK_dead_doublegrave: |
| 370 case XK_dead_belowring: |
| 371 case XK_dead_belowmacron: |
| 372 case XK_dead_belowcircumflex: |
| 373 case XK_dead_belowtilde: |
| 374 case XK_dead_belowbreve: |
| 375 case XK_dead_belowdiaeresis: |
| 376 case XK_dead_invertedbreve: |
| 377 case XK_dead_belowcomma: |
| 378 case XK_dead_currency: |
| 379 return DomKey::DEAD; |
| 380 default: |
| 381 return DomKey::NONE; |
| 382 } |
| 383 } |
| 384 |
| 385 base::char16 XkbKeySymDeadKey(XkbKeySym keysym) { |
| 386 switch (keysym) { |
| 387 case XK_dead_grave: |
| 388 return 0x0768; // combining grave accent |
| 389 case XK_dead_acute: |
| 390 return 0x0769; // combining acute accent |
| 391 case XK_dead_circumflex: |
| 392 return 0x0770; // combining circumflex accent |
| 393 case XK_dead_tilde: |
| 394 return 0x0771; // combining tilde |
| 395 case XK_dead_macron: |
| 396 return 0x0772; // combining macron |
| 397 case XK_dead_breve: |
| 398 return 0x0774; // combining breve |
| 399 case XK_dead_abovedot: |
| 400 return 0x0775; // combining dot above |
| 401 case XK_dead_diaeresis: |
| 402 return 0x0776; // combining diaeresis |
| 403 case XK_dead_abovering: |
| 404 return 0x0778; // combining ring above |
| 405 case XK_dead_doubleacute: |
| 406 return 0x0779; // combining double acute accent |
| 407 case XK_dead_caron: |
| 408 return 0x0780; // combining caron |
| 409 case XK_dead_cedilla: |
| 410 return 0x0807; // combining cedilla |
| 411 case XK_dead_ogonek: |
| 412 return 0x0808; // combining ogonek |
| 413 case XK_dead_iota: |
| 414 return 0x0837; // combining greek ypogegrammeni |
| 415 case XK_dead_belowdot: |
| 416 return 0x0803; // combining dot below |
| 417 case XK_dead_hook: |
| 418 return 0x0777; // combining hook above |
| 419 case XK_dead_horn: |
| 420 return 0x0795; // combining horn |
| 421 case XK_dead_stroke: |
| 422 return 0x0824; // combining long solidus overlay |
| 423 case XK_dead_abovecomma: |
| 424 return 0x0787; // combining comma above |
| 425 case XK_dead_abovereversedcomma: |
| 426 return 0x0788; // combining reversed comma above |
| 427 case XK_dead_doublegrave: |
| 428 return 0x0783; // combining double grave accent |
| 429 case XK_dead_belowring: |
| 430 return 0x0805; // combining ring below |
| 431 case XK_dead_belowmacron: |
| 432 return 0x0817; // combining macron below |
| 433 case XK_dead_belowcircumflex: |
| 434 return 0x0813; // combining circumflex accent below |
| 435 case XK_dead_belowtilde: |
| 436 return 0x0816; // combining tilde below |
| 437 case XK_dead_belowbreve: |
| 438 return 0x0814; // combining breve below |
| 439 case XK_dead_belowdiaeresis: |
| 440 return 0x0804; // combining diaeresis below |
| 441 case XK_dead_invertedbreve: |
| 442 return 0x0785; // combining inverted breve |
| 443 case XK_dead_belowcomma: |
| 444 return 0x0806; // combining comma below |
| 445 case XK_dead_currency: |
| 446 return 0x0164; // currency sign |
| 447 default: |
| 448 return 0; |
| 449 } |
| 450 } |
| 451 |
| 452 } // namespace ui |
OLD | NEW |