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 "mojo/examples/keyboard/keys.h"
6
7 #include "base/macros.h"
8 #include "ui/events/event_constants.h"
9 #include "ui/events/keycodes/keyboard_codes.h"
10
11 namespace mojo {
12 namespace examples {
13 namespace {
14
15 const Key kQWERTYKeysRow1[] =
16 {
17 { ui::VKEY_Q, 1, 0, 'q' },
18 { ui::VKEY_W, 1, 0, 'w' },
19 { ui::VKEY_E, 1, 0, 'e' },
20 { ui::VKEY_R, 1, 0, 'r' },
21 { ui::VKEY_T, 1, 0, 't' },
22 { ui::VKEY_Y, 1, 0, 'y' },
23 { ui::VKEY_U, 1, 0, 'u' },
24 { ui::VKEY_I, 1, 0, 'i' },
25 { ui::VKEY_O, 1, 0, 'o' },
26 { ui::VKEY_P, 1, 0, 'p' },
27 };
28
29 const Key kQWERTYKeysRow2[] =
30 {
31 { ui::VKEY_A, 1, 0, 'a' },
32 { ui::VKEY_S, 1, 0, 's' },
33 { ui::VKEY_D, 1, 0, 'd' },
34 { ui::VKEY_F, 1, 0, 'f' },
35 { ui::VKEY_G, 1, 0, 'g' },
36 { ui::VKEY_H, 1, 0, 'h' },
37 { ui::VKEY_J, 1, 0, 'j' },
38 { ui::VKEY_K, 1, 0, 'k' },
39 { ui::VKEY_L, 1, 0, 'l' },
40 };
41
42 const Key kQWERTYKeysRow3[] =
43 {
44 { SPECIAL_KEY_SHIFT, 1.5, 0, 0 },
45 { ui::VKEY_Z, 1, 0, 'z' },
46 { ui::VKEY_X, 1, 0, 'x' },
47 { ui::VKEY_C, 1, 0, 'c' },
48 { ui::VKEY_V, 1, 0, 'v' },
49 { ui::VKEY_B, 1, 0, 'b' },
50 { ui::VKEY_N, 1, 0, 'n' },
51 { ui::VKEY_M, 1, 0, 'm' },
52 { ui::VKEY_BACK, 1.5, 0, 0 },
53 };
54
55 const Key kQWERTYKeysRow4[] =
56 {
57 { SPECIAL_KEY_NUMERIC, 1.5, 0, 0 },
58 { ui::VKEY_DIVIDE, 1, 0, '/' },
59 { ui::VKEY_SPACE, 5, 0, ' ' },
60 { ui::VKEY_DECIMAL, 1, 0, '.' },
61 { ui::VKEY_RETURN, 1.5, 0, 0 },
62 };
63
64 const Row kQWERTYRow1 = {
65 0,
66 kQWERTYKeysRow1,
67 arraysize(kQWERTYKeysRow1),
68 };
69
70 const Row kQWERTYRow2 = {
71 .5,
72 kQWERTYKeysRow2,
73 arraysize(kQWERTYKeysRow2),
74 };
75
76 const Row kQWERTYRow3 = {
77 0,
78 kQWERTYKeysRow3,
79 arraysize(kQWERTYKeysRow3),
80 };
81
82 const Row kQWERTYRow4 = {
83 0,
84 kQWERTYKeysRow4,
85 arraysize(kQWERTYKeysRow4),
86 };
87
88 const Key kNumericKeysRow1[] =
89 {
90 { ui::VKEY_1, 1, 0, 0 },
91 { ui::VKEY_2, 1, 0, 0 },
92 { ui::VKEY_3, 1, 0, 0 },
93 { ui::VKEY_4, 1, 0, 0 },
94 { ui::VKEY_5, 1, 0, 0 },
95 { ui::VKEY_6, 1, 0, 0 },
96 { ui::VKEY_7, 1, 0, 0 },
97 { ui::VKEY_8, 1, 0, 0 },
98 { ui::VKEY_9, 1, 0, 0 },
99 { ui::VKEY_0, 1, 0, 0 },
100 };
101
102 const Key kNumericKeysRow2[] =
103 {
104 // @#$%&-+()
105 { ui::VKEY_2, 1, ui::EF_SHIFT_DOWN, '@' },
106 { ui::VKEY_3, 1, ui::EF_SHIFT_DOWN, '#' },
107 { ui::VKEY_4, 1, ui::EF_SHIFT_DOWN, '$' },
108 { ui::VKEY_5, 1, ui::EF_SHIFT_DOWN, '%' },
109 { ui::VKEY_7, 1, ui::EF_SHIFT_DOWN, '&' },
110 { ui::VKEY_SUBTRACT, 1, 0, '-' },
111 { ui::VKEY_ADD, 1, 0, '+' },
112 { ui::VKEY_9, 1, ui::EF_SHIFT_DOWN, '(' },
113 { ui::VKEY_0, 1, ui::EF_SHIFT_DOWN, ')' },
114 };
115
116 const Key kNumericKeysRow3[] =
117 {
118 // *"':;!? backspace
119 { ui::VKEY_MULTIPLY, 1, 0, '*' },
120 { ui::VKEY_OEM_7, 1, ui::EF_SHIFT_DOWN, '"' },
121 { ui::VKEY_OEM_7, 1, 0, '\'' },
122 { ui::VKEY_OEM_1, 1, ui::EF_SHIFT_DOWN, ':' },
123 { ui::VKEY_OEM_1, 1, 0, ';' },
124 { ui::VKEY_1, 1, ui::EF_SHIFT_DOWN, '!' },
125 { ui::VKEY_OEM_2, 1, ui::EF_SHIFT_DOWN, '?' },
126 { ui::VKEY_BACK, 1.5, 0, 0 },
127 };
128
129 const Key kNumericKeysRow4[] =
130 {
131 // ABC _ / space (3) ,.enter
132 { SPECIAL_KEY_ALPHA, 1.5, 0, 0 },
133 { ui::VKEY_OEM_MINUS, 1, ui::EF_SHIFT_DOWN, '_' },
134 { ui::VKEY_OEM_2, 1, 0, '/' },
135 { ui::VKEY_SPACE, 3, 0, ' ' },
136 { ui::VKEY_OEM_COMMA, 1, 0, ',' },
137 { ui::VKEY_OEM_PERIOD, 1, 0, '.' },
138 { ui::VKEY_RETURN, 1.5, 0, 0 },
139 };
140
141 const Row kNumericRow1 = {
142 0,
143 kNumericKeysRow1,
144 arraysize(kNumericKeysRow1),
145 };
146
147 const Row kNumericRow2 = {
148 .5,
149 kNumericKeysRow2,
150 arraysize(kNumericKeysRow2),
151 };
152
153 const Row kNumericRow3 = {
154 1.5,
155 kNumericKeysRow3,
156 arraysize(kNumericKeysRow3),
157 };
158
159 const Row kNumericRow4 = {
160 0,
161 kNumericKeysRow4,
162 arraysize(kNumericKeysRow4),
163 };
164
165 } // namespace
166
GetQWERTYRows()167 std::vector<const Row*> GetQWERTYRows() {
168 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
GetNumericRows()176 std::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