@@ -137,73 +137,129 @@ namespace nbl::ui
137
137
EKC_COUNT,
138
138
};
139
139
140
- inline char keyCodeToChar (E_KEY_CODE code)
140
+ inline char keyCodeToChar (E_KEY_CODE code, bool shiftPressed )
141
141
{
142
142
char result = 0 ;
143
- switch (code )
143
+ if (!shiftPressed )
144
144
{
145
- case EKC_0: [[fallthrough]];
146
- case EKC_NUMPAD_0: result = ' 0' ; break ;
147
- case EKC_1: [[fallthrough]];
148
- case EKC_NUMPAD_1: result = ' 1' ; break ;
149
- case EKC_2: [[fallthrough]];
150
- case EKC_NUMPAD_2: result = ' 2' ; break ;
151
- case EKC_3: [[fallthrough]];
152
- case EKC_NUMPAD_3: result = ' 3' ; break ;
153
- case EKC_4: [[fallthrough]];
154
- case EKC_NUMPAD_4: result = ' 4' ; break ;
155
- case EKC_5: [[fallthrough]];
156
- case EKC_NUMPAD_5: result = ' 5' ; break ;
157
- case EKC_6: [[fallthrough]];
158
- case EKC_NUMPAD_6: result = ' 6' ; break ;
159
- case EKC_7: [[fallthrough]];
160
- case EKC_NUMPAD_7: result = ' 7' ; break ;
161
- case EKC_8: [[fallthrough]];
162
- case EKC_NUMPAD_8: result = ' 8' ; break ;
163
- case EKC_9: [[fallthrough]];
164
- case EKC_NUMPAD_9: result = ' 9' ; break ;
165
-
166
- case EKC_A: result = ' a' ; break ;
167
- case EKC_B: result = ' b' ; break ;
168
- case EKC_C: result = ' c' ; break ;
169
- case EKC_D: result = ' d' ; break ;
170
- case EKC_E: result = ' e' ; break ;
171
- case EKC_F: result = ' f' ; break ;
172
- case EKC_G: result = ' g' ; break ;
173
- case EKC_H: result = ' h' ; break ;
174
- case EKC_I: result = ' i' ; break ;
175
- case EKC_J: result = ' j' ; break ;
176
- case EKC_K: result = ' k' ; break ;
177
- case EKC_L: result = ' l' ; break ;
178
- case EKC_M: result = ' m' ; break ;
179
- case EKC_N: result = ' n' ; break ;
180
- case EKC_O: result = ' o' ; break ;
181
- case EKC_P: result = ' p' ; break ;
182
- case EKC_Q: result = ' q' ; break ;
183
- case EKC_R: result = ' r' ; break ;
184
- case EKC_S: result = ' s' ; break ;
185
- case EKC_T: result = ' t' ; break ;
186
- case EKC_U: result = ' u' ; break ;
187
- case EKC_V: result = ' v' ; break ;
188
- case EKC_W: result = ' w' ; break ;
189
- case EKC_X: result = ' x' ; break ;
190
- case EKC_Y: result = ' y' ; break ;
191
- case EKC_Z: result = ' z' ; break ;
192
-
193
- case EKC_TAB: result = ' \t ' ; break ;
194
- case EKC_ENTER: result = ' \n ' ; break ;
195
- case EKC_SPACE: result = ' ' ; break ;
196
- case EKC_COMMA: result = ' ,' ; break ;
197
- case EKC_PERIOD: result = ' .' ; break ;
198
- case EKC_SEMICOLON: result = ' ;' ; break ;
199
- case EKC_ADD: result = ' +' ; break ;
200
- case EKC_SUBTRACT: result = ' -' ; break ;
201
- case EKC_MULTIPLY: result = ' *' ; break ;
202
- case EKC_DIVIDE: result = ' /' ; break ;
203
- case EKC_OPEN_BRACKET: result = ' [' ; break ;
204
- case EKC_CLOSE_BRACKET: result = ' ]' ; break ;
205
- case EKC_BACKSLASH: result = ' \\ ' ; break ;
206
- case EKC_APOSTROPHE: result = ' \' ' ; break ;
145
+ switch (code)
146
+ {
147
+ case EKC_0: [[fallthrough]];
148
+ case EKC_NUMPAD_0: result = ' 0' ; break ;
149
+ case EKC_1: [[fallthrough]];
150
+ case EKC_NUMPAD_1: result = ' 1' ; break ;
151
+ case EKC_2: [[fallthrough]];
152
+ case EKC_NUMPAD_2: result = ' 2' ; break ;
153
+ case EKC_3: [[fallthrough]];
154
+ case EKC_NUMPAD_3: result = ' 3' ; break ;
155
+ case EKC_4: [[fallthrough]];
156
+ case EKC_NUMPAD_4: result = ' 4' ; break ;
157
+ case EKC_5: [[fallthrough]];
158
+ case EKC_NUMPAD_5: result = ' 5' ; break ;
159
+ case EKC_6: [[fallthrough]];
160
+ case EKC_NUMPAD_6: result = ' 6' ; break ;
161
+ case EKC_7: [[fallthrough]];
162
+ case EKC_NUMPAD_7: result = ' 7' ; break ;
163
+ case EKC_8: [[fallthrough]];
164
+ case EKC_NUMPAD_8: result = ' 8' ; break ;
165
+ case EKC_9: [[fallthrough]];
166
+ case EKC_NUMPAD_9: result = ' 9' ; break ;
167
+
168
+ case EKC_A: result = ' a' ; break ;
169
+ case EKC_B: result = ' b' ; break ;
170
+ case EKC_C: result = ' c' ; break ;
171
+ case EKC_D: result = ' d' ; break ;
172
+ case EKC_E: result = ' e' ; break ;
173
+ case EKC_F: result = ' f' ; break ;
174
+ case EKC_G: result = ' g' ; break ;
175
+ case EKC_H: result = ' h' ; break ;
176
+ case EKC_I: result = ' i' ; break ;
177
+ case EKC_J: result = ' j' ; break ;
178
+ case EKC_K: result = ' k' ; break ;
179
+ case EKC_L: result = ' l' ; break ;
180
+ case EKC_M: result = ' m' ; break ;
181
+ case EKC_N: result = ' n' ; break ;
182
+ case EKC_O: result = ' o' ; break ;
183
+ case EKC_P: result = ' p' ; break ;
184
+ case EKC_Q: result = ' q' ; break ;
185
+ case EKC_R: result = ' r' ; break ;
186
+ case EKC_S: result = ' s' ; break ;
187
+ case EKC_T: result = ' t' ; break ;
188
+ case EKC_U: result = ' u' ; break ;
189
+ case EKC_V: result = ' v' ; break ;
190
+ case EKC_W: result = ' w' ; break ;
191
+ case EKC_X: result = ' x' ; break ;
192
+ case EKC_Y: result = ' y' ; break ;
193
+ case EKC_Z: result = ' z' ; break ;
194
+
195
+ case EKC_TAB: result = ' \t ' ; break ;
196
+ case EKC_ENTER: result = ' \n ' ; break ;
197
+ case EKC_SPACE: result = ' ' ; break ;
198
+ case EKC_COMMA: result = ' ,' ; break ;
199
+ case EKC_PERIOD: result = ' .' ; break ;
200
+ case EKC_SEMICOLON: result = ' ;' ; break ;
201
+ case EKC_ADD: result = ' =' ; break ;
202
+ case EKC_SUBTRACT: result = ' -' ; break ;
203
+ case EKC_DIVIDE: result = ' /' ; break ;
204
+ case EKC_OPEN_BRACKET: result = ' [' ; break ;
205
+ case EKC_CLOSE_BRACKET: result = ' ]' ; break ;
206
+ case EKC_BACKSLASH: result = ' \\ ' ; break ;
207
+ case EKC_APOSTROPHE: result = ' \' ' ; break ;
208
+ }
209
+ }
210
+ else
211
+ {
212
+ switch (code)
213
+ {
214
+ case EKC_0: result = ' )' ; break ;
215
+ case EKC_1: result = ' !' ; break ;
216
+ case EKC_2: result = ' @' ; break ;
217
+ case EKC_3: result = ' #' ; break ;
218
+ case EKC_4: result = ' $' ; break ;
219
+ case EKC_5: result = ' %' ; break ;
220
+ case EKC_6: result = ' ^' ; break ;
221
+ case EKC_7: result = ' &' ; break ;
222
+ case EKC_8: result = ' *' ; break ;
223
+ case EKC_9: result = ' (' ; break ;
224
+
225
+ case EKC_A: result = ' A' ; break ;
226
+ case EKC_B: result = ' B' ; break ;
227
+ case EKC_C: result = ' C' ; break ;
228
+ case EKC_D: result = ' D' ; break ;
229
+ case EKC_E: result = ' E' ; break ;
230
+ case EKC_F: result = ' F' ; break ;
231
+ case EKC_G: result = ' G' ; break ;
232
+ case EKC_H: result = ' H' ; break ;
233
+ case EKC_I: result = ' I' ; break ;
234
+ case EKC_J: result = ' J' ; break ;
235
+ case EKC_K: result = ' K' ; break ;
236
+ case EKC_L: result = ' L' ; break ;
237
+ case EKC_M: result = ' M' ; break ;
238
+ case EKC_N: result = ' N' ; break ;
239
+ case EKC_O: result = ' O' ; break ;
240
+ case EKC_P: result = ' P' ; break ;
241
+ case EKC_Q: result = ' Q' ; break ;
242
+ case EKC_R: result = ' R' ; break ;
243
+ case EKC_S: result = ' S' ; break ;
244
+ case EKC_T: result = ' T' ; break ;
245
+ case EKC_U: result = ' U' ; break ;
246
+ case EKC_V: result = ' V' ; break ;
247
+ case EKC_W: result = ' W' ; break ;
248
+ case EKC_X: result = ' X' ; break ;
249
+ case EKC_Y: result = ' Y' ; break ;
250
+ case EKC_Z: result = ' Z' ; break ;
251
+
252
+ case EKC_COMMA: result = ' <' ; break ;
253
+ case EKC_PERIOD: result = ' >' ; break ;
254
+ case EKC_SEMICOLON: result = ' :' ; break ;
255
+ case EKC_ADD: result = ' +' ; break ;
256
+ case EKC_SUBTRACT: result = ' _' ; break ;
257
+ case EKC_DIVIDE: result = ' /' ; break ;
258
+ case EKC_OPEN_BRACKET: result = ' {' ; break ;
259
+ case EKC_CLOSE_BRACKET: result = ' }' ; break ;
260
+ case EKC_BACKSLASH: result = ' |' ; break ;
261
+ case EKC_APOSTROPHE: result = ' \" ' ; break ;
262
+ }
207
263
}
208
264
return result;
209
265
}
0 commit comments