Skip to content

Commit b29bab7

Browse files
committed
Shift processing
1 parent 359fe17 commit b29bab7

File tree

1 file changed

+120
-64
lines changed

1 file changed

+120
-64
lines changed

include/nbl/ui/KeyCodes.h

Lines changed: 120 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -137,73 +137,129 @@ namespace nbl::ui
137137
EKC_COUNT,
138138
};
139139

140-
inline char keyCodeToChar(E_KEY_CODE code)
140+
inline char keyCodeToChar(E_KEY_CODE code, bool shiftPressed)
141141
{
142142
char result = 0;
143-
switch (code)
143+
if (!shiftPressed)
144144
{
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+
}
207263
}
208264
return result;
209265
}

0 commit comments

Comments
 (0)