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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: ui/events/ozone/layout/xkb/xkb_keyboard_code_conversion.cc
diff --git a/ui/events/ozone/layout/xkb/xkb_keyboard_code_conversion.cc b/ui/events/ozone/layout/xkb/xkb_keyboard_code_conversion.cc
new file mode 100644
index 0000000000000000000000000000000000000000..0f6a6e86e9e0bcd4ed60b6e05998fddb49ee5caf
--- /dev/null
+++ b/ui/events/ozone/layout/xkb/xkb_keyboard_code_conversion.cc
@@ -0,0 +1,447 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ui/events/ozone/layout/xkb/xkb_keyboard_code_conversion.h"
+
+#include "ui/events/keycodes/dom3/dom_key.h"
+
+namespace ui {
+
+DomKey XkbKeySymToDomKey(xkb_keysym_t keysym) {
+ switch (keysym) {
+ case XKB_KEY_BackSpace:
+ return DomKey::BACKSPACE;
+ case XKB_KEY_Tab:
+ case XKB_KEY_KP_Tab:
+ case XKB_KEY_ISO_Left_Tab:
+ return DomKey::TAB;
+ case XKB_KEY_Clear:
+ case XKB_KEY_KP_Begin:
+ case XKB_KEY_XF86Clear:
+ return DomKey::CLEAR;
+ case XKB_KEY_Return:
+ case XKB_KEY_KP_Enter:
+ return DomKey::ENTER;
+ case XKB_KEY_Linefeed:
+ return DomKey::ENTER;
+ case XKB_KEY_Pause:
+ return DomKey::PAUSE;
+ case XKB_KEY_Scroll_Lock:
+ return DomKey::SCROLL_LOCK;
+ case XKB_KEY_Escape:
+ return DomKey::ESCAPE;
+ case XKB_KEY_Multi_key:
+ return DomKey::COMPOSE;
+ case XKB_KEY_Kanji:
+ return DomKey::KANJI_MODE;
+ case XKB_KEY_Muhenkan:
+ return DomKey::NON_CONVERT;
+ case XKB_KEY_Henkan_Mode:
+ return DomKey::CONVERT;
+ case XKB_KEY_Romaji:
+ return DomKey::ROMAJI;
+ case XKB_KEY_Hiragana:
+ return DomKey::HIRAGANA;
+ case XKB_KEY_Katakana:
+ return DomKey::KATAKANA;
+ case XKB_KEY_Hiragana_Katakana:
+ return DomKey::HIRAGANA_KATAKANA;
+ case XKB_KEY_Zenkaku:
+ return DomKey::ZENKAKU;
+ case XKB_KEY_Hankaku:
+ return DomKey::HANKAKU;
+ case XKB_KEY_Zenkaku_Hankaku:
+ return DomKey::ZENKAKU_HANKAKU;
+ case XKB_KEY_Kana_Lock:
+ return DomKey::KANA_MODE;
+ case XKB_KEY_Eisu_Shift:
+ case XKB_KEY_Eisu_toggle:
+ return DomKey::EISU;
+ case XKB_KEY_Hangul:
+ return DomKey::HANGUL_MODE;
+ case XKB_KEY_Hangul_Hanja:
+ return DomKey::HANJA_MODE;
+ case XKB_KEY_Codeinput:
+ return DomKey::CODE_INPUT;
+ case XKB_KEY_SingleCandidate:
+ return DomKey::SINGLE_CANDIDATE;
+ case XKB_KEY_MultipleCandidate:
+ return DomKey::ALL_CANDIDATES;
+ case XKB_KEY_PreviousCandidate:
+ return DomKey::PREVIOUS_CANDIDATE;
+ case XKB_KEY_Home:
+ case XKB_KEY_KP_Home:
+ return DomKey::HOME;
+ case XKB_KEY_Left:
+ case XKB_KEY_KP_Left:
+ return DomKey::ARROW_LEFT;
+ case XKB_KEY_Up:
+ case XKB_KEY_KP_Up:
+ return DomKey::ARROW_UP;
+ case XKB_KEY_Right:
+ case XKB_KEY_KP_Right:
+ return DomKey::ARROW_RIGHT;
+ case XKB_KEY_Down:
+ case XKB_KEY_KP_Down:
+ return DomKey::ARROW_DOWN;
+ case XKB_KEY_Prior:
+ case XKB_KEY_KP_Prior:
+ return DomKey::PAGE_UP;
+ case XKB_KEY_Next:
+ case XKB_KEY_KP_Next:
+ case XKB_KEY_XF86ScrollDown:
+ return DomKey::PAGE_DOWN;
+ case XKB_KEY_End:
+ case XKB_KEY_KP_End:
+ case XKB_KEY_XF86ScrollUp:
+ return DomKey::END;
+ case XKB_KEY_Select:
+ return DomKey::SELECT;
+ case XKB_KEY_Print:
+ return DomKey::PRINT;
+ case XKB_KEY_Execute:
+ return DomKey::EXECUTE;
+ case XKB_KEY_Insert:
+ case XKB_KEY_KP_Insert:
+ return DomKey::INSERT;
+ case XKB_KEY_Undo:
+ return DomKey::UNDO;
+ case XKB_KEY_Redo:
+ return DomKey::REDO;
+ case XKB_KEY_Menu:
+ return DomKey::CONTEXT_MENU;
+ case XKB_KEY_Find:
+ return DomKey::FIND;
+ case XKB_KEY_Cancel:
+ return DomKey::CANCEL;
+ case XKB_KEY_Help:
+ return DomKey::HELP;
+ case XKB_KEY_Break:
+ case XKB_KEY_3270_Attn:
+ return DomKey::ATTN;
+ case XKB_KEY_Mode_switch:
+ return DomKey::MODE_CHANGE;
+ case XKB_KEY_Num_Lock:
+ return DomKey::NUM_LOCK;
+ case XKB_KEY_F1:
+ case XKB_KEY_KP_F1:
+ return DomKey::F1;
+ case XKB_KEY_F2:
+ case XKB_KEY_KP_F2:
+ return DomKey::F2;
+ case XKB_KEY_F3:
+ case XKB_KEY_KP_F3:
+ return DomKey::F3;
+ case XKB_KEY_F4:
+ case XKB_KEY_KP_F4:
+ return DomKey::F4;
+ case XKB_KEY_F5:
+ return DomKey::F5;
+ case XKB_KEY_F6:
+ return DomKey::F6;
+ case XKB_KEY_F7:
+ return DomKey::F7;
+ case XKB_KEY_F8:
+ return DomKey::F8;
+ case XKB_KEY_F9:
+ return DomKey::F9;
+ case XKB_KEY_F10:
+ return DomKey::F10;
+ case XKB_KEY_F11:
+ return DomKey::F11;
+ case XKB_KEY_F12:
+ return DomKey::F12;
+ case XKB_KEY_F13:
+ return DomKey::F13;
+ case XKB_KEY_F14:
+ return DomKey::F14;
+ case XKB_KEY_F15:
+ return DomKey::F15;
+ case XKB_KEY_F16:
+ return DomKey::F16;
+ case XKB_KEY_F17:
+ return DomKey::F17;
+ case XKB_KEY_F18:
+ return DomKey::F18;
+ case XKB_KEY_F19:
+ return DomKey::F19;
+ case XKB_KEY_F20:
+ return DomKey::F20;
+ case XKB_KEY_F21:
+ return DomKey::F21;
+ case XKB_KEY_F22:
+ return DomKey::F22;
+ case XKB_KEY_F23:
+ return DomKey::F23;
+ case XKB_KEY_F24:
+ return DomKey::F24;
+ case XKB_KEY_Shift_L:
+ case XKB_KEY_Shift_R:
+ return DomKey::SHIFT;
+ case XKB_KEY_Control_L:
+ case XKB_KEY_Control_R:
+ return DomKey::CONTROL;
+ case XKB_KEY_Caps_Lock:
+ return DomKey::CAPS_LOCK;
+ case XKB_KEY_Meta_L:
+ case XKB_KEY_Meta_R:
+ return DomKey::META;
+ case XKB_KEY_Alt_L:
+ case XKB_KEY_Alt_R:
+ return DomKey::ALT;
+ case XKB_KEY_Super_L:
+ case XKB_KEY_Super_R:
+ return DomKey::OS;
+ case XKB_KEY_Hyper_L:
+ case XKB_KEY_Hyper_R:
+ return DomKey::HYPER;
+ case XKB_KEY_Delete:
+ return DomKey::DEL;
+ case XKB_KEY_SunProps:
+ return DomKey::PROPS;
+ case XKB_KEY_XF86Next_VMode:
+ return DomKey::VIDEO_MODE_NEXT;
+ case XKB_KEY_XF86MonBrightnessUp:
+ return DomKey::BRIGHTNESS_UP;
+ case XKB_KEY_XF86MonBrightnessDown:
+ return DomKey::BRIGHTNESS_DOWN;
+ case XKB_KEY_XF86Standby:
+ case XKB_KEY_XF86Sleep:
+ case XKB_KEY_XF86Suspend:
+ return DomKey::STANDBY;
+ case XKB_KEY_XF86AudioLowerVolume:
+ return DomKey::VOLUME_DOWN;
+ case XKB_KEY_XF86AudioMute:
+ return DomKey::VOLUME_MUTE;
+ case XKB_KEY_XF86AudioRaiseVolume:
+ return DomKey::VOLUME_UP;
+ case XKB_KEY_XF86AudioPlay:
+ return DomKey::MEDIA_PLAY;
+ case XKB_KEY_XF86AudioStop:
+ return DomKey::MEDIA_STOP;
+ case XKB_KEY_XF86AudioPrev:
+ return DomKey::MEDIA_TRACK_PREVIOUS;
+ case XKB_KEY_XF86AudioNext:
+ return DomKey::MEDIA_TRACK_NEXT;
+ case XKB_KEY_XF86HomePage:
+ return DomKey::BROWSER_HOME;
+ case XKB_KEY_XF86Mail:
+ return DomKey::LAUNCH_MAIL;
+ case XKB_KEY_XF86Search:
+ return DomKey::BROWSER_SEARCH;
+ case XKB_KEY_XF86AudioRecord:
+ return DomKey::MEDIA_RECORD;
+ case XKB_KEY_XF86Calculator:
+ return DomKey::LAUNCH_CALCULATOR;
+ case XKB_KEY_XF86Calendar:
+ return DomKey::LAUNCH_CALENDAR;
+ case XKB_KEY_XF86Back:
+ return DomKey::BROWSER_BACK;
+ case XKB_KEY_XF86Forward:
+ return DomKey::BROWSER_FORWARD;
+ case XKB_KEY_XF86Stop:
+ return DomKey::BROWSER_STOP;
+ case XKB_KEY_XF86Refresh:
+ case XKB_KEY_XF86Reload:
+ return DomKey::BROWSER_REFRESH;
+ case XKB_KEY_XF86PowerOff:
+ return DomKey::POWER_OFF;
+ case XKB_KEY_XF86WakeUp:
+ return DomKey::WAKE_UP;
+ case XKB_KEY_XF86Eject:
+ return DomKey::EJECT;
+ case XKB_KEY_XF86ScreenSaver:
+ return DomKey::LAUNCH_SCREEN_SAVER;
+ case XKB_KEY_XF86WWW:
+ return DomKey::LAUNCH_WEB_BROWSER;
+ case XKB_KEY_XF86Favorites:
+ return DomKey::BROWSER_FAVORITES;
+ case XKB_KEY_XF86AudioPause:
+ return DomKey::MEDIA_PAUSE;
+ case XKB_KEY_XF86AudioMedia:
+ case XKB_KEY_XF86Music:
+ return DomKey::LAUNCH_MUSIC_PLAYER;
+ case XKB_KEY_XF86MyComputer:
+ case XKB_KEY_XF86Explorer:
+ return DomKey::LAUNCH_MY_COMPUTER;
+ case XKB_KEY_XF86AudioRewind:
+ return DomKey::MEDIA_REWIND;
+ case XKB_KEY_XF86CD:
+ case XKB_KEY_XF86Video:
+ return DomKey::LAUNCH_MEDIA_PLAYER;
+ case XKB_KEY_XF86Close:
+ return DomKey::CLOSE;
+ case XKB_KEY_XF86Copy:
+ case XKB_KEY_SunCopy:
+ return DomKey::COPY;
+ case XKB_KEY_XF86Cut:
+ case XKB_KEY_SunCut:
+ return DomKey::CUT;
+ case XKB_KEY_XF86Display:
+ return DomKey::DISPLAY_SWAP;
+ case XKB_KEY_XF86Excel:
+ return DomKey::LAUNCH_SPREADSHEET;
+ case XKB_KEY_XF86LogOff:
+ return DomKey::LOG_OFF;
+ case XKB_KEY_XF86New:
+ return DomKey::NEW;
+ case XKB_KEY_XF86Open:
+ case XKB_KEY_SunOpen:
+ return DomKey::OPEN;
+ case XKB_KEY_XF86Paste:
+ case XKB_KEY_SunPaste:
+ return DomKey::PASTE;
+ case XKB_KEY_XF86Reply:
+ return DomKey::MAIL_REPLY;
+ case XKB_KEY_XF86Save:
+ return DomKey::SAVE;
+ case XKB_KEY_XF86Send:
+ return DomKey::MAIL_SEND;
+ case XKB_KEY_XF86Spell:
+ return DomKey::SPELL_CHECK;
+ case XKB_KEY_XF86SplitScreen:
+ return DomKey::SPLIT_SCREEN_TOGGLE;
+ case XKB_KEY_XF86Word:
+ case XKB_KEY_XF86OfficeHome:
+ return DomKey::LAUNCH_WORD_PROCESSOR;
+ case XKB_KEY_XF86ZoomIn:
+ return DomKey::ZOOM_IN;
+ case XKB_KEY_XF86ZoomOut:
+ return DomKey::ZOOM_OUT;
+ case XKB_KEY_XF86WebCam:
+ return DomKey::LAUNCH_WEB_CAM;
+ case XKB_KEY_XF86MailForward:
+ return DomKey::MAIL_FORWARD;
+ case XKB_KEY_XF86AudioForward:
+ return DomKey::MEDIA_FAST_FORWARD;
+ case XKB_KEY_XF86AudioRandomPlay:
+ return DomKey::RANDOM_TOGGLE;
+ case XKB_KEY_XF86Subtitle:
+ return DomKey::SUBTITLE;
+ case XKB_KEY_XF86Hibernate:
+ return DomKey::HIBERNATE;
+ case XKB_KEY_3270_EraseEOF:
+ return DomKey::ERASE_EOF;
+ case XKB_KEY_3270_Play:
+ return DomKey::PLAY;
+ case XKB_KEY_3270_ExSelect:
+ return DomKey::EX_SEL;
+ case XKB_KEY_3270_CursorSelect:
+ return DomKey::CR_SEL;
+ case XKB_KEY_3270_PrintScreen:
+ return DomKey::PRINT_SCREEN;
+ case XKB_KEY_ISO_Level3_Shift:
+ return DomKey::ALT_GRAPH;
+ case XKB_KEY_ISO_Next_Group:
+ return DomKey::GROUP_NEXT;
+ case XKB_KEY_ISO_Prev_Group:
+ return DomKey::GROUP_PREVIOUS;
+ case XKB_KEY_ISO_First_Group:
+ return DomKey::GROUP_FIRST;
+ case XKB_KEY_ISO_Last_Group:
+ return DomKey::GROUP_LAST;
+ case XKB_KEY_dead_grave:
+ case XKB_KEY_dead_acute:
+ case XKB_KEY_dead_circumflex:
+ case XKB_KEY_dead_tilde:
+ case XKB_KEY_dead_macron:
+ case XKB_KEY_dead_breve:
+ case XKB_KEY_dead_abovedot:
+ case XKB_KEY_dead_diaeresis:
+ case XKB_KEY_dead_abovering:
+ case XKB_KEY_dead_doubleacute:
+ case XKB_KEY_dead_caron:
+ case XKB_KEY_dead_cedilla:
+ case XKB_KEY_dead_ogonek:
+ case XKB_KEY_dead_iota:
+ case XKB_KEY_dead_belowdot:
+ case XKB_KEY_dead_hook:
+ case XKB_KEY_dead_horn:
+ case XKB_KEY_dead_stroke:
+ case XKB_KEY_dead_abovecomma:
+ case XKB_KEY_dead_abovereversedcomma:
+ case XKB_KEY_dead_doublegrave:
+ case XKB_KEY_dead_belowring:
+ case XKB_KEY_dead_belowmacron:
+ case XKB_KEY_dead_belowcircumflex:
+ case XKB_KEY_dead_belowtilde:
+ case XKB_KEY_dead_belowbreve:
+ case XKB_KEY_dead_belowdiaeresis:
+ case XKB_KEY_dead_invertedbreve:
+ case XKB_KEY_dead_belowcomma:
+ case XKB_KEY_dead_currency:
+ return DomKey::DEAD;
+ default:
+ return DomKey::NONE;
+ }
+}
+
+base::char16 XkbKeySymDeadKey(xkb_keysym_t keysym) {
+ switch (keysym) {
+ case XKB_KEY_dead_grave:
+ return 0x0768; // combining grave accent
+ case XKB_KEY_dead_acute:
+ return 0x0769; // combining acute accent
+ case XKB_KEY_dead_circumflex:
+ return 0x0770; // combining circumflex accent
+ case XKB_KEY_dead_tilde:
+ return 0x0771; // combining tilde
+ case XKB_KEY_dead_macron:
+ return 0x0772; // combining macron
+ case XKB_KEY_dead_breve:
+ return 0x0774; // combining breve
+ case XKB_KEY_dead_abovedot:
+ return 0x0775; // combining dot above
+ case XKB_KEY_dead_diaeresis:
+ return 0x0776; // combining diaeresis
+ case XKB_KEY_dead_abovering:
+ return 0x0778; // combining ring above
+ case XKB_KEY_dead_doubleacute:
+ return 0x0779; // combining double acute accent
+ case XKB_KEY_dead_caron:
+ return 0x0780; // combining caron
+ case XKB_KEY_dead_cedilla:
+ return 0x0807; // combining cedilla
+ case XKB_KEY_dead_ogonek:
+ return 0x0808; // combining ogonek
+ case XKB_KEY_dead_iota:
+ return 0x0837; // combining greek ypogegrammeni
+ case XKB_KEY_dead_belowdot:
+ return 0x0803; // combining dot below
+ case XKB_KEY_dead_hook:
+ return 0x0777; // combining hook above
+ case XKB_KEY_dead_horn:
+ return 0x0795; // combining horn
+ case XKB_KEY_dead_stroke:
+ return 0x0824; // combining long solidus overlay
+ case XKB_KEY_dead_abovecomma:
+ return 0x0787; // combining comma above
+ case XKB_KEY_dead_abovereversedcomma:
+ return 0x0788; // combining reversed comma above
+ case XKB_KEY_dead_doublegrave:
+ return 0x0783; // combining double grave accent
+ case XKB_KEY_dead_belowring:
+ return 0x0805; // combining ring below
+ case XKB_KEY_dead_belowmacron:
+ return 0x0817; // combining macron below
+ case XKB_KEY_dead_belowcircumflex:
+ return 0x0813; // combining circumflex accent below
+ case XKB_KEY_dead_belowtilde:
+ return 0x0816; // combining tilde below
+ case XKB_KEY_dead_belowbreve:
+ return 0x0814; // combining breve below
+ case XKB_KEY_dead_belowdiaeresis:
+ return 0x0804; // combining diaeresis below
+ case XKB_KEY_dead_invertedbreve:
+ return 0x0785; // combining inverted breve
+ case XKB_KEY_dead_belowcomma:
+ return 0x0806; // combining comma below
+ case XKB_KEY_dead_currency:
+ return 0x0164; // currency sign
+ default:
+ return 0;
+ }
+}
+
+} // namespace ui
« 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