2 * Jexer - Java Text User Interface
4 * The MIT License (MIT)
6 * Copyright (C) 2017 Kevin Lamonte
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:
15 * The above copyright notice and this permission notice shall be included in
16 * all copies or substantial portions of the Software.
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.
26 * @author Kevin Lamonte [kevin.lamonte@gmail.com]
32 * This class represents keystrokes.
34 public class TKeypress
{
36 // ------------------------------------------------------------------------
37 // Constants --------------------------------------------------------------
38 // ------------------------------------------------------------------------
40 // Various special keystrokes
45 public static final int NONE
= 255;
50 public static final int F1
= 1;
55 public static final int F2
= 2;
60 public static final int F3
= 3;
65 public static final int F4
= 4;
70 public static final int F5
= 5;
75 public static final int F6
= 6;
80 public static final int F7
= 7;
85 public static final int F8
= 8;
90 public static final int F9
= 9;
95 public static final int F10
= 10;
100 public static final int F11
= 11;
105 public static final int F12
= 12;
110 public static final int HOME
= 20;
115 public static final int END
= 21;
120 public static final int PGUP
= 22;
125 public static final int PGDN
= 23;
130 public static final int INS
= 24;
135 public static final int DEL
= 25;
140 public static final int RIGHT
= 30;
145 public static final int LEFT
= 31;
150 public static final int UP
= 32;
155 public static final int DOWN
= 33;
160 public static final int TAB
= 40;
163 * Back-tab (shift-tab).
165 public static final int BTAB
= 41;
170 public static final int ENTER
= 42;
175 public static final int ESC
= 43;
178 // Special "no-key" keypress, used to ignore undefined keystrokes
179 public static final TKeypress kbNoKey
= new TKeypress(true,
180 TKeypress
.NONE
, ' ', false, false, false);
183 public static final TKeypress kbF1
= new TKeypress(true,
184 TKeypress
.F1
, ' ', false, false, false);
185 public static final TKeypress kbF2
= new TKeypress(true,
186 TKeypress
.F2
, ' ', false, false, false);
187 public static final TKeypress kbF3
= new TKeypress(true,
188 TKeypress
.F3
, ' ', false, false, false);
189 public static final TKeypress kbF4
= new TKeypress(true,
190 TKeypress
.F4
, ' ', false, false, false);
191 public static final TKeypress kbF5
= new TKeypress(true,
192 TKeypress
.F5
, ' ', false, false, false);
193 public static final TKeypress kbF6
= new TKeypress(true,
194 TKeypress
.F6
, ' ', false, false, false);
195 public static final TKeypress kbF7
= new TKeypress(true,
196 TKeypress
.F7
, ' ', false, false, false);
197 public static final TKeypress kbF8
= new TKeypress(true,
198 TKeypress
.F8
, ' ', false, false, false);
199 public static final TKeypress kbF9
= new TKeypress(true,
200 TKeypress
.F9
, ' ', false, false, false);
201 public static final TKeypress kbF10
= new TKeypress(true,
202 TKeypress
.F10
, ' ', false, false, false);
203 public static final TKeypress kbF11
= new TKeypress(true,
204 TKeypress
.F11
, ' ', false, false, false);
205 public static final TKeypress kbF12
= new TKeypress(true,
206 TKeypress
.F12
, ' ', false, false, false);
207 public static final TKeypress kbAltF1
= new TKeypress(true,
208 TKeypress
.F1
, ' ', true, false, false);
209 public static final TKeypress kbAltF2
= new TKeypress(true,
210 TKeypress
.F2
, ' ', true, false, false);
211 public static final TKeypress kbAltF3
= new TKeypress(true,
212 TKeypress
.F3
, ' ', true, false, false);
213 public static final TKeypress kbAltF4
= new TKeypress(true,
214 TKeypress
.F4
, ' ', true, false, false);
215 public static final TKeypress kbAltF5
= new TKeypress(true,
216 TKeypress
.F5
, ' ', true, false, false);
217 public static final TKeypress kbAltF6
= new TKeypress(true,
218 TKeypress
.F6
, ' ', true, false, false);
219 public static final TKeypress kbAltF7
= new TKeypress(true,
220 TKeypress
.F7
, ' ', true, false, false);
221 public static final TKeypress kbAltF8
= new TKeypress(true,
222 TKeypress
.F8
, ' ', true, false, false);
223 public static final TKeypress kbAltF9
= new TKeypress(true,
224 TKeypress
.F9
, ' ', true, false, false);
225 public static final TKeypress kbAltF10
= new TKeypress(true,
226 TKeypress
.F10
, ' ', true, false, false);
227 public static final TKeypress kbAltF11
= new TKeypress(true,
228 TKeypress
.F11
, ' ', true, false, false);
229 public static final TKeypress kbAltF12
= new TKeypress(true,
230 TKeypress
.F12
, ' ', true, false, false);
231 public static final TKeypress kbCtrlF1
= new TKeypress(true,
232 TKeypress
.F1
, ' ', false, true, false);
233 public static final TKeypress kbCtrlF2
= new TKeypress(true,
234 TKeypress
.F2
, ' ', false, true, false);
235 public static final TKeypress kbCtrlF3
= new TKeypress(true,
236 TKeypress
.F3
, ' ', false, true, false);
237 public static final TKeypress kbCtrlF4
= new TKeypress(true,
238 TKeypress
.F4
, ' ', false, true, false);
239 public static final TKeypress kbCtrlF5
= new TKeypress(true,
240 TKeypress
.F5
, ' ', false, true, false);
241 public static final TKeypress kbCtrlF6
= new TKeypress(true,
242 TKeypress
.F6
, ' ', false, true, false);
243 public static final TKeypress kbCtrlF7
= new TKeypress(true,
244 TKeypress
.F7
, ' ', false, true, false);
245 public static final TKeypress kbCtrlF8
= new TKeypress(true,
246 TKeypress
.F8
, ' ', false, true, false);
247 public static final TKeypress kbCtrlF9
= new TKeypress(true,
248 TKeypress
.F9
, ' ', false, true, false);
249 public static final TKeypress kbCtrlF10
= new TKeypress(true,
250 TKeypress
.F10
, ' ', false, true, false);
251 public static final TKeypress kbCtrlF11
= new TKeypress(true,
252 TKeypress
.F11
, ' ', false, true, false);
253 public static final TKeypress kbCtrlF12
= new TKeypress(true,
254 TKeypress
.F12
, ' ', false, true, false);
255 public static final TKeypress kbShiftF1
= new TKeypress(true,
256 TKeypress
.F1
, ' ', false, false, true);
257 public static final TKeypress kbShiftF2
= new TKeypress(true,
258 TKeypress
.F2
, ' ', false, false, true);
259 public static final TKeypress kbShiftF3
= new TKeypress(true,
260 TKeypress
.F3
, ' ', false, false, true);
261 public static final TKeypress kbShiftF4
= new TKeypress(true,
262 TKeypress
.F4
, ' ', false, false, true);
263 public static final TKeypress kbShiftF5
= new TKeypress(true,
264 TKeypress
.F5
, ' ', false, false, true);
265 public static final TKeypress kbShiftF6
= new TKeypress(true,
266 TKeypress
.F6
, ' ', false, false, true);
267 public static final TKeypress kbShiftF7
= new TKeypress(true,
268 TKeypress
.F7
, ' ', false, false, true);
269 public static final TKeypress kbShiftF8
= new TKeypress(true,
270 TKeypress
.F8
, ' ', false, false, true);
271 public static final TKeypress kbShiftF9
= new TKeypress(true,
272 TKeypress
.F9
, ' ', false, false, true);
273 public static final TKeypress kbShiftF10
= new TKeypress(true,
274 TKeypress
.F10
, ' ', false, false, true);
275 public static final TKeypress kbShiftF11
= new TKeypress(true,
276 TKeypress
.F11
, ' ', false, false, true);
277 public static final TKeypress kbShiftF12
= new TKeypress(true,
278 TKeypress
.F12
, ' ', false, false, true);
279 public static final TKeypress kbEnter
= new TKeypress(true,
280 TKeypress
.ENTER
, ' ', false, false, false);
281 public static final TKeypress kbTab
= new TKeypress(true,
282 TKeypress
.TAB
, ' ', false, false, false);
283 public static final TKeypress kbEsc
= new TKeypress(true,
284 TKeypress
.ESC
, ' ', false, false, false);
285 public static final TKeypress kbHome
= new TKeypress(true,
286 TKeypress
.HOME
, ' ', false, false, false);
287 public static final TKeypress kbEnd
= new TKeypress(true,
288 TKeypress
.END
, ' ', false, false, false);
289 public static final TKeypress kbPgUp
= new TKeypress(true,
290 TKeypress
.PGUP
, ' ', false, false, false);
291 public static final TKeypress kbPgDn
= new TKeypress(true,
292 TKeypress
.PGDN
, ' ', false, false, false);
293 public static final TKeypress kbIns
= new TKeypress(true,
294 TKeypress
.INS
, ' ', false, false, false);
295 public static final TKeypress kbDel
= new TKeypress(true,
296 TKeypress
.DEL
, ' ', false, false, false);
297 public static final TKeypress kbUp
= new TKeypress(true,
298 TKeypress
.UP
, ' ', false, false, false);
299 public static final TKeypress kbDown
= new TKeypress(true,
300 TKeypress
.DOWN
, ' ', false, false, false);
301 public static final TKeypress kbLeft
= new TKeypress(true,
302 TKeypress
.LEFT
, ' ', false, false, false);
303 public static final TKeypress kbRight
= new TKeypress(true,
304 TKeypress
.RIGHT
, ' ', false, false, false);
305 public static final TKeypress kbAltEnter
= new TKeypress(true,
306 TKeypress
.ENTER
, ' ', true, false, false);
307 public static final TKeypress kbAltTab
= new TKeypress(true,
308 TKeypress
.TAB
, ' ', true, false, false);
309 public static final TKeypress kbAltEsc
= new TKeypress(true,
310 TKeypress
.ESC
, ' ', true, false, false);
311 public static final TKeypress kbAltHome
= new TKeypress(true,
312 TKeypress
.HOME
, ' ', true, false, false);
313 public static final TKeypress kbAltEnd
= new TKeypress(true,
314 TKeypress
.END
, ' ', true, false, false);
315 public static final TKeypress kbAltPgUp
= new TKeypress(true,
316 TKeypress
.PGUP
, ' ', true, false, false);
317 public static final TKeypress kbAltPgDn
= new TKeypress(true,
318 TKeypress
.PGDN
, ' ', true, false, false);
319 public static final TKeypress kbAltIns
= new TKeypress(true,
320 TKeypress
.INS
, ' ', true, false, false);
321 public static final TKeypress kbAltDel
= new TKeypress(true,
322 TKeypress
.DEL
, ' ', true, false, false);
323 public static final TKeypress kbAltUp
= new TKeypress(true,
324 TKeypress
.UP
, ' ', true, false, false);
325 public static final TKeypress kbAltDown
= new TKeypress(true,
326 TKeypress
.DOWN
, ' ', true, false, false);
327 public static final TKeypress kbAltLeft
= new TKeypress(true,
328 TKeypress
.LEFT
, ' ', true, false, false);
329 public static final TKeypress kbAltRight
= new TKeypress(true,
330 TKeypress
.RIGHT
, ' ', true, false, false);
331 public static final TKeypress kbCtrlEnter
= new TKeypress(true,
332 TKeypress
.ENTER
, ' ', false, true, false);
333 public static final TKeypress kbCtrlTab
= new TKeypress(true,
334 TKeypress
.TAB
, ' ', false, true, false);
335 public static final TKeypress kbCtrlEsc
= new TKeypress(true,
336 TKeypress
.ESC
, ' ', false, true, false);
337 public static final TKeypress kbCtrlHome
= new TKeypress(true,
338 TKeypress
.HOME
, ' ', false, true, false);
339 public static final TKeypress kbCtrlEnd
= new TKeypress(true,
340 TKeypress
.END
, ' ', false, true, false);
341 public static final TKeypress kbCtrlPgUp
= new TKeypress(true,
342 TKeypress
.PGUP
, ' ', false, true, false);
343 public static final TKeypress kbCtrlPgDn
= new TKeypress(true,
344 TKeypress
.PGDN
, ' ', false, true, false);
345 public static final TKeypress kbCtrlIns
= new TKeypress(true,
346 TKeypress
.INS
, ' ', false, true, false);
347 public static final TKeypress kbCtrlDel
= new TKeypress(true,
348 TKeypress
.DEL
, ' ', false, true, false);
349 public static final TKeypress kbCtrlUp
= new TKeypress(true,
350 TKeypress
.UP
, ' ', false, true, false);
351 public static final TKeypress kbCtrlDown
= new TKeypress(true,
352 TKeypress
.DOWN
, ' ', false, true, false);
353 public static final TKeypress kbCtrlLeft
= new TKeypress(true,
354 TKeypress
.LEFT
, ' ', false, true, false);
355 public static final TKeypress kbCtrlRight
= new TKeypress(true,
356 TKeypress
.RIGHT
, ' ', false, true, false);
357 public static final TKeypress kbShiftEnter
= new TKeypress(true,
358 TKeypress
.ENTER
, ' ', false, false, true);
359 public static final TKeypress kbShiftTab
= new TKeypress(true,
360 TKeypress
.TAB
, ' ', false, false, true);
361 public static final TKeypress kbBackTab
= new TKeypress(true,
362 TKeypress
.BTAB
, ' ', false, false, false);
363 public static final TKeypress kbShiftEsc
= new TKeypress(true,
364 TKeypress
.ESC
, ' ', false, false, true);
365 public static final TKeypress kbShiftHome
= new TKeypress(true,
366 TKeypress
.HOME
, ' ', false, false, true);
367 public static final TKeypress kbShiftEnd
= new TKeypress(true,
368 TKeypress
.END
, ' ', false, false, true);
369 public static final TKeypress kbShiftPgUp
= new TKeypress(true,
370 TKeypress
.PGUP
, ' ', false, false, true);
371 public static final TKeypress kbShiftPgDn
= new TKeypress(true,
372 TKeypress
.PGDN
, ' ', false, false, true);
373 public static final TKeypress kbShiftIns
= new TKeypress(true,
374 TKeypress
.INS
, ' ', false, false, true);
375 public static final TKeypress kbShiftDel
= new TKeypress(true,
376 TKeypress
.DEL
, ' ', false, false, true);
377 public static final TKeypress kbShiftUp
= new TKeypress(true,
378 TKeypress
.UP
, ' ', false, false, true);
379 public static final TKeypress kbShiftDown
= new TKeypress(true,
380 TKeypress
.DOWN
, ' ', false, false, true);
381 public static final TKeypress kbShiftLeft
= new TKeypress(true,
382 TKeypress
.LEFT
, ' ', false, false, true);
383 public static final TKeypress kbShiftRight
= new TKeypress(true,
384 TKeypress
.RIGHT
, ' ', false, false, true);
385 public static final TKeypress kbA
= new TKeypress(false,
386 0, 'a', false, false, false);
387 public static final TKeypress kbB
= new TKeypress(false,
388 0, 'b', false, false, false);
389 public static final TKeypress kbC
= new TKeypress(false,
390 0, 'c', false, false, false);
391 public static final TKeypress kbD
= new TKeypress(false,
392 0, 'd', false, false, false);
393 public static final TKeypress kbE
= new TKeypress(false,
394 0, 'e', false, false, false);
395 public static final TKeypress kbF
= new TKeypress(false,
396 0, 'f', false, false, false);
397 public static final TKeypress kbG
= new TKeypress(false,
398 0, 'g', false, false, false);
399 public static final TKeypress kbH
= new TKeypress(false,
400 0, 'h', false, false, false);
401 public static final TKeypress kbI
= new TKeypress(false,
402 0, 'i', false, false, false);
403 public static final TKeypress kbJ
= new TKeypress(false,
404 0, 'j', false, false, false);
405 public static final TKeypress kbK
= new TKeypress(false,
406 0, 'k', false, false, false);
407 public static final TKeypress kbL
= new TKeypress(false,
408 0, 'l', false, false, false);
409 public static final TKeypress kbM
= new TKeypress(false,
410 0, 'm', false, false, false);
411 public static final TKeypress kbN
= new TKeypress(false,
412 0, 'n', false, false, false);
413 public static final TKeypress kbO
= new TKeypress(false,
414 0, 'o', false, false, false);
415 public static final TKeypress kbP
= new TKeypress(false,
416 0, 'p', false, false, false);
417 public static final TKeypress kbQ
= new TKeypress(false,
418 0, 'q', false, false, false);
419 public static final TKeypress kbR
= new TKeypress(false,
420 0, 'r', false, false, false);
421 public static final TKeypress kbS
= new TKeypress(false,
422 0, 's', false, false, false);
423 public static final TKeypress kbT
= new TKeypress(false,
424 0, 't', false, false, false);
425 public static final TKeypress kbU
= new TKeypress(false,
426 0, 'u', false, false, false);
427 public static final TKeypress kbV
= new TKeypress(false,
428 0, 'v', false, false, false);
429 public static final TKeypress kbW
= new TKeypress(false,
430 0, 'w', false, false, false);
431 public static final TKeypress kbX
= new TKeypress(false,
432 0, 'x', false, false, false);
433 public static final TKeypress kbY
= new TKeypress(false,
434 0, 'y', false, false, false);
435 public static final TKeypress kbZ
= new TKeypress(false,
436 0, 'z', false, false, false);
437 public static final TKeypress kbSpace
= new TKeypress(false,
438 0, ' ', false, false, false);
439 public static final TKeypress kbAltA
= new TKeypress(false,
440 0, 'a', true, false, false);
441 public static final TKeypress kbAltB
= new TKeypress(false,
442 0, 'b', true, false, false);
443 public static final TKeypress kbAltC
= new TKeypress(false,
444 0, 'c', true, false, false);
445 public static final TKeypress kbAltD
= new TKeypress(false,
446 0, 'd', true, false, false);
447 public static final TKeypress kbAltE
= new TKeypress(false,
448 0, 'e', true, false, false);
449 public static final TKeypress kbAltF
= new TKeypress(false,
450 0, 'f', true, false, false);
451 public static final TKeypress kbAltG
= new TKeypress(false,
452 0, 'g', true, false, false);
453 public static final TKeypress kbAltH
= new TKeypress(false,
454 0, 'h', true, false, false);
455 public static final TKeypress kbAltI
= new TKeypress(false,
456 0, 'i', true, false, false);
457 public static final TKeypress kbAltJ
= new TKeypress(false,
458 0, 'j', true, false, false);
459 public static final TKeypress kbAltK
= new TKeypress(false,
460 0, 'k', true, false, false);
461 public static final TKeypress kbAltL
= new TKeypress(false,
462 0, 'l', true, false, false);
463 public static final TKeypress kbAltM
= new TKeypress(false,
464 0, 'm', true, false, false);
465 public static final TKeypress kbAltN
= new TKeypress(false,
466 0, 'n', true, false, false);
467 public static final TKeypress kbAltO
= new TKeypress(false,
468 0, 'o', true, false, false);
469 public static final TKeypress kbAltP
= new TKeypress(false,
470 0, 'p', true, false, false);
471 public static final TKeypress kbAltQ
= new TKeypress(false,
472 0, 'q', true, false, false);
473 public static final TKeypress kbAltR
= new TKeypress(false,
474 0, 'r', true, false, false);
475 public static final TKeypress kbAltS
= new TKeypress(false,
476 0, 's', true, false, false);
477 public static final TKeypress kbAltT
= new TKeypress(false,
478 0, 't', true, false, false);
479 public static final TKeypress kbAltU
= new TKeypress(false,
480 0, 'u', true, false, false);
481 public static final TKeypress kbAltV
= new TKeypress(false,
482 0, 'v', true, false, false);
483 public static final TKeypress kbAltW
= new TKeypress(false,
484 0, 'w', true, false, false);
485 public static final TKeypress kbAltX
= new TKeypress(false,
486 0, 'x', true, false, false);
487 public static final TKeypress kbAltY
= new TKeypress(false,
488 0, 'y', true, false, false);
489 public static final TKeypress kbAltZ
= new TKeypress(false,
490 0, 'z', true, false, false);
491 public static final TKeypress kbCtrlA
= new TKeypress(false,
492 0, 'A', false, true, false);
493 public static final TKeypress kbCtrlB
= new TKeypress(false,
494 0, 'B', false, true, false);
495 public static final TKeypress kbCtrlC
= new TKeypress(false,
496 0, 'C', false, true, false);
497 public static final TKeypress kbCtrlD
= new TKeypress(false,
498 0, 'D', false, true, false);
499 public static final TKeypress kbCtrlE
= new TKeypress(false,
500 0, 'E', false, true, false);
501 public static final TKeypress kbCtrlF
= new TKeypress(false,
502 0, 'F', false, true, false);
503 public static final TKeypress kbCtrlG
= new TKeypress(false,
504 0, 'G', false, true, false);
505 public static final TKeypress kbCtrlH
= new TKeypress(false,
506 0, 'H', false, true, false);
507 public static final TKeypress kbCtrlI
= new TKeypress(false,
508 0, 'I', false, true, false);
509 public static final TKeypress kbCtrlJ
= new TKeypress(false,
510 0, 'J', false, true, false);
511 public static final TKeypress kbCtrlK
= new TKeypress(false,
512 0, 'K', false, true, false);
513 public static final TKeypress kbCtrlL
= new TKeypress(false,
514 0, 'L', false, true, false);
515 public static final TKeypress kbCtrlM
= new TKeypress(false,
516 0, 'M', false, true, false);
517 public static final TKeypress kbCtrlN
= new TKeypress(false,
518 0, 'N', false, true, false);
519 public static final TKeypress kbCtrlO
= new TKeypress(false,
520 0, 'O', false, true, false);
521 public static final TKeypress kbCtrlP
= new TKeypress(false,
522 0, 'P', false, true, false);
523 public static final TKeypress kbCtrlQ
= new TKeypress(false,
524 0, 'Q', false, true, false);
525 public static final TKeypress kbCtrlR
= new TKeypress(false,
526 0, 'R', false, true, false);
527 public static final TKeypress kbCtrlS
= new TKeypress(false,
528 0, 'S', false, true, false);
529 public static final TKeypress kbCtrlT
= new TKeypress(false,
530 0, 'T', false, true, false);
531 public static final TKeypress kbCtrlU
= new TKeypress(false,
532 0, 'U', false, true, false);
533 public static final TKeypress kbCtrlV
= new TKeypress(false,
534 0, 'V', false, true, false);
535 public static final TKeypress kbCtrlW
= new TKeypress(false,
536 0, 'W', false, true, false);
537 public static final TKeypress kbCtrlX
= new TKeypress(false,
538 0, 'X', false, true, false);
539 public static final TKeypress kbCtrlY
= new TKeypress(false,
540 0, 'Y', false, true, false);
541 public static final TKeypress kbCtrlZ
= new TKeypress(false,
542 0, 'Z', false, true, false);
543 public static final TKeypress kbAltShiftA
= new TKeypress(false,
544 0, 'A', true, false, true);
545 public static final TKeypress kbAltShiftB
= new TKeypress(false,
546 0, 'B', true, false, true);
547 public static final TKeypress kbAltShiftC
= new TKeypress(false,
548 0, 'C', true, false, true);
549 public static final TKeypress kbAltShiftD
= new TKeypress(false,
550 0, 'D', true, false, true);
551 public static final TKeypress kbAltShiftE
= new TKeypress(false,
552 0, 'E', true, false, true);
553 public static final TKeypress kbAltShiftF
= new TKeypress(false,
554 0, 'F', true, false, true);
555 public static final TKeypress kbAltShiftG
= new TKeypress(false,
556 0, 'G', true, false, true);
557 public static final TKeypress kbAltShiftH
= new TKeypress(false,
558 0, 'H', true, false, true);
559 public static final TKeypress kbAltShiftI
= new TKeypress(false,
560 0, 'I', true, false, true);
561 public static final TKeypress kbAltShiftJ
= new TKeypress(false,
562 0, 'J', true, false, true);
563 public static final TKeypress kbAltShiftK
= new TKeypress(false,
564 0, 'K', true, false, true);
565 public static final TKeypress kbAltShiftL
= new TKeypress(false,
566 0, 'L', true, false, true);
567 public static final TKeypress kbAltShiftM
= new TKeypress(false,
568 0, 'M', true, false, true);
569 public static final TKeypress kbAltShiftN
= new TKeypress(false,
570 0, 'N', true, false, true);
571 public static final TKeypress kbAltShiftO
= new TKeypress(false,
572 0, 'O', true, false, true);
573 public static final TKeypress kbAltShiftP
= new TKeypress(false,
574 0, 'P', true, false, true);
575 public static final TKeypress kbAltShiftQ
= new TKeypress(false,
576 0, 'Q', true, false, true);
577 public static final TKeypress kbAltShiftR
= new TKeypress(false,
578 0, 'R', true, false, true);
579 public static final TKeypress kbAltShiftS
= new TKeypress(false,
580 0, 'S', true, false, true);
581 public static final TKeypress kbAltShiftT
= new TKeypress(false,
582 0, 'T', true, false, true);
583 public static final TKeypress kbAltShiftU
= new TKeypress(false,
584 0, 'U', true, false, true);
585 public static final TKeypress kbAltShiftV
= new TKeypress(false,
586 0, 'V', true, false, true);
587 public static final TKeypress kbAltShiftW
= new TKeypress(false,
588 0, 'W', true, false, true);
589 public static final TKeypress kbAltShiftX
= new TKeypress(false,
590 0, 'X', true, false, true);
591 public static final TKeypress kbAltShiftY
= new TKeypress(false,
592 0, 'Y', true, false, true);
593 public static final TKeypress kbAltShiftZ
= new TKeypress(false,
594 0, 'Z', true, false, true);
599 public static final TKeypress kbBackspace
= new TKeypress(false,
600 0, 'H', false, true, false);
605 public static final TKeypress kbBackspaceDel
= new TKeypress(false,
606 0, (char)0x7F, false, false, false);
608 // ------------------------------------------------------------------------
609 // Variables --------------------------------------------------------------
610 // ------------------------------------------------------------------------
613 * If true, ch is meaningless, use keyCode instead.
615 private boolean isFunctionKey
;
618 * Will be set to F1, F2, HOME, END, etc. if isKey is true.
623 * Keystroke modifier ALT.
628 * Keystroke modifier CTRL.
630 private boolean ctrl
;
633 * Keystroke modifier SHIFT.
635 private boolean shift
;
638 * The character received.
642 // ------------------------------------------------------------------------
643 // Constructors -----------------------------------------------------------
644 // ------------------------------------------------------------------------
647 * Public constructor makes an immutable instance.
649 * @param isKey is true, this is a function key
650 * @param fnKey the function key code (only valid if isKey is true)
651 * @param ch the character (only valid if fnKey is false)
652 * @param alt if true, ALT was pressed with this keystroke
653 * @param ctrl if true, CTRL was pressed with this keystroke
654 * @param shift if true, SHIFT was pressed with this keystroke
656 public TKeypress(final boolean isKey
, final int fnKey
, final char ch
,
657 final boolean alt
, final boolean ctrl
, final boolean shift
) {
659 this.isFunctionKey
= isKey
;
660 this.keyCode
= fnKey
;
667 // ------------------------------------------------------------------------
668 // TKeypress --------------------------------------------------------------
669 // ------------------------------------------------------------------------
672 * Getter for isFunctionKey.
674 * @return if true, ch is meaningless, use keyCode instead
676 public boolean isFnKey() {
677 return isFunctionKey
;
681 * Getter for function key code.
683 * @return function key code int value (only valid is isKey is true)
685 public int getKeyCode() {
694 public boolean isAlt() {
703 public boolean isCtrl() {
710 * @return shift value
712 public boolean isShift() {
717 * Getter for character.
719 * @return the character (only valid if isKey is false)
721 public char getChar() {
726 * Create a duplicate instance.
728 * @return duplicate intance
730 public TKeypress
dup() {
731 TKeypress keypress
= new TKeypress(isFunctionKey
, keyCode
, ch
,
737 * Comparison check. All fields must match to return true.
739 * @param rhs another TKeypress instance
740 * @return true if all fields are equal
743 public boolean equals(final Object rhs
) {
744 if (!(rhs
instanceof TKeypress
)) {
748 TKeypress that
= (TKeypress
) rhs
;
749 return ((isFunctionKey
== that
.isFunctionKey
)
750 && (keyCode
== that
.keyCode
)
753 && (ctrl
== that
.ctrl
)
754 && (shift
== that
.shift
));
758 * Comparison check, omitting the ctrl/alt/shift flags.
760 * @param rhs another TKeypress instance
761 * @return true if all fields (except for ctrl/alt/shift) are equal
763 public boolean equalsWithoutModifiers(final Object rhs
) {
764 if (!(rhs
instanceof TKeypress
)) {
768 TKeypress that
= (TKeypress
) rhs
;
769 return ((isFunctionKey
== that
.isFunctionKey
)
770 && (keyCode
== that
.keyCode
)
775 * Hashcode uses all fields in equals().
780 public int hashCode() {
784 hash
= (B
* hash
) + (isFunctionKey ?
1 : 0);
785 hash
= (B
* hash
) + keyCode
;
786 hash
= (B
* hash
) + ch
;
787 hash
= (B
* hash
) + (alt ?
1 : 0);
788 hash
= (B
* hash
) + (ctrl ?
1 : 0);
789 hash
= (B
* hash
) + (shift ?
1 : 0);
794 * Make human-readable description of this TKeypress.
796 * @return displayable String
799 public String
toString() {
803 return String
.format("%s%s%sF1",
806 shift ?
"Shift+" : "");
808 return String
.format("%s%s%sF2",
811 shift ?
"Shift+" : "");
813 return String
.format("%s%s%sF3",
816 shift ?
"Shift+" : "");
818 return String
.format("%s%s%sF4",
821 shift ?
"Shift+" : "");
823 return String
.format("%s%s%sF5",
826 shift ?
"Shift+" : "");
828 return String
.format("%s%s%sF6",
831 shift ?
"Shift+" : "");
833 return String
.format("%s%s%sF7",
836 shift ?
"Shift+" : "");
838 return String
.format("%s%s%sF8",
841 shift ?
"Shift+" : "");
843 return String
.format("%s%s%sF9",
846 shift ?
"Shift+" : "");
848 return String
.format("%s%s%sF10",
851 shift ?
"Shift+" : "");
853 return String
.format("%s%s%sF11",
856 shift ?
"Shift+" : "");
858 return String
.format("%s%s%sF12",
861 shift ?
"Shift+" : "");
863 return String
.format("%s%s%sHOME",
866 shift ?
"Shift+" : "");
868 return String
.format("%s%s%sEND",
871 shift ?
"Shift+" : "");
873 return String
.format("%s%s%sPGUP",
876 shift ?
"Shift+" : "");
878 return String
.format("%s%s%sPGDN",
881 shift ?
"Shift+" : "");
883 return String
.format("%s%s%sINS",
886 shift ?
"Shift+" : "");
888 return String
.format("%s%s%sDEL",
891 shift ?
"Shift+" : "");
893 return String
.format("%s%s%sRIGHT",
896 shift ?
"Shift+" : "");
898 return String
.format("%s%s%sLEFT",
901 shift ?
"Shift+" : "");
903 return String
.format("%s%s%sUP",
906 shift ?
"Shift+" : "");
908 return String
.format("%s%s%sDOWN",
911 shift ?
"Shift+" : "");
913 return String
.format("%s%s%sTAB",
916 shift ?
"Shift+" : "");
918 return String
.format("%s%s%sBTAB",
921 shift ?
"Shift+" : "");
923 return String
.format("%s%s%sENTER",
926 shift ?
"Shift+" : "");
928 return String
.format("%s%s%sESC",
931 shift ?
"Shift+" : "");
933 return String
.format("--UNKNOWN--");
936 if (alt
&& !shift
&& !ctrl
) {
938 return String
.format("Alt+%c", Character
.toUpperCase(ch
));
939 } else if (!alt
&& shift
&& !ctrl
) {
941 return String
.format("%c", ch
);
942 } else if (!alt
&& !shift
&& ctrl
) {
944 return String
.format("Ctrl+%c", ch
);
945 } else if (alt
&& shift
&& !ctrl
) {
947 return String
.format("Alt+Shift+%c", ch
);
948 } else if (!alt
&& shift
&& ctrl
) {
950 return String
.format("Ctrl+Shift+%c", ch
);
951 } else if (alt
&& !shift
&& ctrl
) {
953 return String
.format("Ctrl+Alt+%c", Character
.toUpperCase(ch
));
954 } else if (alt
&& shift
&& ctrl
) {
956 return String
.format("Ctrl+Alt+Shift+%c",
957 Character
.toUpperCase(ch
));
960 return String
.format("%c", ch
);
966 * Convert a keypress to lowercase. Function keys and alt/ctrl keys are
969 * @return a new instance with the key converted
971 public TKeypress
toLowerCase() {
972 TKeypress newKey
= new TKeypress(isFunctionKey
, keyCode
, ch
, alt
, ctrl
,
974 if (!isFunctionKey
&& (ch
>= 'A') && (ch
<= 'Z') && !ctrl
&& !alt
) {
975 newKey
.shift
= false;
982 * Convert a keypress to uppercase. Function keys and alt/ctrl keys are
985 * @return a new instance with the key converted
987 public TKeypress
toUpperCase() {
988 TKeypress newKey
= new TKeypress(isFunctionKey
, keyCode
, ch
, alt
, ctrl
,
990 if (!isFunctionKey
&& (ch
>= 'a') && (ch
<= 'z') && !ctrl
&& !alt
) {