Update copyright to 2017
[fanfix.git] / src / jexer / TKeypress.java
1 /*
2 * Jexer - Java Text User Interface
3 *
4 * The MIT License (MIT)
5 *
6 * Copyright (C) 2017 Kevin Lamonte
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a
9 * copy of this software and associated documentation files (the "Software"),
10 * to deal in the Software without restriction, including without limitation
11 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
12 * and/or sell copies of the Software, and to permit persons to whom the
13 * Software is furnished to do so, subject to the following conditions:
14 *
15 * The above copyright notice and this permission notice shall be included in
16 * all copies or substantial portions of the Software.
17 *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
24 * DEALINGS IN THE SOFTWARE.
25 *
26 * @author Kevin Lamonte [kevin.lamonte@gmail.com]
27 * @version 1
28 */
29 package jexer;
30
31 /**
32 * This class represents keystrokes.
33 */
34 public final class TKeypress {
35
36 // Various special keystrokes
37
38 /**
39 * "No key".
40 */
41 public static final int NONE = 255;
42
43 /**
44 * Function key F1.
45 */
46 public static final int F1 = 1;
47
48 /**
49 * Function key F2.
50 */
51 public static final int F2 = 2;
52
53 /**
54 * Function key F3.
55 */
56 public static final int F3 = 3;
57
58 /**
59 * Function key F4.
60 */
61 public static final int F4 = 4;
62
63 /**
64 * Function key F5.
65 */
66 public static final int F5 = 5;
67
68 /**
69 * Function key F6.
70 */
71 public static final int F6 = 6;
72
73 /**
74 * Function key F7.
75 */
76 public static final int F7 = 7;
77
78 /**
79 * Function key F8.
80 */
81 public static final int F8 = 8;
82
83 /**
84 * Function key F9.
85 */
86 public static final int F9 = 9;
87
88 /**
89 * Function key F10.
90 */
91 public static final int F10 = 10;
92
93 /**
94 * Function key F11.
95 */
96 public static final int F11 = 11;
97
98 /**
99 * Function key F12.
100 */
101 public static final int F12 = 12;
102
103 /**
104 * Home.
105 */
106 public static final int HOME = 20;
107
108 /**
109 * End.
110 */
111 public static final int END = 21;
112
113 /**
114 * Page up.
115 */
116 public static final int PGUP = 22;
117
118 /**
119 * Page down.
120 */
121 public static final int PGDN = 23;
122
123 /**
124 * Insert.
125 */
126 public static final int INS = 24;
127
128 /**
129 * Delete.
130 */
131 public static final int DEL = 25;
132
133 /**
134 * Right arrow.
135 */
136 public static final int RIGHT = 30;
137
138 /**
139 * Left arrow.
140 */
141 public static final int LEFT = 31;
142
143 /**
144 * Up arrow.
145 */
146 public static final int UP = 32;
147
148 /**
149 * Down arrow.
150 */
151 public static final int DOWN = 33;
152
153 /**
154 * Tab.
155 */
156 public static final int TAB = 40;
157
158 /**
159 * Back-tab (shift-tab).
160 */
161 public static final int BTAB = 41;
162
163 /**
164 * Enter.
165 */
166 public static final int ENTER = 42;
167
168 /**
169 * Escape.
170 */
171 public static final int ESC = 43;
172
173 /**
174 * If true, ch is meaningless, use keyCode instead.
175 */
176 private boolean isFunctionKey;
177
178 /**
179 * Getter for isFunctionKey.
180 *
181 * @return if true, ch is meaningless, use keyCode instead
182 */
183 public boolean isFnKey() {
184 return isFunctionKey;
185 }
186
187 /**
188 * Will be set to F1, F2, HOME, END, etc. if isKey is true.
189 */
190 private int keyCode;
191
192 /**
193 * Getter for function key code.
194 *
195 * @return function key code int value (only valid is isKey is true)
196 */
197 public int getKeyCode() {
198 return keyCode;
199 }
200
201 /**
202 * Keystroke modifier ALT.
203 */
204 private boolean alt;
205
206 /**
207 * Getter for ALT.
208 *
209 * @return alt value
210 */
211 public boolean isAlt() {
212 return alt;
213 }
214
215 /**
216 * Keystroke modifier CTRL.
217 */
218 private boolean ctrl;
219
220 /**
221 * Getter for CTRL.
222 *
223 * @return ctrl value
224 */
225 public boolean isCtrl() {
226 return ctrl;
227 }
228
229 /**
230 * Keystroke modifier SHIFT.
231 */
232 private boolean shift;
233
234 /**
235 * Getter for SHIFT.
236 *
237 * @return shift value
238 */
239 public boolean isShift() {
240 return shift;
241 }
242
243 /**
244 * The character received.
245 */
246 private char ch;
247
248 /**
249 * Getter for character.
250 *
251 * @return the character (only valid if isKey is false)
252 */
253 public char getChar() {
254 return ch;
255 }
256
257 /**
258 * Public constructor makes an immutable instance.
259 *
260 * @param isKey is true, this is a function key
261 * @param fnKey the function key code (only valid if isKey is true)
262 * @param ch the character (only valid if fnKey is false)
263 * @param alt if true, ALT was pressed with this keystroke
264 * @param ctrl if true, CTRL was pressed with this keystroke
265 * @param shift if true, SHIFT was pressed with this keystroke
266 */
267 public TKeypress(final boolean isKey, final int fnKey, final char ch,
268 final boolean alt, final boolean ctrl, final boolean shift) {
269
270 this.isFunctionKey = isKey;
271 this.keyCode = fnKey;
272 this.ch = ch;
273 this.alt = alt;
274 this.ctrl = ctrl;
275 this.shift = shift;
276 }
277
278 /**
279 * Comparison check. All fields must match to return true.
280 *
281 * @param rhs another TKeypress instance
282 * @return true if all fields are equal
283 */
284 @Override
285 public boolean equals(final Object rhs) {
286 if (!(rhs instanceof TKeypress)) {
287 return false;
288 }
289
290 TKeypress that = (TKeypress) rhs;
291 return ((isFunctionKey == that.isFunctionKey)
292 && (keyCode == that.keyCode)
293 && (ch == that.ch)
294 && (alt == that.alt)
295 && (ctrl == that.ctrl)
296 && (shift == that.shift));
297 }
298
299 /**
300 * Comparison check, omitting the ctrl/alt/shift flags.
301 *
302 * @param rhs another TKeypress instance
303 * @return true if all fields (except for ctrl/alt/shift) are equal
304 */
305 public boolean equalsWithoutModifiers(final Object rhs) {
306 if (!(rhs instanceof TKeypress)) {
307 return false;
308 }
309
310 TKeypress that = (TKeypress) rhs;
311 return ((isFunctionKey == that.isFunctionKey)
312 && (keyCode == that.keyCode)
313 && (ch == that.ch));
314 }
315
316 /**
317 * Hashcode uses all fields in equals().
318 *
319 * @return the hash
320 */
321 @Override
322 public int hashCode() {
323 int A = 13;
324 int B = 23;
325 int hash = A;
326 hash = (B * hash) + (isFunctionKey ? 1 : 0);
327 hash = (B * hash) + keyCode;
328 hash = (B * hash) + ch;
329 hash = (B * hash) + (alt ? 1 : 0);
330 hash = (B * hash) + (ctrl ? 1 : 0);
331 hash = (B * hash) + (shift ? 1 : 0);
332 return hash;
333 }
334
335 /**
336 * Make human-readable description of this TKeypress.
337 *
338 * @return displayable String
339 */
340 @Override
341 public String toString() {
342 if (isFunctionKey) {
343 switch (keyCode) {
344 case F1:
345 return String.format("%s%s%sF1",
346 ctrl ? "Ctrl+" : "",
347 alt ? "Alt+" : "",
348 shift ? "Shift+" : "");
349 case F2:
350 return String.format("%s%s%sF2",
351 ctrl ? "Ctrl+" : "",
352 alt ? "Alt+" : "",
353 shift ? "Shift+" : "");
354 case F3:
355 return String.format("%s%s%sF3",
356 ctrl ? "Ctrl+" : "",
357 alt ? "Alt+" : "",
358 shift ? "Shift+" : "");
359 case F4:
360 return String.format("%s%s%sF4",
361 ctrl ? "Ctrl+" : "",
362 alt ? "Alt+" : "",
363 shift ? "Shift+" : "");
364 case F5:
365 return String.format("%s%s%sF5",
366 ctrl ? "Ctrl+" : "",
367 alt ? "Alt+" : "",
368 shift ? "Shift+" : "");
369 case F6:
370 return String.format("%s%s%sF6",
371 ctrl ? "Ctrl+" : "",
372 alt ? "Alt+" : "",
373 shift ? "Shift+" : "");
374 case F7:
375 return String.format("%s%s%sF7",
376 ctrl ? "Ctrl+" : "",
377 alt ? "Alt+" : "",
378 shift ? "Shift+" : "");
379 case F8:
380 return String.format("%s%s%sF8",
381 ctrl ? "Ctrl+" : "",
382 alt ? "Alt+" : "",
383 shift ? "Shift+" : "");
384 case F9:
385 return String.format("%s%s%sF9",
386 ctrl ? "Ctrl+" : "",
387 alt ? "Alt+" : "",
388 shift ? "Shift+" : "");
389 case F10:
390 return String.format("%s%s%sF10",
391 ctrl ? "Ctrl+" : "",
392 alt ? "Alt+" : "",
393 shift ? "Shift+" : "");
394 case F11:
395 return String.format("%s%s%sF11",
396 ctrl ? "Ctrl+" : "",
397 alt ? "Alt+" : "",
398 shift ? "Shift+" : "");
399 case F12:
400 return String.format("%s%s%sF12",
401 ctrl ? "Ctrl+" : "",
402 alt ? "Alt+" : "",
403 shift ? "Shift+" : "");
404 case HOME:
405 return String.format("%s%s%sHOME",
406 ctrl ? "Ctrl+" : "",
407 alt ? "Alt+" : "",
408 shift ? "Shift+" : "");
409 case END:
410 return String.format("%s%s%sEND",
411 ctrl ? "Ctrl+" : "",
412 alt ? "Alt+" : "",
413 shift ? "Shift+" : "");
414 case PGUP:
415 return String.format("%s%s%sPGUP",
416 ctrl ? "Ctrl+" : "",
417 alt ? "Alt+" : "",
418 shift ? "Shift+" : "");
419 case PGDN:
420 return String.format("%s%s%sPGDN",
421 ctrl ? "Ctrl+" : "",
422 alt ? "Alt+" : "",
423 shift ? "Shift+" : "");
424 case INS:
425 return String.format("%s%s%sINS",
426 ctrl ? "Ctrl+" : "",
427 alt ? "Alt+" : "",
428 shift ? "Shift+" : "");
429 case DEL:
430 return String.format("%s%s%sDEL",
431 ctrl ? "Ctrl+" : "",
432 alt ? "Alt+" : "",
433 shift ? "Shift+" : "");
434 case RIGHT:
435 return String.format("%s%s%sRIGHT",
436 ctrl ? "Ctrl+" : "",
437 alt ? "Alt+" : "",
438 shift ? "Shift+" : "");
439 case LEFT:
440 return String.format("%s%s%sLEFT",
441 ctrl ? "Ctrl+" : "",
442 alt ? "Alt+" : "",
443 shift ? "Shift+" : "");
444 case UP:
445 return String.format("%s%s%sUP",
446 ctrl ? "Ctrl+" : "",
447 alt ? "Alt+" : "",
448 shift ? "Shift+" : "");
449 case DOWN:
450 return String.format("%s%s%sDOWN",
451 ctrl ? "Ctrl+" : "",
452 alt ? "Alt+" : "",
453 shift ? "Shift+" : "");
454 case TAB:
455 return String.format("%s%s%sTAB",
456 ctrl ? "Ctrl+" : "",
457 alt ? "Alt+" : "",
458 shift ? "Shift+" : "");
459 case BTAB:
460 return String.format("%s%s%sBTAB",
461 ctrl ? "Ctrl+" : "",
462 alt ? "Alt+" : "",
463 shift ? "Shift+" : "");
464 case ENTER:
465 return String.format("%s%s%sENTER",
466 ctrl ? "Ctrl+" : "",
467 alt ? "Alt+" : "",
468 shift ? "Shift+" : "");
469 case ESC:
470 return String.format("%s%s%sESC",
471 ctrl ? "Ctrl+" : "",
472 alt ? "Alt+" : "",
473 shift ? "Shift+" : "");
474 default:
475 return String.format("--UNKNOWN--");
476 }
477 } else {
478 if (alt && !shift && !ctrl) {
479 // Alt-X
480 return String.format("Alt+%c", Character.toUpperCase(ch));
481 } else if (!alt && shift && !ctrl) {
482 // Shift-X
483 return String.format("%c", ch);
484 } else if (!alt && !shift && ctrl) {
485 // Ctrl-X
486 return String.format("Ctrl+%c", ch);
487 } else if (alt && shift && !ctrl) {
488 // Alt-Shift-X
489 return String.format("Alt+Shift+%c", ch);
490 } else if (!alt && shift && ctrl) {
491 // Ctrl-Shift-X
492 return String.format("Ctrl+Shift+%c", ch);
493 } else if (alt && !shift && ctrl) {
494 // Ctrl-Alt-X
495 return String.format("Ctrl+Alt+%c", Character.toUpperCase(ch));
496 } else if (alt && shift && ctrl) {
497 // Ctrl-Alt-Shift-X
498 return String.format("Ctrl+Alt+Shift+%c",
499 Character.toUpperCase(ch));
500 } else {
501 // X
502 return String.format("%c", ch);
503 }
504 }
505 }
506
507 /**
508 * Convert a keypress to lowercase. Function keys and alt/ctrl keys are
509 * not converted.
510 *
511 * @return a new instance with the key converted
512 */
513 public TKeypress toLowerCase() {
514 TKeypress newKey = new TKeypress(isFunctionKey, keyCode, ch, alt, ctrl,
515 shift);
516 if (!isFunctionKey && (ch >= 'A') && (ch <= 'Z') && !ctrl && !alt) {
517 newKey.shift = false;
518 newKey.ch += 32;
519 }
520 return newKey;
521 }
522
523 /**
524 * Convert a keypress to uppercase. Function keys and alt/ctrl keys are
525 * not converted.
526 *
527 * @return a new instance with the key converted
528 */
529 public TKeypress toUpperCase() {
530 TKeypress newKey = new TKeypress(isFunctionKey, keyCode, ch, alt, ctrl,
531 shift);
532 if (!isFunctionKey && (ch >= 'a') && (ch <= 'z') && !ctrl && !alt) {
533 newKey.shift = true;
534 newKey.ch -= 32;
535 }
536 return newKey;
537 }
538
539 // Special "no-key" keypress, used to ignore undefined keystrokes
540 public static final TKeypress kbNoKey = new TKeypress(true,
541 TKeypress.NONE, ' ', false, false, false);
542
543 // Normal keys
544 public static final TKeypress kbF1 = new TKeypress(true,
545 TKeypress.F1, ' ', false, false, false);
546 public static final TKeypress kbF2 = new TKeypress(true,
547 TKeypress.F2, ' ', false, false, false);
548 public static final TKeypress kbF3 = new TKeypress(true,
549 TKeypress.F3, ' ', false, false, false);
550 public static final TKeypress kbF4 = new TKeypress(true,
551 TKeypress.F4, ' ', false, false, false);
552 public static final TKeypress kbF5 = new TKeypress(true,
553 TKeypress.F5, ' ', false, false, false);
554 public static final TKeypress kbF6 = new TKeypress(true,
555 TKeypress.F6, ' ', false, false, false);
556 public static final TKeypress kbF7 = new TKeypress(true,
557 TKeypress.F7, ' ', false, false, false);
558 public static final TKeypress kbF8 = new TKeypress(true,
559 TKeypress.F8, ' ', false, false, false);
560 public static final TKeypress kbF9 = new TKeypress(true,
561 TKeypress.F9, ' ', false, false, false);
562 public static final TKeypress kbF10 = new TKeypress(true,
563 TKeypress.F10, ' ', false, false, false);
564 public static final TKeypress kbF11 = new TKeypress(true,
565 TKeypress.F11, ' ', false, false, false);
566 public static final TKeypress kbF12 = new TKeypress(true,
567 TKeypress.F12, ' ', false, false, false);
568 public static final TKeypress kbAltF1 = new TKeypress(true,
569 TKeypress.F1, ' ', true, false, false);
570 public static final TKeypress kbAltF2 = new TKeypress(true,
571 TKeypress.F2, ' ', true, false, false);
572 public static final TKeypress kbAltF3 = new TKeypress(true,
573 TKeypress.F3, ' ', true, false, false);
574 public static final TKeypress kbAltF4 = new TKeypress(true,
575 TKeypress.F4, ' ', true, false, false);
576 public static final TKeypress kbAltF5 = new TKeypress(true,
577 TKeypress.F5, ' ', true, false, false);
578 public static final TKeypress kbAltF6 = new TKeypress(true,
579 TKeypress.F6, ' ', true, false, false);
580 public static final TKeypress kbAltF7 = new TKeypress(true,
581 TKeypress.F7, ' ', true, false, false);
582 public static final TKeypress kbAltF8 = new TKeypress(true,
583 TKeypress.F8, ' ', true, false, false);
584 public static final TKeypress kbAltF9 = new TKeypress(true,
585 TKeypress.F9, ' ', true, false, false);
586 public static final TKeypress kbAltF10 = new TKeypress(true,
587 TKeypress.F10, ' ', true, false, false);
588 public static final TKeypress kbAltF11 = new TKeypress(true,
589 TKeypress.F11, ' ', true, false, false);
590 public static final TKeypress kbAltF12 = new TKeypress(true,
591 TKeypress.F12, ' ', true, false, false);
592 public static final TKeypress kbCtrlF1 = new TKeypress(true,
593 TKeypress.F1, ' ', false, true, false);
594 public static final TKeypress kbCtrlF2 = new TKeypress(true,
595 TKeypress.F2, ' ', false, true, false);
596 public static final TKeypress kbCtrlF3 = new TKeypress(true,
597 TKeypress.F3, ' ', false, true, false);
598 public static final TKeypress kbCtrlF4 = new TKeypress(true,
599 TKeypress.F4, ' ', false, true, false);
600 public static final TKeypress kbCtrlF5 = new TKeypress(true,
601 TKeypress.F5, ' ', false, true, false);
602 public static final TKeypress kbCtrlF6 = new TKeypress(true,
603 TKeypress.F6, ' ', false, true, false);
604 public static final TKeypress kbCtrlF7 = new TKeypress(true,
605 TKeypress.F7, ' ', false, true, false);
606 public static final TKeypress kbCtrlF8 = new TKeypress(true,
607 TKeypress.F8, ' ', false, true, false);
608 public static final TKeypress kbCtrlF9 = new TKeypress(true,
609 TKeypress.F9, ' ', false, true, false);
610 public static final TKeypress kbCtrlF10 = new TKeypress(true,
611 TKeypress.F10, ' ', false, true, false);
612 public static final TKeypress kbCtrlF11 = new TKeypress(true,
613 TKeypress.F11, ' ', false, true, false);
614 public static final TKeypress kbCtrlF12 = new TKeypress(true,
615 TKeypress.F12, ' ', false, true, false);
616 public static final TKeypress kbShiftF1 = new TKeypress(true,
617 TKeypress.F1, ' ', false, false, true);
618 public static final TKeypress kbShiftF2 = new TKeypress(true,
619 TKeypress.F2, ' ', false, false, true);
620 public static final TKeypress kbShiftF3 = new TKeypress(true,
621 TKeypress.F3, ' ', false, false, true);
622 public static final TKeypress kbShiftF4 = new TKeypress(true,
623 TKeypress.F4, ' ', false, false, true);
624 public static final TKeypress kbShiftF5 = new TKeypress(true,
625 TKeypress.F5, ' ', false, false, true);
626 public static final TKeypress kbShiftF6 = new TKeypress(true,
627 TKeypress.F6, ' ', false, false, true);
628 public static final TKeypress kbShiftF7 = new TKeypress(true,
629 TKeypress.F7, ' ', false, false, true);
630 public static final TKeypress kbShiftF8 = new TKeypress(true,
631 TKeypress.F8, ' ', false, false, true);
632 public static final TKeypress kbShiftF9 = new TKeypress(true,
633 TKeypress.F9, ' ', false, false, true);
634 public static final TKeypress kbShiftF10 = new TKeypress(true,
635 TKeypress.F10, ' ', false, false, true);
636 public static final TKeypress kbShiftF11 = new TKeypress(true,
637 TKeypress.F11, ' ', false, false, true);
638 public static final TKeypress kbShiftF12 = new TKeypress(true,
639 TKeypress.F12, ' ', false, false, true);
640 public static final TKeypress kbEnter = new TKeypress(true,
641 TKeypress.ENTER, ' ', false, false, false);
642 public static final TKeypress kbTab = new TKeypress(true,
643 TKeypress.TAB, ' ', false, false, false);
644 public static final TKeypress kbEsc = new TKeypress(true,
645 TKeypress.ESC, ' ', false, false, false);
646 public static final TKeypress kbHome = new TKeypress(true,
647 TKeypress.HOME, ' ', false, false, false);
648 public static final TKeypress kbEnd = new TKeypress(true,
649 TKeypress.END, ' ', false, false, false);
650 public static final TKeypress kbPgUp = new TKeypress(true,
651 TKeypress.PGUP, ' ', false, false, false);
652 public static final TKeypress kbPgDn = new TKeypress(true,
653 TKeypress.PGDN, ' ', false, false, false);
654 public static final TKeypress kbIns = new TKeypress(true,
655 TKeypress.INS, ' ', false, false, false);
656 public static final TKeypress kbDel = new TKeypress(true,
657 TKeypress.DEL, ' ', false, false, false);
658 public static final TKeypress kbUp = new TKeypress(true,
659 TKeypress.UP, ' ', false, false, false);
660 public static final TKeypress kbDown = new TKeypress(true,
661 TKeypress.DOWN, ' ', false, false, false);
662 public static final TKeypress kbLeft = new TKeypress(true,
663 TKeypress.LEFT, ' ', false, false, false);
664 public static final TKeypress kbRight = new TKeypress(true,
665 TKeypress.RIGHT, ' ', false, false, false);
666 public static final TKeypress kbAltEnter = new TKeypress(true,
667 TKeypress.ENTER, ' ', true, false, false);
668 public static final TKeypress kbAltTab = new TKeypress(true,
669 TKeypress.TAB, ' ', true, false, false);
670 public static final TKeypress kbAltEsc = new TKeypress(true,
671 TKeypress.ESC, ' ', true, false, false);
672 public static final TKeypress kbAltHome = new TKeypress(true,
673 TKeypress.HOME, ' ', true, false, false);
674 public static final TKeypress kbAltEnd = new TKeypress(true,
675 TKeypress.END, ' ', true, false, false);
676 public static final TKeypress kbAltPgUp = new TKeypress(true,
677 TKeypress.PGUP, ' ', true, false, false);
678 public static final TKeypress kbAltPgDn = new TKeypress(true,
679 TKeypress.PGDN, ' ', true, false, false);
680 public static final TKeypress kbAltIns = new TKeypress(true,
681 TKeypress.INS, ' ', true, false, false);
682 public static final TKeypress kbAltDel = new TKeypress(true,
683 TKeypress.DEL, ' ', true, false, false);
684 public static final TKeypress kbAltUp = new TKeypress(true,
685 TKeypress.UP, ' ', true, false, false);
686 public static final TKeypress kbAltDown = new TKeypress(true,
687 TKeypress.DOWN, ' ', true, false, false);
688 public static final TKeypress kbAltLeft = new TKeypress(true,
689 TKeypress.LEFT, ' ', true, false, false);
690 public static final TKeypress kbAltRight = new TKeypress(true,
691 TKeypress.RIGHT, ' ', true, false, false);
692 public static final TKeypress kbCtrlEnter = new TKeypress(true,
693 TKeypress.ENTER, ' ', false, true, false);
694 public static final TKeypress kbCtrlTab = new TKeypress(true,
695 TKeypress.TAB, ' ', false, true, false);
696 public static final TKeypress kbCtrlEsc = new TKeypress(true,
697 TKeypress.ESC, ' ', false, true, false);
698 public static final TKeypress kbCtrlHome = new TKeypress(true,
699 TKeypress.HOME, ' ', false, true, false);
700 public static final TKeypress kbCtrlEnd = new TKeypress(true,
701 TKeypress.END, ' ', false, true, false);
702 public static final TKeypress kbCtrlPgUp = new TKeypress(true,
703 TKeypress.PGUP, ' ', false, true, false);
704 public static final TKeypress kbCtrlPgDn = new TKeypress(true,
705 TKeypress.PGDN, ' ', false, true, false);
706 public static final TKeypress kbCtrlIns = new TKeypress(true,
707 TKeypress.INS, ' ', false, true, false);
708 public static final TKeypress kbCtrlDel = new TKeypress(true,
709 TKeypress.DEL, ' ', false, true, false);
710 public static final TKeypress kbCtrlUp = new TKeypress(true,
711 TKeypress.UP, ' ', false, true, false);
712 public static final TKeypress kbCtrlDown = new TKeypress(true,
713 TKeypress.DOWN, ' ', false, true, false);
714 public static final TKeypress kbCtrlLeft = new TKeypress(true,
715 TKeypress.LEFT, ' ', false, true, false);
716 public static final TKeypress kbCtrlRight = new TKeypress(true,
717 TKeypress.RIGHT, ' ', false, true, false);
718 public static final TKeypress kbShiftEnter = new TKeypress(true,
719 TKeypress.ENTER, ' ', false, false, true);
720 public static final TKeypress kbShiftTab = new TKeypress(true,
721 TKeypress.TAB, ' ', false, false, true);
722 public static final TKeypress kbBackTab = new TKeypress(true,
723 TKeypress.BTAB, ' ', false, false, false);
724 public static final TKeypress kbShiftEsc = new TKeypress(true,
725 TKeypress.ESC, ' ', false, false, true);
726 public static final TKeypress kbShiftHome = new TKeypress(true,
727 TKeypress.HOME, ' ', false, false, true);
728 public static final TKeypress kbShiftEnd = new TKeypress(true,
729 TKeypress.END, ' ', false, false, true);
730 public static final TKeypress kbShiftPgUp = new TKeypress(true,
731 TKeypress.PGUP, ' ', false, false, true);
732 public static final TKeypress kbShiftPgDn = new TKeypress(true,
733 TKeypress.PGDN, ' ', false, false, true);
734 public static final TKeypress kbShiftIns = new TKeypress(true,
735 TKeypress.INS, ' ', false, false, true);
736 public static final TKeypress kbShiftDel = new TKeypress(true,
737 TKeypress.DEL, ' ', false, false, true);
738 public static final TKeypress kbShiftUp = new TKeypress(true,
739 TKeypress.UP, ' ', false, false, true);
740 public static final TKeypress kbShiftDown = new TKeypress(true,
741 TKeypress.DOWN, ' ', false, false, true);
742 public static final TKeypress kbShiftLeft = new TKeypress(true,
743 TKeypress.LEFT, ' ', false, false, true);
744 public static final TKeypress kbShiftRight = new TKeypress(true,
745 TKeypress.RIGHT, ' ', false, false, true);
746 public static final TKeypress kbA = new TKeypress(false,
747 0, 'a', false, false, false);
748 public static final TKeypress kbB = new TKeypress(false,
749 0, 'b', false, false, false);
750 public static final TKeypress kbC = new TKeypress(false,
751 0, 'c', false, false, false);
752 public static final TKeypress kbD = new TKeypress(false,
753 0, 'd', false, false, false);
754 public static final TKeypress kbE = new TKeypress(false,
755 0, 'e', false, false, false);
756 public static final TKeypress kbF = new TKeypress(false,
757 0, 'f', false, false, false);
758 public static final TKeypress kbG = new TKeypress(false,
759 0, 'g', false, false, false);
760 public static final TKeypress kbH = new TKeypress(false,
761 0, 'h', false, false, false);
762 public static final TKeypress kbI = new TKeypress(false,
763 0, 'i', false, false, false);
764 public static final TKeypress kbJ = new TKeypress(false,
765 0, 'j', false, false, false);
766 public static final TKeypress kbK = new TKeypress(false,
767 0, 'k', false, false, false);
768 public static final TKeypress kbL = new TKeypress(false,
769 0, 'l', false, false, false);
770 public static final TKeypress kbM = new TKeypress(false,
771 0, 'm', false, false, false);
772 public static final TKeypress kbN = new TKeypress(false,
773 0, 'n', false, false, false);
774 public static final TKeypress kbO = new TKeypress(false,
775 0, 'o', false, false, false);
776 public static final TKeypress kbP = new TKeypress(false,
777 0, 'p', false, false, false);
778 public static final TKeypress kbQ = new TKeypress(false,
779 0, 'q', false, false, false);
780 public static final TKeypress kbR = new TKeypress(false,
781 0, 'r', false, false, false);
782 public static final TKeypress kbS = new TKeypress(false,
783 0, 's', false, false, false);
784 public static final TKeypress kbT = new TKeypress(false,
785 0, 't', false, false, false);
786 public static final TKeypress kbU = new TKeypress(false,
787 0, 'u', false, false, false);
788 public static final TKeypress kbV = new TKeypress(false,
789 0, 'v', false, false, false);
790 public static final TKeypress kbW = new TKeypress(false,
791 0, 'w', false, false, false);
792 public static final TKeypress kbX = new TKeypress(false,
793 0, 'x', false, false, false);
794 public static final TKeypress kbY = new TKeypress(false,
795 0, 'y', false, false, false);
796 public static final TKeypress kbZ = new TKeypress(false,
797 0, 'z', false, false, false);
798 public static final TKeypress kbSpace = new TKeypress(false,
799 0, ' ', false, false, false);
800 public static final TKeypress kbAltA = new TKeypress(false,
801 0, 'a', true, false, false);
802 public static final TKeypress kbAltB = new TKeypress(false,
803 0, 'b', true, false, false);
804 public static final TKeypress kbAltC = new TKeypress(false,
805 0, 'c', true, false, false);
806 public static final TKeypress kbAltD = new TKeypress(false,
807 0, 'd', true, false, false);
808 public static final TKeypress kbAltE = new TKeypress(false,
809 0, 'e', true, false, false);
810 public static final TKeypress kbAltF = new TKeypress(false,
811 0, 'f', true, false, false);
812 public static final TKeypress kbAltG = new TKeypress(false,
813 0, 'g', true, false, false);
814 public static final TKeypress kbAltH = new TKeypress(false,
815 0, 'h', true, false, false);
816 public static final TKeypress kbAltI = new TKeypress(false,
817 0, 'i', true, false, false);
818 public static final TKeypress kbAltJ = new TKeypress(false,
819 0, 'j', true, false, false);
820 public static final TKeypress kbAltK = new TKeypress(false,
821 0, 'k', true, false, false);
822 public static final TKeypress kbAltL = new TKeypress(false,
823 0, 'l', true, false, false);
824 public static final TKeypress kbAltM = new TKeypress(false,
825 0, 'm', true, false, false);
826 public static final TKeypress kbAltN = new TKeypress(false,
827 0, 'n', true, false, false);
828 public static final TKeypress kbAltO = new TKeypress(false,
829 0, 'o', true, false, false);
830 public static final TKeypress kbAltP = new TKeypress(false,
831 0, 'p', true, false, false);
832 public static final TKeypress kbAltQ = new TKeypress(false,
833 0, 'q', true, false, false);
834 public static final TKeypress kbAltR = new TKeypress(false,
835 0, 'r', true, false, false);
836 public static final TKeypress kbAltS = new TKeypress(false,
837 0, 's', true, false, false);
838 public static final TKeypress kbAltT = new TKeypress(false,
839 0, 't', true, false, false);
840 public static final TKeypress kbAltU = new TKeypress(false,
841 0, 'u', true, false, false);
842 public static final TKeypress kbAltV = new TKeypress(false,
843 0, 'v', true, false, false);
844 public static final TKeypress kbAltW = new TKeypress(false,
845 0, 'w', true, false, false);
846 public static final TKeypress kbAltX = new TKeypress(false,
847 0, 'x', true, false, false);
848 public static final TKeypress kbAltY = new TKeypress(false,
849 0, 'y', true, false, false);
850 public static final TKeypress kbAltZ = new TKeypress(false,
851 0, 'z', true, false, false);
852 public static final TKeypress kbCtrlA = new TKeypress(false,
853 0, 'A', false, true, false);
854 public static final TKeypress kbCtrlB = new TKeypress(false,
855 0, 'B', false, true, false);
856 public static final TKeypress kbCtrlC = new TKeypress(false,
857 0, 'C', false, true, false);
858 public static final TKeypress kbCtrlD = new TKeypress(false,
859 0, 'D', false, true, false);
860 public static final TKeypress kbCtrlE = new TKeypress(false,
861 0, 'E', false, true, false);
862 public static final TKeypress kbCtrlF = new TKeypress(false,
863 0, 'F', false, true, false);
864 public static final TKeypress kbCtrlG = new TKeypress(false,
865 0, 'G', false, true, false);
866 public static final TKeypress kbCtrlH = new TKeypress(false,
867 0, 'H', false, true, false);
868 public static final TKeypress kbCtrlI = new TKeypress(false,
869 0, 'I', false, true, false);
870 public static final TKeypress kbCtrlJ = new TKeypress(false,
871 0, 'J', false, true, false);
872 public static final TKeypress kbCtrlK = new TKeypress(false,
873 0, 'K', false, true, false);
874 public static final TKeypress kbCtrlL = new TKeypress(false,
875 0, 'L', false, true, false);
876 public static final TKeypress kbCtrlM = new TKeypress(false,
877 0, 'M', false, true, false);
878 public static final TKeypress kbCtrlN = new TKeypress(false,
879 0, 'N', false, true, false);
880 public static final TKeypress kbCtrlO = new TKeypress(false,
881 0, 'O', false, true, false);
882 public static final TKeypress kbCtrlP = new TKeypress(false,
883 0, 'P', false, true, false);
884 public static final TKeypress kbCtrlQ = new TKeypress(false,
885 0, 'Q', false, true, false);
886 public static final TKeypress kbCtrlR = new TKeypress(false,
887 0, 'R', false, true, false);
888 public static final TKeypress kbCtrlS = new TKeypress(false,
889 0, 'S', false, true, false);
890 public static final TKeypress kbCtrlT = new TKeypress(false,
891 0, 'T', false, true, false);
892 public static final TKeypress kbCtrlU = new TKeypress(false,
893 0, 'U', false, true, false);
894 public static final TKeypress kbCtrlV = new TKeypress(false,
895 0, 'V', false, true, false);
896 public static final TKeypress kbCtrlW = new TKeypress(false,
897 0, 'W', false, true, false);
898 public static final TKeypress kbCtrlX = new TKeypress(false,
899 0, 'X', false, true, false);
900 public static final TKeypress kbCtrlY = new TKeypress(false,
901 0, 'Y', false, true, false);
902 public static final TKeypress kbCtrlZ = new TKeypress(false,
903 0, 'Z', false, true, false);
904 public static final TKeypress kbAltShiftA = new TKeypress(false,
905 0, 'A', true, false, true);
906 public static final TKeypress kbAltShiftB = new TKeypress(false,
907 0, 'B', true, false, true);
908 public static final TKeypress kbAltShiftC = new TKeypress(false,
909 0, 'C', true, false, true);
910 public static final TKeypress kbAltShiftD = new TKeypress(false,
911 0, 'D', true, false, true);
912 public static final TKeypress kbAltShiftE = new TKeypress(false,
913 0, 'E', true, false, true);
914 public static final TKeypress kbAltShiftF = new TKeypress(false,
915 0, 'F', true, false, true);
916 public static final TKeypress kbAltShiftG = new TKeypress(false,
917 0, 'G', true, false, true);
918 public static final TKeypress kbAltShiftH = new TKeypress(false,
919 0, 'H', true, false, true);
920 public static final TKeypress kbAltShiftI = new TKeypress(false,
921 0, 'I', true, false, true);
922 public static final TKeypress kbAltShiftJ = new TKeypress(false,
923 0, 'J', true, false, true);
924 public static final TKeypress kbAltShiftK = new TKeypress(false,
925 0, 'K', true, false, true);
926 public static final TKeypress kbAltShiftL = new TKeypress(false,
927 0, 'L', true, false, true);
928 public static final TKeypress kbAltShiftM = new TKeypress(false,
929 0, 'M', true, false, true);
930 public static final TKeypress kbAltShiftN = new TKeypress(false,
931 0, 'N', true, false, true);
932 public static final TKeypress kbAltShiftO = new TKeypress(false,
933 0, 'O', true, false, true);
934 public static final TKeypress kbAltShiftP = new TKeypress(false,
935 0, 'P', true, false, true);
936 public static final TKeypress kbAltShiftQ = new TKeypress(false,
937 0, 'Q', true, false, true);
938 public static final TKeypress kbAltShiftR = new TKeypress(false,
939 0, 'R', true, false, true);
940 public static final TKeypress kbAltShiftS = new TKeypress(false,
941 0, 'S', true, false, true);
942 public static final TKeypress kbAltShiftT = new TKeypress(false,
943 0, 'T', true, false, true);
944 public static final TKeypress kbAltShiftU = new TKeypress(false,
945 0, 'U', true, false, true);
946 public static final TKeypress kbAltShiftV = new TKeypress(false,
947 0, 'V', true, false, true);
948 public static final TKeypress kbAltShiftW = new TKeypress(false,
949 0, 'W', true, false, true);
950 public static final TKeypress kbAltShiftX = new TKeypress(false,
951 0, 'X', true, false, true);
952 public static final TKeypress kbAltShiftY = new TKeypress(false,
953 0, 'Y', true, false, true);
954 public static final TKeypress kbAltShiftZ = new TKeypress(false,
955 0, 'Z', true, false, true);
956
957 /**
958 * Backspace as ^H.
959 */
960 public static final TKeypress kbBackspace = new TKeypress(false,
961 0, 'H', false, true, false);
962
963 /**
964 * Backspace as ^?.
965 */
966 public static final TKeypress kbBackspaceDel = new TKeypress(false,
967 0, (char)0x7F, false, false, false);
968
969 }