9 bool shift:1, ctrl:1, alt:1, cmd:1;
10 Modifiers modifiers:16:16;
15 SmartKey result = SmartKey { modifiers = modifiers };
19 return enter | result;
20 case keyPadLeft: return left | result;
21 case keyPadRight: return right | result;
22 case keyPadUp: return up | result;
23 case keyPadDown: return down | result;
24 case keyPadPageUp: return pageUp | result;
25 case keyPadPageDown: return pageDown | result;
26 case keyPadHome: return home | result;
27 case keyPadEnd: return end | result;
28 case keyPadStar: return k8 | result;
29 case keyPadSlash: return slash | result;
30 case keyPadMinus: return minus | result;
31 case keyPadPlus: return equal | result;
32 case keyPadDelete: return del | result;
33 case keyPadInsert: return insert | result;
34 case leftAlt: case rightAlt: return KeyCode::alt | result;
35 case leftControl: case rightControl: return KeyCode::control | result;
36 case rightShift: case leftShift: return KeyCode::shift | result;
43 char * OnGetString(char * stringOutput, void * fieldData, bool * needClass)
46 if((string = ((PredefinedKey)this).class::OnGetString(stringOutput, null, needClass /*null*/)))
48 if(needClass) *needClass = false;
51 else if((string = ((KeyCode)this).class::OnGetString(stringOutput, null, needClass /*null*/)))
53 if(needClass) *needClass = false;
58 return class::OnGetString(stringOutput, fieldData, needClass);
62 bool OnGetDataFromString(char * string)
64 if(((PredefinedKey)this).class::OnGetDataFromString(string))
67 return class::OnGetDataFromString(string);
75 bool shift:1, ctrl:1, alt:1;
76 Modifiers modifiers:16:16;
79 public enum KeyCode : Key
100 leftParanthesis = 0x0A,
102 rightParanthesis = 0x0A,
162 // Function keys 1-10
194 keyPadPageDown = 0x51,
199 // KeyPadLess = 0x56,
236 // Remote Control Buttons
242 previousTrack = 0x206,
258 public class Modifiers
260 char * OnGetString(char * tempString, void * fieldData, bool * needClass)
262 if(needClass) *needClass = false;
266 public bool shift:1, ctrl:1, alt:1, cmd:1, left:1, middle:1, right:1, isActivate:1, isSideEffect:1, closingDropDown:1;
269 public enum PredefinedKey : Key
271 alt0 = Key { k0, alt = true },
272 alt1 = Key { k1, alt = true },
273 alt2 = Key { k2, alt = true },
274 alt3 = Key { k3, alt = true },
275 alt4 = Key { k4, alt = true },
276 alt5 = Key { k5, alt = true },
277 alt6 = Key { k6, alt = true },
278 alt7 = Key { k7, alt = true },
279 alt8 = Key { k8, alt = true },
280 alt9 = Key { k9, alt = true },
281 altA = Key { a, alt = true },
282 altB = Key { b, alt = true },
283 altC = Key { c, alt = true },
284 altD = Key { d, alt = true },
285 altE = Key { e, alt = true },
286 altF = Key { f, alt = true },
287 altG = Key { g, alt = true },
288 altH = Key { h, alt = true },
289 altI = Key { i, alt = true },
290 altJ = Key { j, alt = true },
291 altK = Key { k, alt = true },
292 altL = Key { l, alt = true },
293 altM = Key { m, alt = true },
294 altN = Key { n, alt = true },
295 altO = Key { o, alt = true },
296 altP = Key { p, alt = true },
297 altQ = Key { q, alt = true },
298 altR = Key { r, alt = true },
299 altS = Key { s, alt = true },
300 altT = Key { t, alt = true },
301 altU = Key { u, alt = true },
302 altV = Key { v, alt = true },
303 altW = Key { w, alt = true },
304 altX = Key { x, alt = true },
305 altY = Key { y, alt = true },
306 altZ = Key { z, alt = true },
307 altF1 = Key { f1, alt = true },
308 altF2 = Key { f2, alt = true },
309 altF3 = Key { f3, alt = true },
310 altF4 = Key { f4, alt = true },
311 altF5 = Key { f5, alt = true },
312 altF6 = Key { f6, alt = true },
313 altF7 = Key { f7, alt = true },
314 altF8 = Key { f8, alt = true },
315 altF9 = Key { f9, alt = true },
316 altF10 = Key { f10, alt = true },
317 altF11 = Key { f11, alt = true },
318 altF12 = Key { f12, alt = true },
319 altLeft = Key { left, alt = true },
320 altRight = Key { right, alt = true },
321 altUp = Key { up, alt = true },
322 altDown = Key { down, alt = true },
323 altEnter = Key { enter, alt = true },
324 altKeyPadEnter = Key { keyPadEnter, alt = true },
325 altHome = Key { home, alt = true },
326 altEnd = Key { end, alt = true },
327 altMinus = Key { minus, alt = true },
328 altSpace = Key { space, alt = true },
330 ctrl0 = Key { k0, ctrl = true },
331 ctrl1 = Key { k1, ctrl = true },
332 ctrl2 = Key { k2, ctrl = true },
333 ctrl3 = Key { k3, ctrl = true },
334 ctrl4 = Key { k4, ctrl = true },
335 ctrl5 = Key { k5, ctrl = true },
336 ctrl6 = Key { k6, ctrl = true },
337 ctrl7 = Key { k7, ctrl = true },
338 ctrl8 = Key { k8, ctrl = true },
339 ctrl9 = Key { k9, ctrl = true },
340 ctrlA = Key { a, ctrl = true },
341 ctrlB = Key { b, ctrl = true },
342 ctrlC = Key { c, ctrl = true },
343 ctrlD = Key { d, ctrl = true },
344 ctrlE = Key { e, ctrl = true },
345 ctrlF = Key { f, ctrl = true },
346 ctrlG = Key { g, ctrl = true },
347 ctrlH = Key { h, ctrl = true },
348 ctrlI = Key { i, ctrl = true },
349 ctrlJ = Key { j, ctrl = true },
350 ctrlK = Key { k, ctrl = true },
351 ctrlL = Key { l, ctrl = true },
352 ctrlM = Key { m, ctrl = true },
353 ctrlN = Key { n, ctrl = true },
354 ctrlO = Key { o, ctrl = true },
355 ctrlP = Key { p, ctrl = true },
356 ctrlQ = Key { q, ctrl = true },
357 ctrlR = Key { r, ctrl = true },
358 ctrlS = Key { s, ctrl = true },
359 ctrlT = Key { t, ctrl = true },
360 ctrlU = Key { u, ctrl = true },
361 ctrlV = Key { v, ctrl = true },
362 ctrlW = Key { w, ctrl = true },
363 ctrlX = Key { x, ctrl = true },
364 ctrlY = Key { y, ctrl = true },
365 ctrlZ = Key { z, ctrl = true },
366 ctrlF1 = Key { f1, ctrl = true },
367 ctrlF2 = Key { f2, ctrl = true },
368 ctrlF3 = Key { f3, ctrl = true },
369 ctrlF4 = Key { f4, ctrl = true },
370 ctrlF5 = Key { f5, ctrl = true },
371 ctrlF6 = Key { f6, ctrl = true },
372 ctrlF7 = Key { f7, ctrl = true },
373 ctrlF8 = Key { f8, ctrl = true },
374 ctrlF9 = Key { f9, ctrl = true },
375 ctrlF10 = Key { f10, ctrl = true },
376 ctrlF11 = Key { f11, ctrl = true },
377 ctrlF12 = Key { f12, ctrl = true },
378 ctrlLeft = Key { left, ctrl = true },
379 ctrlRight = Key { right, ctrl = true },
380 ctrlUp = Key { up, ctrl = true },
381 ctrlDown = Key { down, ctrl = true },
382 ctrlEnter = Key { enter, ctrl = true },
383 ctrlHome = Key { home, ctrl = true },
384 ctrlEnd = Key { end, ctrl = true },
385 ctrlPageUp = Key { pageUp, ctrl = true },
386 ctrlPageDown = Key { pageDown, ctrl = true },
387 ctrlInsert = Key { insert, ctrl = true },
388 ctrlSpace = Key { space, ctrl = true },
390 shiftTab = Key { tab, shift = true },
391 shiftF1 = Key { f1, shift = true },
392 shiftF2 = Key { f2, shift = true },
393 shiftF3 = Key { f3, shift = true },
394 shiftF4 = Key { f4, shift = true },
395 shiftF5 = Key { f5, shift = true },
396 shiftF6 = Key { f6, shift = true },
397 shiftF7 = Key { f7, shift = true },
398 shiftF8 = Key { f8, shift = true },
399 shiftF9 = Key { f9, shift = true },
400 shiftF10 = Key { f10, shift = true },
401 shiftF11 = Key { f11, shift = true },
402 shiftF12 = Key { f12, shift = true },
403 shiftInsert = Key { insert, shift = true },
404 shiftDel = Key { del, shift = true }