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