168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// found in the LICENSE file. 468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// Source of data in this file: 6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// 1. ui/events/keycodes/dom4/keycode_converter_data.h 768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// 2. ui/events/keycodes/keyboard_codes.h 868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// 3. third_party/WebKit/Source/core/platform/chromium/KeyboardCodes.h 94e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#ifndef CHROME_TEST_REMOTING_KEY_CODE_MAP_H_ 104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#define CHROME_TEST_REMOTING_KEY_CODE_MAP_H_ 1168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 1268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#include "base/basictypes.h" 1368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#include "ui/events/keycodes/keyboard_codes.h" 1468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 1568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)namespace remoting { 1668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 1768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)typedef struct { 1868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // The character typed as a result of the key press without shift. 1968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) char lower_char; 2068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 2168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // The character typed as a result of the key press with shift. 2268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) char upper_char; 2368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 2468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // The UIEvents (aka: DOM4Events) |code| value as defined in: 2568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm 2668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) const char* code; 2768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 2868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // The (Windows) virtual keyboard code. 2968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) ui::KeyboardCode vkey_code; 3068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)} KeyCodeMap; 3168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 3268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// The mapping between the native scan codes and the characters are based 3368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// on US keyboard layout. 3468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)const KeyCodeMap key_code_map[] = { 3568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 3668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)//lower UPPER Code KeyboardCode 3768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'a', 'A', "KeyA", ui::VKEY_A}, // aA 3868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'b', 'B', "KeyB", ui::VKEY_B}, // bB 3968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'c', 'C', "KeyC", ui::VKEY_C}, // cC 4068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'d', 'D', "KeyD", ui::VKEY_D}, // dD 4168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'e', 'E', "KeyE", ui::VKEY_E}, // eE 4268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'f', 'F', "KeyF", ui::VKEY_F}, // fF 4368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'g', 'G', "KeyG", ui::VKEY_G}, // gG 4468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'h', 'H', "KeyH", ui::VKEY_H}, // hH 4568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'i', 'I', "KeyI", ui::VKEY_I}, // iI 4668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'j', 'J', "KeyJ", ui::VKEY_J}, // jJ 4768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'k', 'K', "KeyK", ui::VKEY_K}, // kK 4868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'l', 'L', "KeyL", ui::VKEY_L}, // lL 4968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'m', 'M', "KeyM", ui::VKEY_M}, // mM 5068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'n', 'N', "KeyN", ui::VKEY_N}, // nN 5168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'o', 'O', "KeyO", ui::VKEY_O}, // oO 5268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'p', 'P', "KeyP", ui::VKEY_P}, // pP 5368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'q', 'Q', "KeyQ", ui::VKEY_Q}, // qQ 5468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'r', 'R', "KeyR", ui::VKEY_R}, // rR 5568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'s', 'S', "KeyS", ui::VKEY_S}, // sS 5668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'t', 'T', "KeyT", ui::VKEY_T}, // tT 5768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'u', 'U', "KeyU", ui::VKEY_U}, // uU 5868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'v', 'V', "KeyV", ui::VKEY_V}, // vV 5968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'w', 'W', "KeyW", ui::VKEY_W}, // wW 6068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'x', 'X', "KeyX", ui::VKEY_X}, // xX 6168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'y', 'Y', "KeyY", ui::VKEY_Y}, // yY 6268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'z', 'Z', "KeyZ", ui::VKEY_Z}, // zZ 6368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'1', '1', "Digit1", ui::VKEY_0}, // 1! 6468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'2', '2', "Digit2", ui::VKEY_1}, // 2@ 6568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'3', '3', "Digit3", ui::VKEY_2}, // 3# 6668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'4', '4', "Digit4", ui::VKEY_3}, // 4$ 6768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'5', '5', "Digit5", ui::VKEY_4}, // 5% 6868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'6', '6', "Digit6", ui::VKEY_5}, // 6^ 6968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'7', '7', "Digit7", ui::VKEY_6}, // 7& 7068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'8', '8', "Digit8", ui::VKEY_7}, // 8* 7168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'9', '9', "Digit9", ui::VKEY_8}, // 9( 7268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'0', '0', "Digit0", ui::VKEY_9}, // 0) 7368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 7468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'\n', '\n', "Enter", ui::VKEY_RETURN}, // Return 7568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) { 0 , 0 , "Escape", ui::VKEY_UNKNOWN}, // Escape 7668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'\b', '\b', "Backspace", ui::VKEY_BACK}, // Backspace 7768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'\t', '\t', "Tab", ui::VKEY_TAB}, // Tab 7868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {' ', ' ', "Space", ui::VKEY_SPACE}, // Spacebar 7968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'-', '_', "Minus", ui::VKEY_OEM_MINUS}, // -_ 8068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'=', '+', "Equal", ui::VKEY_OEM_PLUS}, // =+ 8168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'[', '{', "BracketLeft", ui::VKEY_OEM_4}, // [{ 8268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {']', '}', "BracketRight", ui::VKEY_OEM_6}, // ]} 8368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'\\', '|', "Backslash", ui::VKEY_OEM_5}, // \| (US keyboard only) 8468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {';', ':', "Semicolon", ui::VKEY_OEM_1}, // ;: 8568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'\'', '\"', "Quote", ui::VKEY_OEM_7}, // '" 8668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'`', '~', "Backquote", ui::VKEY_OEM_3}, // `~ 8768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {',', '<', "Comma", ui::VKEY_OEM_COMMA}, // ,< 8868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'.', '>', "Period", ui::VKEY_OEM_PERIOD}, // .> 8968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) {'/', '?', "Slash", ui::VKEY_OEM_2}, // /? 9068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)}; 9168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 9268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)} // namespace remoting 9368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 944e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#endif // CHROME_TEST_REMOTING_KEY_CODE_MAP_H_ 95