15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// found in the LICENSE file. 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include "mojo/examples/keyboard/keys.h" 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include "base/macros.h" 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include "ui/events/event_constants.h" 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include "ui/events/keycodes/keyboard_codes.h" 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)namespace mojo { 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)namespace examples { 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)namespace { 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)const Key kQWERTYKeysRow1[] = 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_Q, 1, 0, 'q' }, 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_W, 1, 0, 'w' }, 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_E, 1, 0, 'e' }, 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_R, 1, 0, 'r' }, 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_T, 1, 0, 't' }, 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_Y, 1, 0, 'y' }, 2353e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) { ui::VKEY_U, 1, 0, 'u' }, 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_I, 1, 0, 'i' }, 255d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) { ui::VKEY_O, 1, 0, 'o' }, 26c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) { ui::VKEY_P, 1, 0, 'p' }, 27a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)}; 2853e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) 295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)const Key kQWERTYKeysRow2[] = 30c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles){ 315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_A, 1, 0, 'a' }, 32c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) { ui::VKEY_S, 1, 0, 's' }, 33c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) { ui::VKEY_D, 1, 0, 'd' }, 34e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) { ui::VKEY_F, 1, 0, 'f' }, 35e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) { ui::VKEY_G, 1, 0, 'g' }, 36e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) { ui::VKEY_H, 1, 0, 'h' }, 37e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) { ui::VKEY_J, 1, 0, 'j' }, 38c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) { ui::VKEY_K, 1, 0, 'k' }, 39e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) { ui::VKEY_L, 1, 0, 'l' }, 40e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)}; 41e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 42e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)const Key kQWERTYKeysRow3[] = 43e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles){ 44e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) { SPECIAL_KEY_SHIFT, 1.5, 0, 0 }, 45e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) { ui::VKEY_Z, 1, 0, 'z' }, 46e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) { ui::VKEY_X, 1, 0, 'x' }, 47e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) { ui::VKEY_C, 1, 0, 'c' }, 48e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) { ui::VKEY_V, 1, 0, 'v' }, 49e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) { ui::VKEY_B, 1, 0, 'b' }, 50e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) { ui::VKEY_N, 1, 0, 'n' }, 51e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) { ui::VKEY_M, 1, 0, 'm' }, 52e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) { ui::VKEY_BACK, 1.5, 0, 0 }, 53e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)}; 54e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 55c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)const Key kQWERTYKeysRow4[] = 56c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles){ 57c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) { SPECIAL_KEY_NUMERIC, 1.5, 0, 0 }, 58c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) { ui::VKEY_DIVIDE, 1, 0, '/' }, 59e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) { ui::VKEY_SPACE, 5, 0, ' ' }, 60c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) { ui::VKEY_DECIMAL, 1, 0, '.' }, 61c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) { ui::VKEY_RETURN, 1.5, 0, 0 }, 62c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)}; 63d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 64d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)const Row kQWERTYRow1 = { 65d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 0, 66c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) kQWERTYKeysRow1, 67c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) arraysize(kQWERTYKeysRow1), 68c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)}; 69c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 70c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)const Row kQWERTYRow2 = { 71e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) .5, 72e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) kQWERTYKeysRow2, 73e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) arraysize(kQWERTYKeysRow2), 74e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)}; 75e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 76e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)const Row kQWERTYRow3 = { 77e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 0, 78e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) kQWERTYKeysRow3, 79e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) arraysize(kQWERTYKeysRow3), 80e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)}; 81e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 82d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)const Row kQWERTYRow4 = { 83d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 0, 84d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) kQWERTYKeysRow4, 855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) arraysize(kQWERTYKeysRow4), 86e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)}; 87e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 88e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)const Key kNumericKeysRow1[] = 89e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles){ 90e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) { ui::VKEY_1, 1, 0, 0 }, 915d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) { ui::VKEY_2, 1, 0, 0 }, 9251b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) { ui::VKEY_3, 1, 0, 0 }, 9309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) { ui::VKEY_4, 1, 0, 0 }, 9409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) { ui::VKEY_5, 1, 0, 0 }, 95c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) { ui::VKEY_6, 1, 0, 0 }, 965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_7, 1, 0, 0 }, 9709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) { ui::VKEY_8, 1, 0, 0 }, 9809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) { ui::VKEY_9, 1, 0, 0 }, 99d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) { ui::VKEY_0, 1, 0, 0 }, 1005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}; 1015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1025d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)const Key kNumericKeysRow2[] = 1035d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles){ 1045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // @#$%&-+() 1055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_2, 1, ui::EF_SHIFT_DOWN, '@' }, 1065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_3, 1, ui::EF_SHIFT_DOWN, '#' }, 1075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_4, 1, ui::EF_SHIFT_DOWN, '$' }, 1085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_5, 1, ui::EF_SHIFT_DOWN, '%' }, 1095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_7, 1, ui::EF_SHIFT_DOWN, '&' }, 1105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_SUBTRACT, 1, 0, '-' }, 1115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_ADD, 1, 0, '+' }, 112591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch { ui::VKEY_9, 1, ui::EF_SHIFT_DOWN, '(' }, 1135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_0, 1, ui::EF_SHIFT_DOWN, ')' }, 1145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}; 115926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 1165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)const Key kNumericKeysRow3[] = 1179e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles){ 1185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // *"':;!? backspace 1195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_MULTIPLY, 1, 0, '*' }, 1205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_OEM_7, 1, ui::EF_SHIFT_DOWN, '"' }, 1215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_OEM_7, 1, 0, '\'' }, 1225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_OEM_1, 1, ui::EF_SHIFT_DOWN, ':' }, 1235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_OEM_1, 1, 0, ';' }, 124c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) { ui::VKEY_1, 1, ui::EF_SHIFT_DOWN, '!' }, 1255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_OEM_2, 1, ui::EF_SHIFT_DOWN, '?' }, 1265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_BACK, 1.5, 0, 0 }, 1275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}; 1285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)const Key kNumericKeysRow4[] = 1305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 1315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // ABC _ / space (3) ,.enter 1325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { SPECIAL_KEY_ALPHA, 1.5, 0, 0 }, 1335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_OEM_MINUS, 1, ui::EF_SHIFT_DOWN, '_' }, 1345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_OEM_2, 1, 0, '/' }, 1355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_SPACE, 3, 0, ' ' }, 1365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_OEM_COMMA, 1, 0, ',' }, 137323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) { ui::VKEY_OEM_PERIOD, 1, 0, '.' }, 1385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { ui::VKEY_RETURN, 1.5, 0, 0 }, 1395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}; 1405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)const Row kNumericRow1 = { 1425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 0, 1435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) kNumericKeysRow1, 1445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) arraysize(kNumericKeysRow1), 1455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}; 1465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)const Row kNumericRow2 = { 1485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) .5, 1495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) kNumericKeysRow2, 1505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) arraysize(kNumericKeysRow2), 1515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}; 1525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)const Row kNumericRow3 = { 15409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 1.5, 15509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) kNumericKeysRow3, 1565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) arraysize(kNumericKeysRow3), 1575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}; 158d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 1595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)const Row kNumericRow4 = { 160c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 0, 1615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) kNumericKeysRow4, 1625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) arraysize(kNumericKeysRow4), 1635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}; 16402772c6a72f1ee0b226341a4f4439970c29fc861Ben Murdoch 1655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} // namespace 1665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)std::vector<const Row*> GetQWERTYRows() { 1685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) std::vector<const Row*> rows; 169 rows.push_back(&kQWERTYRow1); 170 rows.push_back(&kQWERTYRow2); 171 rows.push_back(&kQWERTYRow3); 172 rows.push_back(&kQWERTYRow4); 173 return rows; 174} 175 176std::vector<const Row*> GetNumericRows() { 177 std::vector<const Row*> rows; 178 rows.push_back(&kNumericRow1); 179 rows.push_back(&kNumericRow2); 180 rows.push_back(&kNumericRow3); 181 rows.push_back(&kNumericRow4); 182 return rows; 183} 184 185} // namespace examples 186} // namespace mojo 187