Reactos
1/*
2 * PROJECT: ReactOS On-Screen Keyboard
3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4 * PURPOSE: Keyboard layout data.
5 * COPYRIGHT: Baruch Rutman (peterooch at gmail dot com)
6 *
7 * This is partialy based on the original en-US dialog templates.
8 */
9#include "precomp.h"
10
11KEY EnhancedKeyboardKeys[] =
12{
13 {L"Esc", SCAN_CODE_110, 4, 4, 28, 28, 0, FALSE},
14 {L"F1", SCAN_CODE_112, 68, 4, 28, 28, 0, FALSE},
15 {L"F2", SCAN_CODE_113, 100, 4, 28, 28, 0, FALSE},
16 {L"F3", SCAN_CODE_114, 132, 4, 28, 28, 0, FALSE},
17 {L"F4", SCAN_CODE_115, 164, 4, 28, 28, 0, FALSE},
18 {L"F5", SCAN_CODE_116, 228, 4, 28, 28, 0, FALSE},
19 {L"F6", SCAN_CODE_117, 260, 4, 28, 28, 0, FALSE},
20 {L"F7", SCAN_CODE_118, 292, 4, 28, 28, 0, FALSE},
21 {L"F8", SCAN_CODE_119, 324, 4, 28, 28, 0, FALSE},
22 {L"F9", SCAN_CODE_120, 388, 4, 28, 28, 0, FALSE},
23 {L"F10", SCAN_CODE_121, 420, 4, 28, 28, 0, FALSE},
24 {L"F11", SCAN_CODE_122, 452, 4, 28, 28, 0, FALSE},
25 {L"F12", SCAN_CODE_123, 484, 4, 28, 28, 0, FALSE},
26 {L"Prn", SCAN_CODE_124, 516, 4, 28, 28, 0, FALSE},
27 {L"Stop", SCAN_CODE_125, 548, 4, 28, 28, 0, FALSE},
28 {L"Attn", SCAN_CODE_126, 580, 4, 28, 28, 0, FALSE},
29 {L"`", SCAN_CODE_1, 4, 35, 28, 28, 0, TRUE},
30 {L"1", SCAN_CODE_2, 36, 35, 28, 28, 0, TRUE},
31 {L"2", SCAN_CODE_3, 68, 35, 28, 28, 0, TRUE},
32 {L"3", SCAN_CODE_4, 100, 35, 28, 28, 0, TRUE},
33 {L"4", SCAN_CODE_5, 132, 35, 28, 28, 0, TRUE},
34 {L"5", SCAN_CODE_6, 164, 35, 28, 28, 0, TRUE},
35 {L"6", SCAN_CODE_7, 196, 35, 28, 28, 0, TRUE},
36 {L"7", SCAN_CODE_8, 228, 35, 28, 28, 0, TRUE},
37 {L"8", SCAN_CODE_9, 260, 35, 28, 28, 0, TRUE},
38 {L"9", SCAN_CODE_10, 292, 35, 28, 28, 0, TRUE},
39 {L"0", SCAN_CODE_11, 324, 35, 28, 28, 0, TRUE},
40 {L"-", SCAN_CODE_12, 356, 35, 28, 28, 0, TRUE},
41 {L"=", SCAN_CODE_13, 388, 35, 28, 28, 0, TRUE},
42 {L"<--", SCAN_CODE_15, 420, 35, 92, 28, BS_ICON, FALSE},
43 {L"Tab", SCAN_CODE_16, 4, 65, 60, 28, BS_ICON, FALSE},
44 {L"q", SCAN_CODE_17, 67, 65, 28, 28, 0, TRUE},
45 {L"w", SCAN_CODE_18, 97, 65, 28, 28, 0, TRUE},
46 {L"e", SCAN_CODE_19, 128, 65, 28, 28, 0, TRUE},
47 {L"r", SCAN_CODE_20, 158, 65, 28, 28, 0, TRUE},
48 {L"t", SCAN_CODE_21, 188, 65, 28, 28, 0, TRUE},
49 {L"y", SCAN_CODE_22, 219, 65, 28, 28, 0, TRUE},
50 {L"u", SCAN_CODE_23, 249, 65, 28, 28, 0, TRUE},
51 {L"i", SCAN_CODE_24, 280, 65, 28, 28, 0, TRUE},
52 {L"o", SCAN_CODE_25, 310, 65, 28, 28, 0, TRUE},
53 {L"p", SCAN_CODE_26, 340, 65, 28, 28, 0, TRUE},
54 {L"[", SCAN_CODE_27, 371, 65, 28, 28, 0, TRUE},
55 {L"]", SCAN_CODE_28, 401, 65, 28, 28, 0, TRUE},
56 {L"lock", SCAN_CODE_30, 4, 96, 78, 28, BS_ICON, FALSE},
57 {L"a", SCAN_CODE_31, 84, 96, 28, 28, 0, TRUE},
58 {L"s", SCAN_CODE_32, 115, 96, 28, 28, 0, TRUE},
59 {L"d", SCAN_CODE_33, 145, 96, 28, 28, 0, TRUE},
60 {L"f", SCAN_CODE_34, 176, 96, 28, 28, 0, TRUE},
61 {L"g", SCAN_CODE_35, 206, 96, 28, 28, 0, TRUE},
62 {L"h", SCAN_CODE_36, 236, 96, 28, 28, 0, TRUE},
63 {L"j", SCAN_CODE_37, 267, 96, 28, 28, 0, TRUE},
64 {L"k", SCAN_CODE_38, 297, 96, 28, 28, 0, TRUE},
65 {L"l", SCAN_CODE_39, 328, 96, 28, 28, 0, TRUE},
66 {L";", SCAN_CODE_40, 358, 96, 28, 28, 0, TRUE},
67 {L"'", SCAN_CODE_41, 388, 96, 28, 28, 0, TRUE},
68 {L"\\", SCAN_CODE_29, 432, 65, 80, 28, 0, TRUE},
69 {L"ret", SCAN_CODE_43, 419, 96, 93, 28, BS_ICON, FALSE},
70 {L"shift", SCAN_CODE_44, 4, 126, 95, 28, BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX, FALSE},
71 {L"z", SCAN_CODE_46, 102, 126, 28, 28, 0, TRUE},
72 {L"x", SCAN_CODE_47, 132, 126, 28, 28, 0, TRUE},
73 {L"c", SCAN_CODE_48, 163, 126, 28, 28, 0, TRUE},
74 {L"v", SCAN_CODE_49, 193, 126, 28, 28, 0, TRUE},
75 {L"b", SCAN_CODE_50, 224, 126, 28, 28, 0, TRUE},
76 {L"n", SCAN_CODE_51, 254, 126, 28, 28, 0, TRUE},
77 {L"m", SCAN_CODE_52, 284, 126, 28, 28, 0, TRUE},
78 {L",", SCAN_CODE_53, 315, 126, 28, 28, 0, TRUE},
79 {L".", SCAN_CODE_54, 345, 126, 28, 28, 0, TRUE},
80 {L"/", SCAN_CODE_55, 376, 126, 28, 28, 0, TRUE},
81 {L"shift", SCAN_CODE_57, 406, 126, 106, 28, BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX, FALSE},
82 {L"ctrl", SCAN_CODE_58, 4, 156, 43, 28, BS_PUSHLIKE|BS_AUTOCHECKBOX, FALSE},
83 {L"v", SCAN_CODE_84, 548, 156, 28, 28, BS_ICON, FALSE},
84 {L"ROS", SCAN_CODE_127, 48, 156, 43, 28, BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX, FALSE},
85 {L"alt", SCAN_CODE_60, 91, 156, 43, 28, BS_PUSHLIKE|BS_AUTOCHECKBOX, FALSE},
86 {L"", SCAN_CODE_61, 134, 156, 204, 28, 0, FALSE},
87 {L"alt", SCAN_CODE_62, 340, 156, 43, 28, BS_PUSHLIKE|BS_AUTOCHECKBOX, FALSE},
88 {L"ROS", SCAN_CODE_128, 384, 156, 43, 28, BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX, FALSE},
89 {L"menu", SCAN_CODE_129, 427, 156, 43, 28, BS_ICON, FALSE},
90 {L"ctrl", SCAN_CODE_64, 470, 156, 42, 28, BS_PUSHLIKE|BS_AUTOCHECKBOX, FALSE},
91 {L"ins", SCAN_CODE_75, 516, 35, 28, 28, 0, FALSE},
92 {L"del", SCAN_CODE_76, 516, 65, 28, 28, 0, FALSE},
93 {L"hm", SCAN_CODE_80, 548, 35, 28, 28, BS_ICON, FALSE},
94 {L"end", SCAN_CODE_81, 548, 65, 28, 28, 0, FALSE},
95 {L"pup", SCAN_CODE_85, 580, 35, 28, 28, BS_ICON, FALSE},
96 {L"pdn", SCAN_CODE_86, 580, 65, 28, 28, BS_ICON, FALSE},
97 {L"<-", SCAN_CODE_79, 516, 156, 28, 28, BS_ICON, FALSE},
98 {L"^", SCAN_CODE_83, 548, 126, 28, 28, BS_ICON, FALSE},
99 {L"->", SCAN_CODE_89, 580, 156, 28, 28, BS_ICON, FALSE},
100 {L"nlk", SCAN_CODE_90, 612, 35, 28, 28, 0, FALSE},
101 {L"7", SCAN_CODE_91, 612, 65, 28, 28, 0, FALSE},
102 {L"4", SCAN_CODE_92, 612, 96, 28, 28, 0, FALSE},
103 {L"1", SCAN_CODE_93, 612, 126, 28, 28, 0, FALSE},
104 {L"/", SCAN_CODE_95, 644, 35, 28, 28, 0, FALSE},
105 {L"8", SCAN_CODE_96, 644, 65, 28, 28, 0, FALSE},
106 {L"5", SCAN_CODE_97, 644, 96, 28, 28, 0, FALSE},
107 {L"2", SCAN_CODE_98, 644, 126, 28, 28, 0, FALSE},
108 {L"0", SCAN_CODE_99, 612, 156, 60, 28, 0, FALSE},
109 {L"*", SCAN_CODE_100, 676, 35, 28, 28, 0, FALSE},
110 {L"9", SCAN_CODE_101, 676, 65, 28, 28, 0, FALSE},
111 {L"6", SCAN_CODE_102, 676, 96, 28, 28, 0, FALSE},
112 {L"3", SCAN_CODE_103, 676, 126, 28, 28, 0, FALSE},
113 {L".", SCAN_CODE_104, 676, 156, 28, 28, 0, FALSE},
114 {L"-", SCAN_CODE_105, 708, 35, 28, 28, 0, FALSE},
115 {L"+", SCAN_CODE_106, 708, 65, 28, 59, 0, FALSE},
116 {L"ent", SCAN_CODE_108, 708, 126, 28, 58, 0, FALSE},
117};
118
119KEY StandardKeyboardKeys[] =
120{
121 {L"Esc", SCAN_CODE_110, 4, 4, 28, 28, 0, FALSE},
122 {L"F1", SCAN_CODE_112, 68, 4, 28, 28, 0, FALSE},
123 {L"F2", SCAN_CODE_113, 100, 4, 28, 28, 0, FALSE},
124 {L"F3", SCAN_CODE_114, 132, 4, 28, 28, 0, FALSE},
125 {L"F4", SCAN_CODE_115, 164, 4, 28, 28, 0, FALSE},
126 {L"F5", SCAN_CODE_116, 196, 4, 28, 28, 0, FALSE},
127 {L"F6", SCAN_CODE_117, 228, 4, 28, 28, 0, FALSE},
128 {L"F7", SCAN_CODE_118, 292, 4, 28, 28, 0, FALSE},
129 {L"F8", SCAN_CODE_119, 324, 4, 28, 28, 0, FALSE},
130 {L"F9", SCAN_CODE_120, 356, 4, 28, 28, 0, FALSE},
131 {L"F10", SCAN_CODE_121, 388, 4, 28, 28, 0, FALSE},
132 {L"F11", SCAN_CODE_122, 420, 4, 28, 28, 0, FALSE},
133 {L"F12", SCAN_CODE_123, 452, 4, 28, 28, 0, FALSE},
134 {L"Prn", SCAN_CODE_124, 486, 4, 28, 28, 0, FALSE},
135 {L"Stop", SCAN_CODE_125, 518, 4, 28, 28, 0, FALSE},
136 {L"Attn", SCAN_CODE_126, 550, 4, 28, 28, 0, FALSE},
137 {L"`", SCAN_CODE_1, 4, 35, 28, 28, 0, TRUE},
138 {L"1", SCAN_CODE_2, 36, 35, 28, 28, 0, TRUE},
139 {L"2", SCAN_CODE_3, 68, 35, 28, 28, 0, TRUE},
140 {L"3", SCAN_CODE_4, 100, 35, 28, 28, 0, TRUE},
141 {L"4", SCAN_CODE_5, 132, 35, 28, 28, 0, TRUE},
142 {L"5", SCAN_CODE_6, 164, 35, 28, 28, 0, TRUE},
143 {L"6", SCAN_CODE_7, 196, 35, 28, 28, 0, TRUE},
144 {L"7", SCAN_CODE_8, 228, 35, 28, 28, 0, TRUE},
145 {L"8", SCAN_CODE_9, 260, 35, 28, 28, 0, TRUE},
146 {L"9", SCAN_CODE_10, 292, 35, 28, 28, 0, TRUE},
147 {L"0", SCAN_CODE_11, 324, 35, 28, 28, 0, TRUE},
148 {L"-", SCAN_CODE_12, 356, 35, 28, 28, 0, TRUE},
149 {L"=", SCAN_CODE_13, 388, 35, 28, 28, 0, TRUE},
150 {L"<--", SCAN_CODE_15, 420, 35, 63, 28, BS_ICON, FALSE},
151 {L"Tab", SCAN_CODE_16, 4, 65, 60, 28, BS_ICON, FALSE},
152 {L"q", SCAN_CODE_17, 67, 65, 28, 28, 0, TRUE},
153 {L"w", SCAN_CODE_18, 97, 65, 28, 28, 0, TRUE},
154 {L"e", SCAN_CODE_19, 128, 65, 28, 28, 0, TRUE},
155 {L"r", SCAN_CODE_20, 158, 65, 28, 28, 0, TRUE},
156 {L"t", SCAN_CODE_21, 188, 65, 28, 28, 0, TRUE},
157 {L"y", SCAN_CODE_22, 219, 65, 28, 28, 0, TRUE},
158 {L"u", SCAN_CODE_23, 249, 65, 28, 28, 0, TRUE},
159 {L"i", SCAN_CODE_24, 280, 65, 28, 28, 0, TRUE},
160 {L"o", SCAN_CODE_25, 310, 65, 28, 28, 0, TRUE},
161 {L"p", SCAN_CODE_26, 340, 65, 28, 28, 0, TRUE},
162 {L"[", SCAN_CODE_27, 371, 65, 28, 28, 0, TRUE},
163 {L"]", SCAN_CODE_28, 401, 65, 28, 28, 0, TRUE},
164 {L"lock", SCAN_CODE_30, 4, 96, 78, 28, BS_ICON, FALSE},
165 {L"a", SCAN_CODE_31, 84, 96, 28, 28, 0, TRUE},
166 {L"s", SCAN_CODE_32, 115, 96, 28, 28, 0, TRUE},
167 {L"d", SCAN_CODE_33, 145, 96, 28, 28, 0, TRUE},
168 {L"f", SCAN_CODE_34, 176, 96, 28, 28, 0, TRUE},
169 {L"g", SCAN_CODE_35, 206, 96, 28, 28, 0, TRUE},
170 {L"h", SCAN_CODE_36, 236, 96, 28, 28, 0, TRUE},
171 {L"j", SCAN_CODE_37, 267, 96, 28, 28, 0, TRUE},
172 {L"k", SCAN_CODE_38, 297, 96, 28, 28, 0, TRUE},
173 {L"l", SCAN_CODE_39, 328, 96, 28, 28, 0, TRUE},
174 {L";", SCAN_CODE_40, 358, 96, 28, 28, 0, TRUE},
175 {L"'", SCAN_CODE_41, 388, 96, 28, 28, 0, TRUE},
176 {L"\\", SCAN_CODE_29, 432, 65, 51, 28, 0, TRUE},
177 {L"ret", SCAN_CODE_43, 419, 96, 64, 28, BS_ICON, FALSE},
178 {L"shift", SCAN_CODE_44, 4, 126, 96, 28, BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX, FALSE},
179 {L"z", SCAN_CODE_46, 102, 126, 28, 28, 0, TRUE},
180 {L"x", SCAN_CODE_47, 132, 126, 28, 28, 0, TRUE},
181 {L"c", SCAN_CODE_48, 163, 126, 28, 28, 0, TRUE},
182 {L"v", SCAN_CODE_49, 193, 126, 28, 28, 0, TRUE},
183 {L"b", SCAN_CODE_50, 224, 126, 28, 28, 0, TRUE},
184 {L"n", SCAN_CODE_51, 254, 126, 28, 28, 0, TRUE},
185 {L"m", SCAN_CODE_52, 284, 126, 28, 28, 0, TRUE},
186 {L",", SCAN_CODE_53, 315, 126, 28, 28, 0, TRUE},
187 {L".", SCAN_CODE_54, 345, 126, 28, 28, 0, TRUE},
188 {L"/", SCAN_CODE_55, 376, 126, 28, 28, 0, TRUE},
189 {L"shift", SCAN_CODE_57, 406, 126, 77, 28, BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX, FALSE},
190 {L"ctrl", SCAN_CODE_58, 4, 156, 43, 28, BS_PUSHLIKE|BS_AUTOCHECKBOX, FALSE},
191 {L"v", SCAN_CODE_84, 518, 156, 28, 28, BS_ICON, FALSE},
192 {L"ROS", SCAN_CODE_127, 48, 156, 43, 28, BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX, FALSE},
193 {L"alt", SCAN_CODE_60, 91, 156, 43, 28, BS_PUSHLIKE|BS_AUTOCHECKBOX, FALSE},
194 {L"", SCAN_CODE_61, 134, 156, 174, 28, 0, FALSE},
195 {L"alt", SCAN_CODE_62, 310, 156, 43, 28, BS_PUSHLIKE|BS_AUTOCHECKBOX, FALSE},
196 {L"ROS", SCAN_CODE_128, 353, 156, 43, 28, BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX, FALSE},
197 {L"menu", SCAN_CODE_129, 396, 156, 43, 28, BS_ICON, FALSE},
198 {L"ctrl", SCAN_CODE_64, 440, 156, 43, 28, BS_PUSHLIKE|BS_AUTOCHECKBOX, FALSE},
199 {L"ins", SCAN_CODE_75, 486, 35, 28, 28, 0, FALSE},
200 {L"del", SCAN_CODE_76, 486, 65, 28, 28, 0, FALSE},
201 {L"hm", SCAN_CODE_80, 518, 35, 28, 28, BS_ICON, FALSE},
202 {L"end", SCAN_CODE_81, 518, 65, 28, 28, 0, FALSE},
203 {L"pup", SCAN_CODE_85, 550, 35, 28, 28, BS_ICON, FALSE},
204 {L"pdn", SCAN_CODE_86, 550, 65, 28, 28, BS_ICON, FALSE},
205 {L"<-", SCAN_CODE_79, 486, 156, 28, 28, BS_ICON, FALSE},
206 {L"^", SCAN_CODE_83, 518, 126, 28, 28, BS_ICON, FALSE},
207 {L"->", SCAN_CODE_89, 550, 156, 28, 28, BS_ICON, FALSE},
208 {L"nlk", SCAN_CODE_90, 582, 35, 28, 28, 0, FALSE},
209 {L"7", SCAN_CODE_91, 582, 65, 28, 28, 0, FALSE},
210 {L"4", SCAN_CODE_92, 582, 96, 28, 28, 0, FALSE},
211 {L"1", SCAN_CODE_93, 582, 126, 28, 28, 0, FALSE},
212 {L"/", SCAN_CODE_95, 614, 35, 28, 28, 0, FALSE},
213 {L"8", SCAN_CODE_96, 614, 65, 28, 28, 0, FALSE},
214 {L"5", SCAN_CODE_97, 614, 96, 28, 28, 0, FALSE},
215 {L"2", SCAN_CODE_98, 614, 126, 28, 28, 0, FALSE},
216 {L"0", SCAN_CODE_99, 582, 156, 60, 28, 0, FALSE},
217 {L"*", SCAN_CODE_100, 646, 35, 28, 28, 0, FALSE},
218 {L"9", SCAN_CODE_101, 646, 65, 28, 28, 0, FALSE},
219 {L"6", SCAN_CODE_102, 646, 96, 28, 28, 0, FALSE},
220 {L"3", SCAN_CODE_103, 646, 126, 28, 28, 0, FALSE},
221 {L".", SCAN_CODE_104, 646, 156, 28, 28, 0, FALSE},
222 {L"-", SCAN_CODE_105, 678, 35, 28, 28, 0, FALSE},
223 {L"+", SCAN_CODE_106, 678, 65, 28, 59, 0, FALSE},
224 {L"ent", SCAN_CODE_108, 678, 126, 28, 58, 0, FALSE},
225};
226
227KEYBOARD_STRUCT EnhancedKeyboard =
228{
229 EnhancedKeyboardKeys,
230 _countof(EnhancedKeyboardKeys),
231 { 746, 193 },
232 { 620, 6 },
233 { 40, 15 },
234 40,
235 { 628, 25 },
236 { 7, 5 },
237 40
238};
239
240KEYBOARD_STRUCT StandardKeyboard =
241{
242 StandardKeyboardKeys,
243 _countof(StandardKeyboardKeys),
244 { 586, 193 },
245 { 588, 6 },
246 { 40, 15 },
247 40,
248 { 596, 25 },
249 { 7, 5 },
250 40
251};