OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.h" | 5 #include "ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.h" |
6 | 6 |
7 #include <xkbcommon/xkbcommon-names.h> | 7 #include <xkbcommon/xkbcommon-names.h> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/location.h" | 10 #include "base/location.h" |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 | 89 |
90 // U+0022 quote | 90 // U+0022 quote |
91 const PrintableSubEntry kU0022[] = { | 91 const PrintableSubEntry kU0022[] = { |
92 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, | 92 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, |
93 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3}}; | 93 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3}}; |
94 | 94 |
95 // U+0023 number sign | 95 // U+0023 number sign |
96 const PrintableSubEntry kU0023[] = { | 96 const PrintableSubEntry kU0023[] = { |
97 {DomCode::BACKQUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}, | 97 {DomCode::BACKQUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}, |
98 {DomCode::BACKSLASH, 1, 0, 0x0027, kAny, VKEY_OEM_2}, // apostrophe | 98 {DomCode::BACKSLASH, 1, 0, 0x0027, kAny, VKEY_OEM_2}, // apostrophe |
99 {DomCode::BACKSLASH, 1, 1, 0x007E, kNone, VKEY_OEM_7}}; // ~, NoSymbol | 99 {DomCode::BACKSLASH, 1, 0, 0x007E, kAny, VKEY_OEM_7}}; // ~, NoSymbol |
100 | 100 |
101 // U+0024 dollar sign | 101 // U+0024 dollar sign |
102 const PrintableSubEntry kU0024[] = { | 102 const PrintableSubEntry kU0024[] = { |
103 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_1}, | 103 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_1}, |
104 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_8}}; | 104 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_8}}; |
105 | 105 |
106 // U+0027 apostrophe | 106 // U+0027 apostrophe |
107 const PrintableSubEntry kU0027[] = { | 107 const PrintableSubEntry kU0027[] = { |
108 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, | 108 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, |
109 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_OEM_7}, | 109 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_OEM_7}, |
110 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_1}, | 110 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_1}, |
111 {DomCode::SLASH, 0, 0, kAny, kAny, VKEY_OEM_7}, | 111 {DomCode::SLASH, 0, 0, kAny, kAny, VKEY_OEM_7}, |
112 {DomCode::QUOTE, 1, 0, 0x0022, kAny, VKEY_OEM_7}, // quote | 112 {DomCode::QUOTE, 1, 0, 0x0022, kAny, VKEY_OEM_7}, // quote |
113 {DomCode::BACKQUOTE, 1, 0, 0x0022, kAny, VKEY_OEM_3}, // quote | 113 {DomCode::BACKQUOTE, 1, 0, 0x0022, kAny, VKEY_OEM_3}, // quote |
114 {DomCode::BACKQUOTE, 1, 0, 0x00B7, kAny, VKEY_OEM_5}, // middle dot | 114 {DomCode::BACKQUOTE, 1, 0, 0x00B7, kAny, VKEY_OEM_5}, // middle dot |
115 {DomCode::BACKSLASH, 1, 0, kNone, kAny, VKEY_OEM_5}, // NoSymbol | 115 {DomCode::BACKSLASH, 1, 0, kNone, kAny, VKEY_OEM_5}, // NoSymbol |
116 {DomCode::MINUS, 1, 1, 0x003F, kNone, VKEY_OEM_4}, // ?, NoSymbol | 116 {DomCode::MINUS, 1, 0, 0x003F, kAny, VKEY_OEM_4}, // ? |
117 {DomCode::MINUS, 1, 1, 0x003F, 0x00DD, VKEY_OEM_4}, // ?, Y acute | 117 {DomCode::EQUAL, 1, 0, 0x002A, kAny, VKEY_OEM_PLUS}, // * |
118 {DomCode::EQUAL, 1, 1, 0x002A, kNone, VKEY_OEM_PLUS}, // *, NoSymbol | 118 {DomCode::QUOTE, 1, 0, 0x0040, kAny, VKEY_OEM_3}, // @ |
119 {DomCode::QUOTE, 1, 1, 0x0040, kNone, VKEY_OEM_3}, // @, NoSymbol | |
120 {DomCode::BACKSLASH, 1, 1, 0x002A, kNone, VKEY_OEM_2}, // *, NoSymbol | |
121 {DomCode::BACKSLASH, 1, 1, 0x002A, 0x00BD, VKEY_OEM_5}, // *, one half | 119 {DomCode::BACKSLASH, 1, 1, 0x002A, 0x00BD, VKEY_OEM_5}, // *, one half |
122 {DomCode::BACKSLASH, 1, 1, 0x002A, 0x0141, VKEY_OEM_2}, // *, L stroke | 120 {DomCode::BACKSLASH, 1, 0, 0x002A, kAny, VKEY_OEM_2}, // *, NoSymbol |
123 {DomCode::KEY_Z, 1, 1, 0x0022, kNone, VKEY_Z}, // quote, NoSymbol | 121 {DomCode::KEY_Z, 1, 1, 0x0022, 0x0158, VKEY_OEM_7}, // quote, R caron |
124 {DomCode::KEY_Z, 1, 1, 0x0022, 0x0158, VKEY_OEM_7}}; // quote, R caron | 122 {DomCode::KEY_Z, 1, 0, 0x0022, kAny, VKEY_Z}}; // quote |
125 | 123 |
126 // U+0028 left parenthesis | 124 // U+0028 left parenthesis |
127 const PrintableSubEntry kU0028[] = { | 125 const PrintableSubEntry kU0028[] = { |
128 {DomCode::DIGIT5, 0, 0, kAny, kAny, VKEY_5}, | 126 {DomCode::DIGIT5, 0, 0, kAny, kAny, VKEY_5}, |
129 {DomCode::DIGIT9, 0, 0, kAny, kAny, VKEY_9}, | 127 {DomCode::DIGIT9, 0, 0, kAny, kAny, VKEY_9}, |
130 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}}; | 128 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}}; |
131 | 129 |
132 // U+0029 right parenthesis | 130 // U+0029 right parenthesis |
133 const PrintableSubEntry kU0029[] = { | 131 const PrintableSubEntry kU0029[] = { |
134 {DomCode::DIGIT0, 0, 0, kAny, kAny, VKEY_0}, | 132 {DomCode::DIGIT0, 0, 0, kAny, kAny, VKEY_0}, |
135 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_4}, | 133 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_4}, |
136 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}}; | 134 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}}; |
137 | 135 |
138 // U+002A * | 136 // U+002A * |
139 const PrintableSubEntry kU002A[] = { | 137 const PrintableSubEntry kU002A[] = { |
140 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_1}, | 138 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_1}, |
141 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}}; | 139 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}}; |
142 | 140 |
143 // U+002B plus sign | 141 // U+002B plus sign |
144 const PrintableSubEntry kU002B[] = { | 142 const PrintableSubEntry kU002B[] = { |
145 {DomCode::DIGIT1, 0, 0, kAny, kAny, VKEY_1}, | 143 {DomCode::DIGIT1, 0, 0, kAny, kAny, VKEY_1}, |
146 {DomCode::EQUAL, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, | 144 {DomCode::EQUAL, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, |
147 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, | 145 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, |
148 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, | 146 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, |
149 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, | 147 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, |
150 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2}, | 148 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2}, |
151 {DomCode::MINUS, 1, 1, 0x003F, kNone, VKEY_OEM_PLUS}, // ?, NoSymbol | |
152 {DomCode::MINUS, 1, 1, 0x003F, 0x005C, VKEY_OEM_MINUS}, // ?, backslash | 149 {DomCode::MINUS, 1, 1, 0x003F, 0x005C, VKEY_OEM_MINUS}, // ?, backslash |
153 {DomCode::MINUS, 1, 1, 0x003F, 0x0151, VKEY_OEM_PLUS}}; // ?, o'' | 150 {DomCode::MINUS, 1, 0, 0x003F, kAny, VKEY_OEM_PLUS}}; // ? |
154 | 151 |
155 // U+002C comma | 152 // U+002C comma |
156 const PrintableSubEntry kU002C[] = { | 153 const PrintableSubEntry kU002C[] = { |
157 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3}, | 154 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3}, |
158 {DomCode::DIGIT5, 0, 0, kAny, kAny, VKEY_5}, | 155 {DomCode::DIGIT5, 0, 0, kAny, kAny, VKEY_5}, |
159 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, | 156 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, |
160 {DomCode::DIGIT9, 0, 0, kAny, kAny, VKEY_9}, | 157 {DomCode::DIGIT9, 0, 0, kAny, kAny, VKEY_9}, |
161 {DomCode::KEY_W, 0, 0, kAny, kAny, VKEY_OEM_COMMA}, | 158 {DomCode::KEY_W, 0, 0, kAny, kAny, VKEY_OEM_COMMA}, |
162 {DomCode::KEY_V, 0, 0, kAny, kAny, VKEY_OEM_COMMA}, | 159 {DomCode::KEY_V, 0, 0, kAny, kAny, VKEY_OEM_COMMA}, |
163 {DomCode::KEY_M, 0, 0, kAny, kAny, VKEY_OEM_COMMA}, | 160 {DomCode::KEY_M, 0, 0, kAny, kAny, VKEY_OEM_COMMA}, |
164 {DomCode::COMMA, 0, 0, kAny, kAny, VKEY_OEM_COMMA}}; | 161 {DomCode::COMMA, 0, 0, kAny, kAny, VKEY_OEM_COMMA}}; |
165 | 162 |
166 // U+002D hyphen-minus | 163 // U+002D hyphen-minus |
167 const PrintableSubEntry kU002D[] = { | 164 const PrintableSubEntry kU002D[] = { |
168 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, | 165 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, |
169 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, | 166 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, |
170 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_MINUS}, | 167 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_MINUS}, |
171 {DomCode::KEY_A, 0, 0, kAny, kAny, VKEY_OEM_MINUS}, | 168 {DomCode::KEY_A, 0, 0, kAny, kAny, VKEY_OEM_MINUS}, |
172 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_MINUS}, | 169 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_MINUS}, |
173 {DomCode::SLASH, 1, 0, 0x003D, kAny, VKEY_OEM_MINUS}, // = | 170 {DomCode::SLASH, 1, 0, 0x003D, kAny, VKEY_OEM_MINUS}, // = |
174 {DomCode::EQUAL, 1, 1, 0x005F, kNone, VKEY_OEM_MINUS}, // _, NoSymbol | 171 {DomCode::EQUAL, 1, 1, 0x005F, 0x0157, VKEY_OEM_4}, // _, r cedilla |
175 {DomCode::EQUAL, 1, 1, 0x005F, 0x0157, VKEY_OEM_4}, // _, r cedilla | 172 {DomCode::EQUAL, 1, 0, 0x005F, kAny, VKEY_OEM_MINUS}, // _ |
176 {DomCode::SLASH, 1, 1, 0x005F, kNone, VKEY_OEM_MINUS}, // _, NoSymbol | 173 {DomCode::SLASH, 1, 1, 0x005F, 0x002F, VKEY_OEM_2}, // _, / |
177 {DomCode::SLASH, 1, 1, 0x005F, 0x002A, VKEY_OEM_MINUS}, // _, * | 174 {DomCode::SLASH, 1, 0, 0x005F, kAny, VKEY_OEM_MINUS}}; // _ |
178 {DomCode::SLASH, 1, 1, 0x005F, 0x002F, VKEY_OEM_2}, // _, / | |
179 {DomCode::SLASH, 1, 1, 0x005F, 0x006E, VKEY_OEM_MINUS}}; // _, n | |
180 | 175 |
181 // U+002E full stop | 176 // U+002E full stop |
182 const PrintableSubEntry kU002E[] = { | 177 const PrintableSubEntry kU002E[] = { |
183 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7}, | 178 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7}, |
184 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, | 179 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, |
185 {DomCode::KEY_E, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, | 180 {DomCode::KEY_E, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, |
186 {DomCode::KEY_R, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, | 181 {DomCode::KEY_R, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, |
187 {DomCode::KEY_O, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, | 182 {DomCode::KEY_O, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, |
188 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}, | 183 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}, |
189 {DomCode::PERIOD, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, | 184 {DomCode::PERIOD, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, |
(...skipping 23 matching lines...) Expand all Loading... |
213 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, | 208 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, |
214 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, | 209 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, |
215 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_OEM_1}, | 210 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_OEM_1}, |
216 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_1}, | 211 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_1}, |
217 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}, | 212 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}, |
218 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1}, | 213 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1}, |
219 {DomCode::BACKQUOTE, 0, 0, kAny, kAny, VKEY_OEM_3}, | 214 {DomCode::BACKQUOTE, 0, 0, kAny, kAny, VKEY_OEM_3}, |
220 {DomCode::KEY_Z, 0, 0, kAny, kAny, VKEY_OEM_1}, | 215 {DomCode::KEY_Z, 0, 0, kAny, kAny, VKEY_OEM_1}, |
221 {DomCode::COMMA, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, | 216 {DomCode::COMMA, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}, |
222 {DomCode::SLASH, 0, 0, kAny, kAny, VKEY_OEM_2}}; | 217 {DomCode::SLASH, 0, 0, kAny, kAny, VKEY_OEM_2}}; |
223 | |
224 // U+003D = | 218 // U+003D = |
225 const PrintableSubEntry kU003D[] = { | 219 const PrintableSubEntry kU003D[] = { |
226 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, | 220 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, |
227 {DomCode::EQUAL, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, | 221 {DomCode::EQUAL, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, |
228 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, | 222 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, |
229 {DomCode::SLASH, 1, 0, 0x0025, kAny, VKEY_OEM_8}, // % | 223 {DomCode::SLASH, 1, 0, 0x0025, kAny, VKEY_OEM_8}, // % |
230 {DomCode::SLASH, 1, 0, 0x002B, kAny, VKEY_OEM_PLUS}, // + | 224 {DomCode::SLASH, 1, 0, 0x002B, kAny, VKEY_OEM_PLUS}, // + |
231 {DomCode::MINUS, 1, 1, 0x0025, kNone, VKEY_OEM_PLUS}, // %, NoSymbol | 225 {DomCode::MINUS, 1, 1, 0x0025, 0x002D, VKEY_OEM_MINUS}, // %, - |
232 {DomCode::MINUS, 1, 1, 0x0025, 0x002D, VKEY_OEM_MINUS}}; // %, - | 226 {DomCode::MINUS, 1, 0, 0x0025, kAny, VKEY_OEM_PLUS}}; // %, NoSymbol |
233 | 227 |
234 // U+003F ? | 228 // U+003F ? |
235 const PrintableSubEntry kU003F[] = { | 229 const PrintableSubEntry kU003F[] = { |
236 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, | 230 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, |
237 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7}, | 231 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7}, |
238 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, | 232 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, |
239 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_PLUS}}; | 233 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_PLUS}}; |
240 | 234 |
241 // U+0040 @ | 235 // U+0040 @ |
242 const PrintableSubEntry kU0040[] = { | 236 const PrintableSubEntry kU0040[] = { |
(...skipping 26 matching lines...) Expand all Loading... |
269 | 263 |
270 // U+005F _ | 264 // U+005F _ |
271 const PrintableSubEntry kU005F[] = { | 265 const PrintableSubEntry kU005F[] = { |
272 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, | 266 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, |
273 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_MINUS}}; | 267 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_MINUS}}; |
274 | 268 |
275 // U+0060 grave accent | 269 // U+0060 grave accent |
276 const PrintableSubEntry kU0060[] = { | 270 const PrintableSubEntry kU0060[] = { |
277 {DomCode::BACKQUOTE, 1, 0, kNone, kAny, VKEY_OEM_3}, // NoSymbol | 271 {DomCode::BACKQUOTE, 1, 0, kNone, kAny, VKEY_OEM_3}, // NoSymbol |
278 {DomCode::BACKQUOTE, 1, 0, 0x00AC, kAny, VKEY_OEM_8}, // not | 272 {DomCode::BACKQUOTE, 1, 0, 0x00AC, kAny, VKEY_OEM_8}, // not |
279 {DomCode::BACKQUOTE, 1, 1, 0x007E, kNone, VKEY_OEM_3}, // ~, NoSymbol | 273 {DomCode::BACKQUOTE, 1, 0, 0x007E, kAny, VKEY_OEM_3}}; // ~ |
280 {DomCode::BACKQUOTE, 1, 1, 0x007E, 0x0031, VKEY_OEM_3}, // ~, 1 | |
281 {DomCode::BACKQUOTE, 1, 1, 0x007E, 0x003B, VKEY_OEM_3}, // ~, ; | |
282 {DomCode::BACKQUOTE, 1, 1, 0x007E, 0x0060, VKEY_OEM_3}, // ~, ` | |
283 {DomCode::BACKQUOTE, 1, 1, 0x007E, 0x00BF, VKEY_OEM_3}, // ~, inverted ? | |
284 {DomCode::BACKQUOTE, 1, 1, 0x007E, 0x0151, VKEY_OEM_3}}; // ~, o'' | |
285 | 274 |
286 // U+00A7 section | 275 // U+00A7 section |
287 const PrintableSubEntry kU00A7[] = { | 276 const PrintableSubEntry kU00A7[] = { |
288 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, | 277 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, |
289 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, | 278 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, |
290 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}, | 279 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}, |
291 {DomCode::BACKQUOTE, 1, 0, 0x00B0, kAny, VKEY_OEM_2}, // degree | 280 {DomCode::BACKQUOTE, 1, 0, 0x00B0, kAny, VKEY_OEM_2}, // degree |
292 {DomCode::BACKQUOTE, 1, 0, 0x00BD, kAny, VKEY_OEM_5}}; // one half | 281 {DomCode::BACKQUOTE, 1, 0, 0x00BD, kAny, VKEY_OEM_5}}; // one half |
293 | 282 |
294 // U+00AB left-pointing double angle quote | 283 // U+00AB left-pointing double angle quote |
(...skipping 25 matching lines...) Expand all Loading... |
320 | 309 |
321 // U+00E2 a circumflex | 310 // U+00E2 a circumflex |
322 const PrintableSubEntry kU00E2[] = { | 311 const PrintableSubEntry kU00E2[] = { |
323 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, | 312 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, |
324 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}}; | 313 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}}; |
325 | 314 |
326 // U+00E4 a diaeresis | 315 // U+00E4 a diaeresis |
327 const PrintableSubEntry kU00E4[] = { | 316 const PrintableSubEntry kU00E4[] = { |
328 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}, | 317 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}, |
329 {DomCode::QUOTE, 1, 0, 0x00E0, kAny, VKEY_OEM_5}, // a grave | 318 {DomCode::QUOTE, 1, 0, 0x00E0, kAny, VKEY_OEM_5}, // a grave |
330 {DomCode::QUOTE, 1, 1, 0x00C4, kNone, VKEY_OEM_7}, // A dia., NoSymbol | 319 {DomCode::QUOTE, 1, 0, 0x00C4, kAny, VKEY_OEM_7}}; // A dia. |
331 {DomCode::QUOTE, 1, 1, 0x00C4, 0x015A, VKEY_OEM_7}, // A dia., S acute | |
332 {DomCode::QUOTE, 1, 1, 0x00C4, 0x0159, VKEY_OEM_7}}; // A dia., r caron | |
333 | 320 |
334 // U+00E6 ae | 321 // U+00E6 ae |
335 const PrintableSubEntry kU00E6[] = { | 322 const PrintableSubEntry kU00E6[] = { |
336 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_3}, | 323 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_3}, |
337 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}}; | 324 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}}; |
338 | 325 |
339 // U+00E7 c cedilla | 326 // U+00E7 c cedilla |
340 const PrintableSubEntry kU00E7[] = { | 327 const PrintableSubEntry kU00E7[] = { |
341 {DomCode::DIGIT9, 0, 0, kAny, kAny, VKEY_9}, | 328 {DomCode::DIGIT9, 0, 0, kAny, kAny, VKEY_9}, |
342 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, | 329 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, |
343 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}, | 330 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}, |
344 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}, | 331 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}, |
345 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2}, | 332 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2}, |
346 {DomCode::COMMA, 0, 0, kAny, kAny, VKEY_OEM_COMMA}, | 333 {DomCode::COMMA, 0, 0, kAny, kAny, VKEY_OEM_COMMA}, |
347 {DomCode::SEMICOLON, 1, 1, 0x00C7, kNone, VKEY_OEM_1}, // C ced., NoSy | 334 {DomCode::SEMICOLON, 1, 1, 0x00C7, 0x00DE, VKEY_OEM_3}, // C ced., Thorn |
348 {DomCode::SEMICOLON, 1, 1, 0x00C7, 0x00DE, VKEY_OEM_3}}; // C ced., Thorn | 335 {DomCode::SEMICOLON, 1, 0, 0x00C7, kAny, VKEY_OEM_1}}; // C ced., NoSy |
349 | 336 |
350 // U+00E8 e grave | 337 // U+00E8 e grave |
351 const PrintableSubEntry kU00E8[] = { | 338 const PrintableSubEntry kU00E8[] = { |
352 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7}, | 339 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7}, |
353 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_1}, | 340 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_1}, |
354 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_3}}; | 341 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_3}}; |
355 | 342 |
356 // U+00E9 e acute | 343 // U+00E9 e acute |
357 const PrintableSubEntry kU00E9[] = { | 344 const PrintableSubEntry kU00E9[] = { |
358 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, | 345 {DomCode::DIGIT2, 0, 0, kAny, kAny, VKEY_2}, |
(...skipping 20 matching lines...) Expand all Loading... |
379 // U+00F4 o circumflex | 366 // U+00F4 o circumflex |
380 const PrintableSubEntry kU00F4[] = { | 367 const PrintableSubEntry kU00F4[] = { |
381 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, | 368 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, |
382 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1}}; | 369 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1}}; |
383 | 370 |
384 // U+00F6 o diaeresis | 371 // U+00F6 o diaeresis |
385 const PrintableSubEntry kU00F6[] = { | 372 const PrintableSubEntry kU00F6[] = { |
386 {DomCode::DIGIT0, 0, 0, kAny, kAny, VKEY_OEM_3}, | 373 {DomCode::DIGIT0, 0, 0, kAny, kAny, VKEY_OEM_3}, |
387 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, | 374 {DomCode::MINUS, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, |
388 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, | 375 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, |
389 {DomCode::SEMICOLON, 1, 0, 0x00E9, kAny, VKEY_OEM_7}, // e acute | 376 {DomCode::SEMICOLON, 1, 0, 0x00E9, kAny, VKEY_OEM_7}, // e acute |
390 {DomCode::SEMICOLON, 1, 1, 0x00D6, kNone, VKEY_OEM_3}, // O dia., NoSy | 377 {DomCode::SEMICOLON, 1, 1, 0x00D6, 0x0162, VKEY_OEM_3}, // O dia., T ced. |
391 {DomCode::SEMICOLON, 1, 1, 0x00D6, 0x0162, VKEY_OEM_3}}; // O dia., T ced. | 378 {DomCode::SEMICOLON, 1, 0, 0x00D6, kAny, VKEY_OEM_3}}; // O diaresis |
392 | 379 |
393 // U+00F8 o stroke | 380 // U+00F8 o stroke |
394 const PrintableSubEntry kU00F8[] = { | 381 const PrintableSubEntry kU00F8[] = { |
395 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_3}, | 382 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_3}, |
396 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}}; | 383 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}}; |
397 | 384 |
398 // U+00F9 u grave | 385 // U+00F9 u grave |
399 const PrintableSubEntry kU00F9[] = { | 386 const PrintableSubEntry kU00F9[] = { |
400 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_3}, | 387 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_3}, |
401 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2}}; | 388 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2}}; |
402 | 389 |
403 // U+00FA u acute | 390 // U+00FA u acute |
404 const PrintableSubEntry kU00FA[] = { | 391 const PrintableSubEntry kU00FA[] = { |
405 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, | 392 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, |
406 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}}; | 393 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}}; |
407 | 394 |
408 // U+00FC u diaeresis | 395 // U+00FC u diaeresis |
409 const PrintableSubEntry kU00FC[] = { | 396 const PrintableSubEntry kU00FC[] = { |
410 {DomCode::KEY_W, 0, 0, kAny, kAny, VKEY_W}, | 397 {DomCode::KEY_W, 0, 0, kAny, kAny, VKEY_W}, |
411 {DomCode::BRACKET_LEFT, 1, 0, 0x00E8, kAny, VKEY_OEM_1}, // e grave | 398 {DomCode::BRACKET_LEFT, 1, 0, 0x00E8, kAny, VKEY_OEM_1}, // e grave |
412 {DomCode::MINUS, 1, 1, 0x00DC, kNone, VKEY_OEM_2}, // U dia., NoSy | 399 {DomCode::MINUS, 1, 0, 0x00DC, kAny, VKEY_OEM_2}, // U diaresis |
413 {DomCode::BRACKET_LEFT, 1, 1, 0x00DC, kNone, VKEY_OEM_1}, // U dia., NoSy | 400 {DomCode::BRACKET_LEFT, 1, 1, 0x00DC, 0x0141, VKEY_OEM_3}, // U dia., L- |
414 {DomCode::BRACKET_LEFT, 1, 1, 0x00DC, 0x0141, VKEY_OEM_3}}; // U dia., L- | 401 {DomCode::BRACKET_LEFT, 1, 0, 0x00DC, kAny, VKEY_OEM_1}}; // U diaresis |
415 | 402 |
416 // U+0103 a breve | 403 // U+0103 a breve |
417 const PrintableSubEntry kU0103[] = { | 404 const PrintableSubEntry kU0103[] = { |
418 {DomCode::DIGIT1, 0, 0, kAny, kAny, VKEY_1}, | 405 {DomCode::DIGIT1, 0, 0, kAny, kAny, VKEY_1}, |
419 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}}; | 406 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}}; |
420 | 407 |
421 // U+0105 a ogonek | 408 // U+0105 a ogonek |
422 const PrintableSubEntry kU0105[] = { | 409 const PrintableSubEntry kU0105[] = { |
423 {DomCode::DIGIT1, 0, 0, kAny, kAny, VKEY_1}, | 410 {DomCode::DIGIT1, 0, 0, kAny, kAny, VKEY_1}, |
424 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_Q}, | 411 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_Q}, |
(...skipping 13 matching lines...) Expand all Loading... |
438 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}}; | 425 {DomCode::BRACKET_RIGHT, 0, 0, kAny, kAny, VKEY_OEM_6}}; |
439 | 426 |
440 // U+0117 e dot above | 427 // U+0117 e dot above |
441 const PrintableSubEntry kU0117[] = { | 428 const PrintableSubEntry kU0117[] = { |
442 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, | 429 {DomCode::DIGIT4, 0, 0, kAny, kAny, VKEY_4}, |
443 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}}; | 430 {DomCode::QUOTE, 0, 0, kAny, kAny, VKEY_OEM_7}}; |
444 | 431 |
445 // U+0119 e ogonek | 432 // U+0119 e ogonek |
446 const PrintableSubEntry kU0119[] = { | 433 const PrintableSubEntry kU0119[] = { |
447 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3}, | 434 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3}, |
448 {DomCode::SLASH, 1, 1, 0x0118, kNone, VKEY_OEM_MINUS}, // E ogonek, NoSy | 435 {DomCode::SLASH, 1, 1, 0x0118, 0x006E, VKEY_OEM_2}, // E ogonek, n |
449 {DomCode::SLASH, 1, 1, 0x0118, 0x006E, VKEY_OEM_2}}; // E ogonek, n | 436 {DomCode::SLASH, 1, 0, 0x0118, kAny, VKEY_OEM_MINUS}}; // E ogonek |
450 | 437 |
451 // U+012F i ogonek | 438 // U+012F i ogonek |
452 const PrintableSubEntry kU012F[] = { | 439 const PrintableSubEntry kU012F[] = { |
453 {DomCode::DIGIT5, 0, 0, kAny, kAny, VKEY_5}, | 440 {DomCode::DIGIT5, 0, 0, kAny, kAny, VKEY_5}, |
454 {DomCode::BRACKET_LEFT, 1, 1, 0x012E, kNone, VKEY_OEM_4}}; // Iogonek, NoSy | 441 {DomCode::BRACKET_LEFT, 1, 0, 0x012E, kAny, VKEY_OEM_4}}; // Iogonek |
455 | 442 |
456 // U+0142 l stroke | 443 // U+0142 l stroke |
457 const PrintableSubEntry kU0142[] = { | 444 const PrintableSubEntry kU0142[] = { |
458 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1}, | 445 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1}, |
459 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2}}; | 446 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_2}}; |
460 | 447 |
461 // U+015F s cedilla | 448 // U+015F s cedilla |
462 const PrintableSubEntry kU015F[] = { | 449 const PrintableSubEntry kU015F[] = { |
463 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1}, | 450 {DomCode::SEMICOLON, 0, 0, kAny, kAny, VKEY_OEM_1}, |
464 {DomCode::PERIOD, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}}; | 451 {DomCode::PERIOD, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}}; |
465 | 452 |
466 // U+0161 s caron | 453 // U+0161 s caron |
467 const PrintableSubEntry kU0161[] = { | 454 const PrintableSubEntry kU0161[] = { |
468 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3}, | 455 {DomCode::DIGIT3, 0, 0, kAny, kAny, VKEY_3}, |
469 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, | 456 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, |
470 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, | 457 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, |
471 {DomCode::KEY_A, 0, 0, kAny, kAny, VKEY_OEM_1}, | 458 {DomCode::KEY_A, 0, 0, kAny, kAny, VKEY_OEM_1}, |
472 {DomCode::KEY_F, 0, 0, kAny, kAny, VKEY_F}, | 459 {DomCode::KEY_F, 0, 0, kAny, kAny, VKEY_F}, |
473 {DomCode::PERIOD, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}}; | 460 {DomCode::PERIOD, 0, 0, kAny, kAny, VKEY_OEM_PERIOD}}; |
474 | 461 |
475 // U+016B u macron | 462 // U+016B u macron |
476 const PrintableSubEntry kU016B[] = { | 463 const PrintableSubEntry kU016B[] = { |
477 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, | 464 {DomCode::DIGIT8, 0, 0, kAny, kAny, VKEY_8}, |
478 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_Q}, | 465 {DomCode::KEY_Q, 0, 0, kAny, kAny, VKEY_Q}, |
479 {DomCode::KEY_X, 0, 0, kAny, kAny, VKEY_X}}; | 466 {DomCode::KEY_X, 0, 0, kAny, kAny, VKEY_X}}; |
480 | 467 |
481 // U+0173 u ogonek | 468 // U+0173 u ogonek |
482 const PrintableSubEntry kU0173[] = { | 469 const PrintableSubEntry kU0173[] = { |
483 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7}, | 470 {DomCode::DIGIT7, 0, 0, kAny, kAny, VKEY_7}, |
484 {DomCode::SEMICOLON, 1, 1, 0x0172, kNone, VKEY_OEM_3}, // U ogo., NoSy | 471 {DomCode::SEMICOLON, 1, 1, 0x0172, 0x0162, VKEY_OEM_1}, // U ogo., T ced. |
485 {DomCode::SEMICOLON, 1, 1, 0x0172, 0x0162, VKEY_OEM_1}}; // U ogo., T ced. | 472 {DomCode::SEMICOLON, 1, 0, 0x0172, kAny, VKEY_OEM_3}}; // U ogonek |
486 | 473 |
487 // U+017C z dot above | 474 // U+017C z dot above |
488 const PrintableSubEntry kU017C[] = { | 475 const PrintableSubEntry kU017C[] = { |
489 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, | 476 {DomCode::BRACKET_LEFT, 0, 0, kAny, kAny, VKEY_OEM_4}, |
490 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}}; | 477 {DomCode::BACKSLASH, 0, 0, kAny, kAny, VKEY_OEM_5}}; |
491 | 478 |
492 // U+017E z caron | 479 // U+017E z caron |
493 const PrintableSubEntry kU017E[] = { | 480 const PrintableSubEntry kU017E[] = { |
494 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, | 481 {DomCode::DIGIT6, 0, 0, kAny, kAny, VKEY_6}, |
495 {DomCode::EQUAL, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, | 482 {DomCode::EQUAL, 0, 0, kAny, kAny, VKEY_OEM_PLUS}, |
(...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
957 size_t close_index = layout_name.find(')', parentheses_index); | 944 size_t close_index = layout_name.find(')', parentheses_index); |
958 if (close_index == std::string::npos) | 945 if (close_index == std::string::npos) |
959 close_index = layout_name.size(); | 946 close_index = layout_name.size(); |
960 *layout_variant = layout_name.substr(parentheses_index + 1, | 947 *layout_variant = layout_name.substr(parentheses_index + 1, |
961 close_index - parentheses_index - 1); | 948 close_index - parentheses_index - 1); |
962 } else if (dash_index != std::string::npos) { | 949 } else if (dash_index != std::string::npos) { |
963 *layout_id = layout_name.substr(0, dash_index); | 950 *layout_id = layout_name.substr(0, dash_index); |
964 *layout_variant = layout_name.substr(dash_index + 1); | 951 *layout_variant = layout_name.substr(dash_index + 1); |
965 } | 952 } |
966 } | 953 } |
| 954 |
967 } // namespace ui | 955 } // namespace ui |
OLD | NEW |