// Copyright 2013 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. // Source of data in this file: // 1. ui/events/keycodes/dom/keycode_converter_data.inc // 2. ui/events/keycodes/keyboard_codes.h // 3. third_party/WebKit/Source/core/platform/chromium/KeyboardCodes.h #ifndef CHROME_TEST_REMOTING_KEY_CODE_MAP_H_ #define CHROME_TEST_REMOTING_KEY_CODE_MAP_H_ #include "ui/events/keycodes/keyboard_codes.h" namespace remoting { typedef struct { // The character typed as a result of the key press without shift. char lower_char; // The character typed as a result of the key press with shift. char upper_char; // The UIEvents (aka: DOM4Events) |code| value as defined in: // https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm const char* code; // The (Windows) virtual keyboard code. ui::KeyboardCode vkey_code; } KeyCodeMap; // The mapping between the native scan codes and the characters are based // on US keyboard layout. const KeyCodeMap key_code_map[] = { // lower UPPER Code KeyboardCode {'a', 'A', "KeyA", ui::VKEY_A}, // aA {'b', 'B', "KeyB", ui::VKEY_B}, // bB {'c', 'C', "KeyC", ui::VKEY_C}, // cC {'d', 'D', "KeyD", ui::VKEY_D}, // dD {'e', 'E', "KeyE", ui::VKEY_E}, // eE {'f', 'F', "KeyF", ui::VKEY_F}, // fF {'g', 'G', "KeyG", ui::VKEY_G}, // gG {'h', 'H', "KeyH", ui::VKEY_H}, // hH {'i', 'I', "KeyI", ui::VKEY_I}, // iI {'j', 'J', "KeyJ", ui::VKEY_J}, // jJ {'k', 'K', "KeyK", ui::VKEY_K}, // kK {'l', 'L', "KeyL", ui::VKEY_L}, // lL {'m', 'M', "KeyM", ui::VKEY_M}, // mM {'n', 'N', "KeyN", ui::VKEY_N}, // nN {'o', 'O', "KeyO", ui::VKEY_O}, // oO {'p', 'P', "KeyP", ui::VKEY_P}, // pP {'q', 'Q', "KeyQ", ui::VKEY_Q}, // qQ {'r', 'R', "KeyR", ui::VKEY_R}, // rR {'s', 'S', "KeyS", ui::VKEY_S}, // sS {'t', 'T', "KeyT", ui::VKEY_T}, // tT {'u', 'U', "KeyU", ui::VKEY_U}, // uU {'v', 'V', "KeyV", ui::VKEY_V}, // vV {'w', 'W', "KeyW", ui::VKEY_W}, // wW {'x', 'X', "KeyX", ui::VKEY_X}, // xX {'y', 'Y', "KeyY", ui::VKEY_Y}, // yY {'z', 'Z', "KeyZ", ui::VKEY_Z}, // zZ {'1', '1', "Digit1", ui::VKEY_1}, // 1! {'2', '2', "Digit2", ui::VKEY_2}, // 2@ {'3', '3', "Digit3", ui::VKEY_3}, // 3# {'4', '4', "Digit4", ui::VKEY_4}, // 4$ {'5', '5', "Digit5", ui::VKEY_5}, // 5% {'6', '6', "Digit6", ui::VKEY_6}, // 6^ {'7', '7', "Digit7", ui::VKEY_7}, // 7& {'8', '8', "Digit8", ui::VKEY_8}, // 8* {'9', '9', "Digit9", ui::VKEY_9}, // 9( {'0', '0', "Digit0", ui::VKEY_0}, // 0) {'\n', '\n', "Enter", ui::VKEY_RETURN}, // Return { 0 , 0 , "Escape", ui::VKEY_UNKNOWN}, // Escape {'\b', '\b', "Backspace", ui::VKEY_BACK}, // Backspace {'\t', '\t', "Tab", ui::VKEY_TAB}, // Tab {' ', ' ', "Space", ui::VKEY_SPACE}, // Spacebar {'-', '_', "Minus", ui::VKEY_OEM_MINUS}, // -_ {'=', '+', "Equal", ui::VKEY_OEM_PLUS}, // =+ {'[', '{', "BracketLeft", ui::VKEY_OEM_4}, // [{ {']', '}', "BracketRight", ui::VKEY_OEM_6}, // ]} {'\\', '|', "Backslash", ui::VKEY_OEM_5}, // \| (US keyboard only) {';', ':', "Semicolon", ui::VKEY_OEM_1}, // ;: {'\'', '\"', "Quote", ui::VKEY_OEM_7}, // '" {'`', '~', "Backquote", ui::VKEY_OEM_3}, // `~ {',', '<', "Comma", ui::VKEY_OEM_COMMA}, // ,< {'.', '>', "Period", ui::VKEY_OEM_PERIOD}, // .> {'/', '?', "Slash", ui::VKEY_OEM_2}, // /? }; } // namespace remoting #endif // CHROME_TEST_REMOTING_KEY_CODE_MAP_H_