Commit | Line | Data |
---|---|---|
daa4106c | 1 | /* |
df8de03f KL |
2 | * Jexer - Java Text User Interface |
3 | * | |
e16dda65 | 4 | * The MIT License (MIT) |
df8de03f | 5 | * |
a69ed767 | 6 | * Copyright (C) 2019 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 | */ |
29 | package jexer; | |
30 | ||
31 | /** | |
32 | * This class represents keystrokes. | |
33 | */ | |
051e2913 | 34 | public 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 | |
d36057df KL |
177 | // Special "no-key" keypress, used to ignore undefined keystrokes |
178 | public static final TKeypress kbNoKey = new TKeypress(true, | |
179 | TKeypress.NONE, ' ', false, false, false); | |
df8de03f KL |
180 | |
181 | // Normal keys | |
7b5261bc | 182 | public static final TKeypress kbF1 = new TKeypress(true, |
7c870d89 | 183 | TKeypress.F1, ' ', false, false, false); |
7b5261bc | 184 | public static final TKeypress kbF2 = new TKeypress(true, |
7c870d89 | 185 | TKeypress.F2, ' ', false, false, false); |
7b5261bc | 186 | public static final TKeypress kbF3 = new TKeypress(true, |
7c870d89 | 187 | TKeypress.F3, ' ', false, false, false); |
7b5261bc | 188 | public static final TKeypress kbF4 = new TKeypress(true, |
7c870d89 | 189 | TKeypress.F4, ' ', false, false, false); |
7b5261bc | 190 | public static final TKeypress kbF5 = new TKeypress(true, |
7c870d89 | 191 | TKeypress.F5, ' ', false, false, false); |
7b5261bc | 192 | public static final TKeypress kbF6 = new TKeypress(true, |
7c870d89 | 193 | TKeypress.F6, ' ', false, false, false); |
7b5261bc | 194 | public static final TKeypress kbF7 = new TKeypress(true, |
7c870d89 | 195 | TKeypress.F7, ' ', false, false, false); |
7b5261bc | 196 | public static final TKeypress kbF8 = new TKeypress(true, |
7c870d89 | 197 | TKeypress.F8, ' ', false, false, false); |
7b5261bc | 198 | public static final TKeypress kbF9 = new TKeypress(true, |
7c870d89 | 199 | TKeypress.F9, ' ', false, false, false); |
7b5261bc | 200 | public static final TKeypress kbF10 = new TKeypress(true, |
7c870d89 | 201 | TKeypress.F10, ' ', false, false, false); |
7b5261bc | 202 | public static final TKeypress kbF11 = new TKeypress(true, |
7c870d89 | 203 | TKeypress.F11, ' ', false, false, false); |
7b5261bc | 204 | public static final TKeypress kbF12 = new TKeypress(true, |
7c870d89 | 205 | TKeypress.F12, ' ', false, false, false); |
7b5261bc | 206 | public static final TKeypress kbAltF1 = new TKeypress(true, |
7c870d89 | 207 | TKeypress.F1, ' ', true, false, false); |
7b5261bc | 208 | public static final TKeypress kbAltF2 = new TKeypress(true, |
7c870d89 | 209 | TKeypress.F2, ' ', true, false, false); |
7b5261bc | 210 | public static final TKeypress kbAltF3 = new TKeypress(true, |
7c870d89 | 211 | TKeypress.F3, ' ', true, false, false); |
7b5261bc | 212 | public static final TKeypress kbAltF4 = new TKeypress(true, |
7c870d89 | 213 | TKeypress.F4, ' ', true, false, false); |
7b5261bc | 214 | public static final TKeypress kbAltF5 = new TKeypress(true, |
7c870d89 | 215 | TKeypress.F5, ' ', true, false, false); |
7b5261bc | 216 | public static final TKeypress kbAltF6 = new TKeypress(true, |
7c870d89 | 217 | TKeypress.F6, ' ', true, false, false); |
7b5261bc | 218 | public static final TKeypress kbAltF7 = new TKeypress(true, |
7c870d89 | 219 | TKeypress.F7, ' ', true, false, false); |
7b5261bc | 220 | public static final TKeypress kbAltF8 = new TKeypress(true, |
7c870d89 | 221 | TKeypress.F8, ' ', true, false, false); |
7b5261bc | 222 | public static final TKeypress kbAltF9 = new TKeypress(true, |
7c870d89 | 223 | TKeypress.F9, ' ', true, false, false); |
7b5261bc | 224 | public static final TKeypress kbAltF10 = new TKeypress(true, |
7c870d89 | 225 | TKeypress.F10, ' ', true, false, false); |
7b5261bc | 226 | public static final TKeypress kbAltF11 = new TKeypress(true, |
7c870d89 | 227 | TKeypress.F11, ' ', true, false, false); |
7b5261bc | 228 | public static final TKeypress kbAltF12 = new TKeypress(true, |
7c870d89 | 229 | TKeypress.F12, ' ', true, false, false); |
7b5261bc | 230 | public static final TKeypress kbCtrlF1 = new TKeypress(true, |
7c870d89 | 231 | TKeypress.F1, ' ', false, true, false); |
7b5261bc | 232 | public static final TKeypress kbCtrlF2 = new TKeypress(true, |
7c870d89 | 233 | TKeypress.F2, ' ', false, true, false); |
7b5261bc | 234 | public static final TKeypress kbCtrlF3 = new TKeypress(true, |
7c870d89 | 235 | TKeypress.F3, ' ', false, true, false); |
7b5261bc | 236 | public static final TKeypress kbCtrlF4 = new TKeypress(true, |
7c870d89 | 237 | TKeypress.F4, ' ', false, true, false); |
7b5261bc | 238 | public static final TKeypress kbCtrlF5 = new TKeypress(true, |
7c870d89 | 239 | TKeypress.F5, ' ', false, true, false); |
7b5261bc | 240 | public static final TKeypress kbCtrlF6 = new TKeypress(true, |
7c870d89 | 241 | TKeypress.F6, ' ', false, true, false); |
7b5261bc | 242 | public static final TKeypress kbCtrlF7 = new TKeypress(true, |
7c870d89 | 243 | TKeypress.F7, ' ', false, true, false); |
7b5261bc | 244 | public static final TKeypress kbCtrlF8 = new TKeypress(true, |
7c870d89 | 245 | TKeypress.F8, ' ', false, true, false); |
7b5261bc | 246 | public static final TKeypress kbCtrlF9 = new TKeypress(true, |
7c870d89 | 247 | TKeypress.F9, ' ', false, true, false); |
7b5261bc | 248 | public static final TKeypress kbCtrlF10 = new TKeypress(true, |
7c870d89 | 249 | TKeypress.F10, ' ', false, true, false); |
7b5261bc | 250 | public static final TKeypress kbCtrlF11 = new TKeypress(true, |
7c870d89 | 251 | TKeypress.F11, ' ', false, true, false); |
7b5261bc | 252 | public static final TKeypress kbCtrlF12 = new TKeypress(true, |
7c870d89 | 253 | TKeypress.F12, ' ', false, true, false); |
7b5261bc | 254 | public static final TKeypress kbShiftF1 = new TKeypress(true, |
7c870d89 | 255 | TKeypress.F1, ' ', false, false, true); |
7b5261bc | 256 | public static final TKeypress kbShiftF2 = new TKeypress(true, |
7c870d89 | 257 | TKeypress.F2, ' ', false, false, true); |
7b5261bc | 258 | public static final TKeypress kbShiftF3 = new TKeypress(true, |
7c870d89 | 259 | TKeypress.F3, ' ', false, false, true); |
7b5261bc | 260 | public static final TKeypress kbShiftF4 = new TKeypress(true, |
7c870d89 | 261 | TKeypress.F4, ' ', false, false, true); |
7b5261bc | 262 | public static final TKeypress kbShiftF5 = new TKeypress(true, |
7c870d89 | 263 | TKeypress.F5, ' ', false, false, true); |
7b5261bc | 264 | public static final TKeypress kbShiftF6 = new TKeypress(true, |
7c870d89 | 265 | TKeypress.F6, ' ', false, false, true); |
7b5261bc | 266 | public static final TKeypress kbShiftF7 = new TKeypress(true, |
7c870d89 | 267 | TKeypress.F7, ' ', false, false, true); |
7b5261bc | 268 | public static final TKeypress kbShiftF8 = new TKeypress(true, |
7c870d89 | 269 | TKeypress.F8, ' ', false, false, true); |
7b5261bc | 270 | public static final TKeypress kbShiftF9 = new TKeypress(true, |
7c870d89 | 271 | TKeypress.F9, ' ', false, false, true); |
7b5261bc | 272 | public static final TKeypress kbShiftF10 = new TKeypress(true, |
7c870d89 | 273 | TKeypress.F10, ' ', false, false, true); |
7b5261bc | 274 | public static final TKeypress kbShiftF11 = new TKeypress(true, |
7c870d89 | 275 | TKeypress.F11, ' ', false, false, true); |
7b5261bc | 276 | public static final TKeypress kbShiftF12 = new TKeypress(true, |
7c870d89 | 277 | TKeypress.F12, ' ', false, false, true); |
7b5261bc | 278 | public static final TKeypress kbEnter = new TKeypress(true, |
7c870d89 | 279 | TKeypress.ENTER, ' ', false, false, false); |
7b5261bc | 280 | public static final TKeypress kbTab = new TKeypress(true, |
7c870d89 | 281 | TKeypress.TAB, ' ', false, false, false); |
7b5261bc | 282 | public static final TKeypress kbEsc = new TKeypress(true, |
7c870d89 | 283 | TKeypress.ESC, ' ', false, false, false); |
7b5261bc | 284 | public static final TKeypress kbHome = new TKeypress(true, |
7c870d89 | 285 | TKeypress.HOME, ' ', false, false, false); |
7b5261bc | 286 | public static final TKeypress kbEnd = new TKeypress(true, |
7c870d89 | 287 | TKeypress.END, ' ', false, false, false); |
7b5261bc | 288 | public static final TKeypress kbPgUp = new TKeypress(true, |
7c870d89 | 289 | TKeypress.PGUP, ' ', false, false, false); |
7b5261bc | 290 | public static final TKeypress kbPgDn = new TKeypress(true, |
7c870d89 | 291 | TKeypress.PGDN, ' ', false, false, false); |
7b5261bc | 292 | public static final TKeypress kbIns = new TKeypress(true, |
7c870d89 | 293 | TKeypress.INS, ' ', false, false, false); |
7b5261bc | 294 | public static final TKeypress kbDel = new TKeypress(true, |
7c870d89 | 295 | TKeypress.DEL, ' ', false, false, false); |
7b5261bc | 296 | public static final TKeypress kbUp = new TKeypress(true, |
7c870d89 | 297 | TKeypress.UP, ' ', false, false, false); |
7b5261bc | 298 | public static final TKeypress kbDown = new TKeypress(true, |
7c870d89 | 299 | TKeypress.DOWN, ' ', false, false, false); |
7b5261bc | 300 | public static final TKeypress kbLeft = new TKeypress(true, |
7c870d89 | 301 | TKeypress.LEFT, ' ', false, false, false); |
7b5261bc | 302 | public static final TKeypress kbRight = new TKeypress(true, |
7c870d89 | 303 | TKeypress.RIGHT, ' ', false, false, false); |
7b5261bc | 304 | public static final TKeypress kbAltEnter = new TKeypress(true, |
7c870d89 | 305 | TKeypress.ENTER, ' ', true, false, false); |
7b5261bc | 306 | public static final TKeypress kbAltTab = new TKeypress(true, |
7c870d89 | 307 | TKeypress.TAB, ' ', true, false, false); |
7b5261bc | 308 | public static final TKeypress kbAltEsc = new TKeypress(true, |
7c870d89 | 309 | TKeypress.ESC, ' ', true, false, false); |
7b5261bc | 310 | public static final TKeypress kbAltHome = new TKeypress(true, |
7c870d89 | 311 | TKeypress.HOME, ' ', true, false, false); |
7b5261bc | 312 | public static final TKeypress kbAltEnd = new TKeypress(true, |
7c870d89 | 313 | TKeypress.END, ' ', true, false, false); |
7b5261bc | 314 | public static final TKeypress kbAltPgUp = new TKeypress(true, |
7c870d89 | 315 | TKeypress.PGUP, ' ', true, false, false); |
7b5261bc | 316 | public static final TKeypress kbAltPgDn = new TKeypress(true, |
7c870d89 | 317 | TKeypress.PGDN, ' ', true, false, false); |
7b5261bc | 318 | public static final TKeypress kbAltIns = new TKeypress(true, |
7c870d89 | 319 | TKeypress.INS, ' ', true, false, false); |
7b5261bc | 320 | public static final TKeypress kbAltDel = new TKeypress(true, |
7c870d89 | 321 | TKeypress.DEL, ' ', true, false, false); |
7b5261bc | 322 | public static final TKeypress kbAltUp = new TKeypress(true, |
7c870d89 | 323 | TKeypress.UP, ' ', true, false, false); |
7b5261bc | 324 | public static final TKeypress kbAltDown = new TKeypress(true, |
7c870d89 | 325 | TKeypress.DOWN, ' ', true, false, false); |
7b5261bc | 326 | public static final TKeypress kbAltLeft = new TKeypress(true, |
7c870d89 | 327 | TKeypress.LEFT, ' ', true, false, false); |
7b5261bc | 328 | public static final TKeypress kbAltRight = new TKeypress(true, |
7c870d89 | 329 | TKeypress.RIGHT, ' ', true, false, false); |
7b5261bc | 330 | public static final TKeypress kbCtrlEnter = new TKeypress(true, |
7c870d89 | 331 | TKeypress.ENTER, ' ', false, true, false); |
7b5261bc | 332 | public static final TKeypress kbCtrlTab = new TKeypress(true, |
7c870d89 | 333 | TKeypress.TAB, ' ', false, true, false); |
7b5261bc | 334 | public static final TKeypress kbCtrlEsc = new TKeypress(true, |
7c870d89 | 335 | TKeypress.ESC, ' ', false, true, false); |
7b5261bc | 336 | public static final TKeypress kbCtrlHome = new TKeypress(true, |
7c870d89 | 337 | TKeypress.HOME, ' ', false, true, false); |
7b5261bc | 338 | public static final TKeypress kbCtrlEnd = new TKeypress(true, |
7c870d89 | 339 | TKeypress.END, ' ', false, true, false); |
7b5261bc | 340 | public static final TKeypress kbCtrlPgUp = new TKeypress(true, |
7c870d89 | 341 | TKeypress.PGUP, ' ', false, true, false); |
7b5261bc | 342 | public static final TKeypress kbCtrlPgDn = new TKeypress(true, |
7c870d89 | 343 | TKeypress.PGDN, ' ', false, true, false); |
7b5261bc | 344 | public static final TKeypress kbCtrlIns = new TKeypress(true, |
7c870d89 | 345 | TKeypress.INS, ' ', false, true, false); |
7b5261bc | 346 | public static final TKeypress kbCtrlDel = new TKeypress(true, |
7c870d89 | 347 | TKeypress.DEL, ' ', false, true, false); |
7b5261bc | 348 | public static final TKeypress kbCtrlUp = new TKeypress(true, |
7c870d89 | 349 | TKeypress.UP, ' ', false, true, false); |
7b5261bc | 350 | public static final TKeypress kbCtrlDown = new TKeypress(true, |
7c870d89 | 351 | TKeypress.DOWN, ' ', false, true, false); |
7b5261bc | 352 | public static final TKeypress kbCtrlLeft = new TKeypress(true, |
7c870d89 | 353 | TKeypress.LEFT, ' ', false, true, false); |
7b5261bc | 354 | public static final TKeypress kbCtrlRight = new TKeypress(true, |
7c870d89 | 355 | TKeypress.RIGHT, ' ', false, true, false); |
7b5261bc | 356 | public static final TKeypress kbShiftEnter = new TKeypress(true, |
7c870d89 | 357 | TKeypress.ENTER, ' ', false, false, true); |
7b5261bc | 358 | public static final TKeypress kbShiftTab = new TKeypress(true, |
7c870d89 | 359 | TKeypress.TAB, ' ', false, false, true); |
7b5261bc | 360 | public static final TKeypress kbBackTab = new TKeypress(true, |
7c870d89 | 361 | TKeypress.BTAB, ' ', false, false, false); |
7b5261bc | 362 | public static final TKeypress kbShiftEsc = new TKeypress(true, |
7c870d89 | 363 | TKeypress.ESC, ' ', false, false, true); |
7b5261bc | 364 | public static final TKeypress kbShiftHome = new TKeypress(true, |
7c870d89 | 365 | TKeypress.HOME, ' ', false, false, true); |
7b5261bc | 366 | public static final TKeypress kbShiftEnd = new TKeypress(true, |
7c870d89 | 367 | TKeypress.END, ' ', false, false, true); |
7b5261bc | 368 | public static final TKeypress kbShiftPgUp = new TKeypress(true, |
7c870d89 | 369 | TKeypress.PGUP, ' ', false, false, true); |
7b5261bc | 370 | public static final TKeypress kbShiftPgDn = new TKeypress(true, |
7c870d89 | 371 | TKeypress.PGDN, ' ', false, false, true); |
7b5261bc | 372 | public static final TKeypress kbShiftIns = new TKeypress(true, |
7c870d89 | 373 | TKeypress.INS, ' ', false, false, true); |
7b5261bc | 374 | public static final TKeypress kbShiftDel = new TKeypress(true, |
7c870d89 | 375 | TKeypress.DEL, ' ', false, false, true); |
7b5261bc | 376 | public static final TKeypress kbShiftUp = new TKeypress(true, |
7c870d89 | 377 | TKeypress.UP, ' ', false, false, true); |
7b5261bc | 378 | public static final TKeypress kbShiftDown = new TKeypress(true, |
7c870d89 | 379 | TKeypress.DOWN, ' ', false, false, true); |
7b5261bc | 380 | public static final TKeypress kbShiftLeft = new TKeypress(true, |
7c870d89 | 381 | TKeypress.LEFT, ' ', false, false, true); |
7b5261bc | 382 | public static final TKeypress kbShiftRight = new TKeypress(true, |
7c870d89 | 383 | TKeypress.RIGHT, ' ', false, false, true); |
7b5261bc | 384 | public static final TKeypress kbA = new TKeypress(false, |
7c870d89 | 385 | 0, 'a', false, false, false); |
7b5261bc | 386 | public static final TKeypress kbB = new TKeypress(false, |
7c870d89 | 387 | 0, 'b', false, false, false); |
7b5261bc | 388 | public static final TKeypress kbC = new TKeypress(false, |
7c870d89 | 389 | 0, 'c', false, false, false); |
7b5261bc | 390 | public static final TKeypress kbD = new TKeypress(false, |
7c870d89 | 391 | 0, 'd', false, false, false); |
7b5261bc | 392 | public static final TKeypress kbE = new TKeypress(false, |
7c870d89 | 393 | 0, 'e', false, false, false); |
7b5261bc | 394 | public static final TKeypress kbF = new TKeypress(false, |
7c870d89 | 395 | 0, 'f', false, false, false); |
7b5261bc | 396 | public static final TKeypress kbG = new TKeypress(false, |
7c870d89 | 397 | 0, 'g', false, false, false); |
7b5261bc | 398 | public static final TKeypress kbH = new TKeypress(false, |
7c870d89 | 399 | 0, 'h', false, false, false); |
7b5261bc | 400 | public static final TKeypress kbI = new TKeypress(false, |
7c870d89 | 401 | 0, 'i', false, false, false); |
7b5261bc | 402 | public static final TKeypress kbJ = new TKeypress(false, |
7c870d89 | 403 | 0, 'j', false, false, false); |
7b5261bc | 404 | public static final TKeypress kbK = new TKeypress(false, |
7c870d89 | 405 | 0, 'k', false, false, false); |
7b5261bc | 406 | public static final TKeypress kbL = new TKeypress(false, |
7c870d89 | 407 | 0, 'l', false, false, false); |
7b5261bc | 408 | public static final TKeypress kbM = new TKeypress(false, |
7c870d89 | 409 | 0, 'm', false, false, false); |
7b5261bc | 410 | public static final TKeypress kbN = new TKeypress(false, |
7c870d89 | 411 | 0, 'n', false, false, false); |
7b5261bc | 412 | public static final TKeypress kbO = new TKeypress(false, |
7c870d89 | 413 | 0, 'o', false, false, false); |
7b5261bc | 414 | public static final TKeypress kbP = new TKeypress(false, |
7c870d89 | 415 | 0, 'p', false, false, false); |
7b5261bc | 416 | public static final TKeypress kbQ = new TKeypress(false, |
7c870d89 | 417 | 0, 'q', false, false, false); |
7b5261bc | 418 | public static final TKeypress kbR = new TKeypress(false, |
7c870d89 | 419 | 0, 'r', false, false, false); |
7b5261bc | 420 | public static final TKeypress kbS = new TKeypress(false, |
7c870d89 | 421 | 0, 's', false, false, false); |
7b5261bc | 422 | public static final TKeypress kbT = new TKeypress(false, |
7c870d89 | 423 | 0, 't', false, false, false); |
7b5261bc | 424 | public static final TKeypress kbU = new TKeypress(false, |
7c870d89 | 425 | 0, 'u', false, false, false); |
7b5261bc | 426 | public static final TKeypress kbV = new TKeypress(false, |
7c870d89 | 427 | 0, 'v', false, false, false); |
7b5261bc | 428 | public static final TKeypress kbW = new TKeypress(false, |
7c870d89 | 429 | 0, 'w', false, false, false); |
7b5261bc | 430 | public static final TKeypress kbX = new TKeypress(false, |
7c870d89 | 431 | 0, 'x', false, false, false); |
7b5261bc | 432 | public static final TKeypress kbY = new TKeypress(false, |
7c870d89 | 433 | 0, 'y', false, false, false); |
7b5261bc | 434 | public static final TKeypress kbZ = new TKeypress(false, |
7c870d89 | 435 | 0, 'z', false, false, false); |
7b5261bc | 436 | public static final TKeypress kbSpace = new TKeypress(false, |
7c870d89 | 437 | 0, ' ', false, false, false); |
7b5261bc | 438 | public static final TKeypress kbAltA = new TKeypress(false, |
7c870d89 | 439 | 0, 'a', true, false, false); |
7b5261bc | 440 | public static final TKeypress kbAltB = new TKeypress(false, |
7c870d89 | 441 | 0, 'b', true, false, false); |
7b5261bc | 442 | public static final TKeypress kbAltC = new TKeypress(false, |
7c870d89 | 443 | 0, 'c', true, false, false); |
7b5261bc | 444 | public static final TKeypress kbAltD = new TKeypress(false, |
7c870d89 | 445 | 0, 'd', true, false, false); |
7b5261bc | 446 | public static final TKeypress kbAltE = new TKeypress(false, |
7c870d89 | 447 | 0, 'e', true, false, false); |
7b5261bc | 448 | public static final TKeypress kbAltF = new TKeypress(false, |
7c870d89 | 449 | 0, 'f', true, false, false); |
7b5261bc | 450 | public static final TKeypress kbAltG = new TKeypress(false, |
7c870d89 | 451 | 0, 'g', true, false, false); |
7b5261bc | 452 | public static final TKeypress kbAltH = new TKeypress(false, |
7c870d89 | 453 | 0, 'h', true, false, false); |
7b5261bc | 454 | public static final TKeypress kbAltI = new TKeypress(false, |
7c870d89 | 455 | 0, 'i', true, false, false); |
7b5261bc | 456 | public static final TKeypress kbAltJ = new TKeypress(false, |
7c870d89 | 457 | 0, 'j', true, false, false); |
7b5261bc | 458 | public static final TKeypress kbAltK = new TKeypress(false, |
7c870d89 | 459 | 0, 'k', true, false, false); |
7b5261bc | 460 | public static final TKeypress kbAltL = new TKeypress(false, |
7c870d89 | 461 | 0, 'l', true, false, false); |
7b5261bc | 462 | public static final TKeypress kbAltM = new TKeypress(false, |
7c870d89 | 463 | 0, 'm', true, false, false); |
7b5261bc | 464 | public static final TKeypress kbAltN = new TKeypress(false, |
7c870d89 | 465 | 0, 'n', true, false, false); |
7b5261bc | 466 | public static final TKeypress kbAltO = new TKeypress(false, |
7c870d89 | 467 | 0, 'o', true, false, false); |
7b5261bc | 468 | public static final TKeypress kbAltP = new TKeypress(false, |
7c870d89 | 469 | 0, 'p', true, false, false); |
7b5261bc | 470 | public static final TKeypress kbAltQ = new TKeypress(false, |
7c870d89 | 471 | 0, 'q', true, false, false); |
7b5261bc | 472 | public static final TKeypress kbAltR = new TKeypress(false, |
7c870d89 | 473 | 0, 'r', true, false, false); |
7b5261bc | 474 | public static final TKeypress kbAltS = new TKeypress(false, |
7c870d89 | 475 | 0, 's', true, false, false); |
7b5261bc | 476 | public static final TKeypress kbAltT = new TKeypress(false, |
7c870d89 | 477 | 0, 't', true, false, false); |
7b5261bc | 478 | public static final TKeypress kbAltU = new TKeypress(false, |
7c870d89 | 479 | 0, 'u', true, false, false); |
7b5261bc | 480 | public static final TKeypress kbAltV = new TKeypress(false, |
7c870d89 | 481 | 0, 'v', true, false, false); |
7b5261bc | 482 | public static final TKeypress kbAltW = new TKeypress(false, |
7c870d89 | 483 | 0, 'w', true, false, false); |
7b5261bc | 484 | public static final TKeypress kbAltX = new TKeypress(false, |
7c870d89 | 485 | 0, 'x', true, false, false); |
7b5261bc | 486 | public static final TKeypress kbAltY = new TKeypress(false, |
7c870d89 | 487 | 0, 'y', true, false, false); |
7b5261bc | 488 | public static final TKeypress kbAltZ = new TKeypress(false, |
7c870d89 | 489 | 0, 'z', true, false, false); |
9696a8f6 KL |
490 | public static final TKeypress kbAlt0 = new TKeypress(false, |
491 | 0, '0', true, false, false); | |
492 | public static final TKeypress kbAlt1 = new TKeypress(false, | |
493 | 0, '1', true, false, false); | |
494 | public static final TKeypress kbAlt2 = new TKeypress(false, | |
495 | 0, '2', true, false, false); | |
496 | public static final TKeypress kbAlt3 = new TKeypress(false, | |
497 | 0, '3', true, false, false); | |
498 | public static final TKeypress kbAlt4 = new TKeypress(false, | |
499 | 0, '4', true, false, false); | |
500 | public static final TKeypress kbAlt5 = new TKeypress(false, | |
501 | 0, '5', true, false, false); | |
502 | public static final TKeypress kbAlt6 = new TKeypress(false, | |
503 | 0, '6', true, false, false); | |
504 | public static final TKeypress kbAlt7 = new TKeypress(false, | |
505 | 0, '7', true, false, false); | |
506 | public static final TKeypress kbAlt8 = new TKeypress(false, | |
507 | 0, '8', true, false, false); | |
508 | public static final TKeypress kbAlt9 = new TKeypress(false, | |
509 | 0, '9', true, false, false); | |
7b5261bc | 510 | public static final TKeypress kbCtrlA = new TKeypress(false, |
7c870d89 | 511 | 0, 'A', false, true, false); |
7b5261bc | 512 | public static final TKeypress kbCtrlB = new TKeypress(false, |
7c870d89 | 513 | 0, 'B', false, true, false); |
7b5261bc | 514 | public static final TKeypress kbCtrlC = new TKeypress(false, |
7c870d89 | 515 | 0, 'C', false, true, false); |
7b5261bc | 516 | public static final TKeypress kbCtrlD = new TKeypress(false, |
7c870d89 | 517 | 0, 'D', false, true, false); |
7b5261bc | 518 | public static final TKeypress kbCtrlE = new TKeypress(false, |
7c870d89 | 519 | 0, 'E', false, true, false); |
7b5261bc | 520 | public static final TKeypress kbCtrlF = new TKeypress(false, |
7c870d89 | 521 | 0, 'F', false, true, false); |
7b5261bc | 522 | public static final TKeypress kbCtrlG = new TKeypress(false, |
7c870d89 | 523 | 0, 'G', false, true, false); |
7b5261bc | 524 | public static final TKeypress kbCtrlH = new TKeypress(false, |
7c870d89 | 525 | 0, 'H', false, true, false); |
7b5261bc | 526 | public static final TKeypress kbCtrlI = new TKeypress(false, |
7c870d89 | 527 | 0, 'I', false, true, false); |
7b5261bc | 528 | public static final TKeypress kbCtrlJ = new TKeypress(false, |
7c870d89 | 529 | 0, 'J', false, true, false); |
7b5261bc | 530 | public static final TKeypress kbCtrlK = new TKeypress(false, |
7c870d89 | 531 | 0, 'K', false, true, false); |
7b5261bc | 532 | public static final TKeypress kbCtrlL = new TKeypress(false, |
7c870d89 | 533 | 0, 'L', false, true, false); |
7b5261bc | 534 | public static final TKeypress kbCtrlM = new TKeypress(false, |
7c870d89 | 535 | 0, 'M', false, true, false); |
7b5261bc | 536 | public static final TKeypress kbCtrlN = new TKeypress(false, |
7c870d89 | 537 | 0, 'N', false, true, false); |
7b5261bc | 538 | public static final TKeypress kbCtrlO = new TKeypress(false, |
7c870d89 | 539 | 0, 'O', false, true, false); |
7b5261bc | 540 | public static final TKeypress kbCtrlP = new TKeypress(false, |
7c870d89 | 541 | 0, 'P', false, true, false); |
7b5261bc | 542 | public static final TKeypress kbCtrlQ = new TKeypress(false, |
7c870d89 | 543 | 0, 'Q', false, true, false); |
7b5261bc | 544 | public static final TKeypress kbCtrlR = new TKeypress(false, |
7c870d89 | 545 | 0, 'R', false, true, false); |
7b5261bc | 546 | public static final TKeypress kbCtrlS = new TKeypress(false, |
7c870d89 | 547 | 0, 'S', false, true, false); |
7b5261bc | 548 | public static final TKeypress kbCtrlT = new TKeypress(false, |
7c870d89 | 549 | 0, 'T', false, true, false); |
7b5261bc | 550 | public static final TKeypress kbCtrlU = new TKeypress(false, |
7c870d89 | 551 | 0, 'U', false, true, false); |
7b5261bc | 552 | public static final TKeypress kbCtrlV = new TKeypress(false, |
7c870d89 | 553 | 0, 'V', false, true, false); |
7b5261bc | 554 | public static final TKeypress kbCtrlW = new TKeypress(false, |
7c870d89 | 555 | 0, 'W', false, true, false); |
7b5261bc | 556 | public static final TKeypress kbCtrlX = new TKeypress(false, |
7c870d89 | 557 | 0, 'X', false, true, false); |
7b5261bc | 558 | public static final TKeypress kbCtrlY = new TKeypress(false, |
7c870d89 | 559 | 0, 'Y', false, true, false); |
7b5261bc | 560 | public static final TKeypress kbCtrlZ = new TKeypress(false, |
7c870d89 | 561 | 0, 'Z', false, true, false); |
7b5261bc | 562 | public static final TKeypress kbAltShiftA = new TKeypress(false, |
7c870d89 | 563 | 0, 'A', true, false, true); |
7b5261bc | 564 | public static final TKeypress kbAltShiftB = new TKeypress(false, |
7c870d89 | 565 | 0, 'B', true, false, true); |
7b5261bc | 566 | public static final TKeypress kbAltShiftC = new TKeypress(false, |
7c870d89 | 567 | 0, 'C', true, false, true); |
7b5261bc | 568 | public static final TKeypress kbAltShiftD = new TKeypress(false, |
7c870d89 | 569 | 0, 'D', true, false, true); |
7b5261bc | 570 | public static final TKeypress kbAltShiftE = new TKeypress(false, |
7c870d89 | 571 | 0, 'E', true, false, true); |
7b5261bc | 572 | public static final TKeypress kbAltShiftF = new TKeypress(false, |
7c870d89 | 573 | 0, 'F', true, false, true); |
7b5261bc | 574 | public static final TKeypress kbAltShiftG = new TKeypress(false, |
7c870d89 | 575 | 0, 'G', true, false, true); |
7b5261bc | 576 | public static final TKeypress kbAltShiftH = new TKeypress(false, |
7c870d89 | 577 | 0, 'H', true, false, true); |
7b5261bc | 578 | public static final TKeypress kbAltShiftI = new TKeypress(false, |
7c870d89 | 579 | 0, 'I', true, false, true); |
7b5261bc | 580 | public static final TKeypress kbAltShiftJ = new TKeypress(false, |
7c870d89 | 581 | 0, 'J', true, false, true); |
7b5261bc | 582 | public static final TKeypress kbAltShiftK = new TKeypress(false, |
7c870d89 | 583 | 0, 'K', true, false, true); |
7b5261bc | 584 | public static final TKeypress kbAltShiftL = new TKeypress(false, |
7c870d89 | 585 | 0, 'L', true, false, true); |
7b5261bc | 586 | public static final TKeypress kbAltShiftM = new TKeypress(false, |
7c870d89 | 587 | 0, 'M', true, false, true); |
7b5261bc | 588 | public static final TKeypress kbAltShiftN = new TKeypress(false, |
7c870d89 | 589 | 0, 'N', true, false, true); |
7b5261bc | 590 | public static final TKeypress kbAltShiftO = new TKeypress(false, |
7c870d89 | 591 | 0, 'O', true, false, true); |
7b5261bc | 592 | public static final TKeypress kbAltShiftP = new TKeypress(false, |
7c870d89 | 593 | 0, 'P', true, false, true); |
7b5261bc | 594 | public static final TKeypress kbAltShiftQ = new TKeypress(false, |
7c870d89 | 595 | 0, 'Q', true, false, true); |
7b5261bc | 596 | public static final TKeypress kbAltShiftR = new TKeypress(false, |
7c870d89 | 597 | 0, 'R', true, false, true); |
7b5261bc | 598 | public static final TKeypress kbAltShiftS = new TKeypress(false, |
7c870d89 | 599 | 0, 'S', true, false, true); |
7b5261bc | 600 | public static final TKeypress kbAltShiftT = new TKeypress(false, |
7c870d89 | 601 | 0, 'T', true, false, true); |
7b5261bc | 602 | public static final TKeypress kbAltShiftU = new TKeypress(false, |
7c870d89 | 603 | 0, 'U', true, false, true); |
7b5261bc | 604 | public static final TKeypress kbAltShiftV = new TKeypress(false, |
7c870d89 | 605 | 0, 'V', true, false, true); |
7b5261bc | 606 | public static final TKeypress kbAltShiftW = new TKeypress(false, |
7c870d89 | 607 | 0, 'W', true, false, true); |
7b5261bc | 608 | public static final TKeypress kbAltShiftX = new TKeypress(false, |
7c870d89 | 609 | 0, 'X', true, false, true); |
7b5261bc | 610 | public static final TKeypress kbAltShiftY = new TKeypress(false, |
7c870d89 | 611 | 0, 'Y', true, false, true); |
7b5261bc | 612 | public static final TKeypress kbAltShiftZ = new TKeypress(false, |
7c870d89 | 613 | 0, 'Z', true, false, true); |
7b5261bc | 614 | |
43ee96da KL |
615 | public static final TKeypress kbAltShiftHome = new TKeypress(true, |
616 | TKeypress.HOME, ' ', true, false, true); | |
617 | public static final TKeypress kbAltShiftEnd = new TKeypress(true, | |
618 | TKeypress.END, ' ', true, false, true); | |
619 | public static final TKeypress kbAltShiftPgUp = new TKeypress(true, | |
620 | TKeypress.PGUP, ' ', true, false, true); | |
621 | public static final TKeypress kbAltShiftPgDn = new TKeypress(true, | |
622 | TKeypress.PGDN, ' ', true, false, true); | |
623 | public static final TKeypress kbAltShiftUp = new TKeypress(true, | |
624 | TKeypress.UP, ' ', true, false, true); | |
625 | public static final TKeypress kbAltShiftDown = new TKeypress(true, | |
626 | TKeypress.DOWN, ' ', true, false, true); | |
627 | public static final TKeypress kbAltShiftLeft = new TKeypress(true, | |
628 | TKeypress.LEFT, ' ', true, false, true); | |
629 | public static final TKeypress kbAltShiftRight = new TKeypress(true, | |
630 | TKeypress.RIGHT, ' ', true, false, true); | |
631 | ||
632 | public static final TKeypress kbCtrlShiftHome = new TKeypress(true, | |
633 | TKeypress.HOME, ' ', false, true, true); | |
634 | public static final TKeypress kbCtrlShiftEnd = new TKeypress(true, | |
635 | TKeypress.END, ' ', false, true, true); | |
636 | public static final TKeypress kbCtrlShiftPgUp = new TKeypress(true, | |
637 | TKeypress.PGUP, ' ', false, true, true); | |
638 | public static final TKeypress kbCtrlShiftPgDn = new TKeypress(true, | |
639 | TKeypress.PGDN, ' ', false, true, true); | |
640 | public static final TKeypress kbCtrlShiftUp = new TKeypress(true, | |
641 | TKeypress.UP, ' ', false, true, true); | |
642 | public static final TKeypress kbCtrlShiftDown = new TKeypress(true, | |
643 | TKeypress.DOWN, ' ', false, true, true); | |
644 | public static final TKeypress kbCtrlShiftLeft = new TKeypress(true, | |
645 | TKeypress.LEFT, ' ', false, true, true); | |
646 | public static final TKeypress kbCtrlShiftRight = new TKeypress(true, | |
647 | TKeypress.RIGHT, ' ', false, true, true); | |
648 | ||
649 | ||
7b5261bc KL |
650 | /** |
651 | * Backspace as ^H. | |
652 | */ | |
653 | public static final TKeypress kbBackspace = new TKeypress(false, | |
7c870d89 | 654 | 0, 'H', false, true, false); |
7b5261bc KL |
655 | |
656 | /** | |
657 | * Backspace as ^?. | |
658 | */ | |
659 | public static final TKeypress kbBackspaceDel = new TKeypress(false, | |
afdec5e9 | 660 | 0, (char) 0x7F, false, false, false); |
df8de03f | 661 | |
d36057df KL |
662 | // ------------------------------------------------------------------------ |
663 | // Variables -------------------------------------------------------------- | |
664 | // ------------------------------------------------------------------------ | |
665 | ||
666 | /** | |
667 | * If true, ch is meaningless, use keyCode instead. | |
668 | */ | |
669 | private boolean isFunctionKey; | |
670 | ||
671 | /** | |
672 | * Will be set to F1, F2, HOME, END, etc. if isKey is true. | |
673 | */ | |
674 | private int keyCode; | |
675 | ||
676 | /** | |
677 | * Keystroke modifier ALT. | |
678 | */ | |
679 | private boolean alt; | |
680 | ||
681 | /** | |
682 | * Keystroke modifier CTRL. | |
683 | */ | |
684 | private boolean ctrl; | |
685 | ||
686 | /** | |
687 | * Keystroke modifier SHIFT. | |
688 | */ | |
689 | private boolean shift; | |
690 | ||
691 | /** | |
692 | * The character received. | |
693 | */ | |
afdec5e9 | 694 | private int ch; |
d36057df KL |
695 | |
696 | // ------------------------------------------------------------------------ | |
697 | // Constructors ----------------------------------------------------------- | |
698 | // ------------------------------------------------------------------------ | |
699 | ||
700 | /** | |
701 | * Public constructor makes an immutable instance. | |
702 | * | |
703 | * @param isKey is true, this is a function key | |
704 | * @param fnKey the function key code (only valid if isKey is true) | |
705 | * @param ch the character (only valid if fnKey is false) | |
706 | * @param alt if true, ALT was pressed with this keystroke | |
707 | * @param ctrl if true, CTRL was pressed with this keystroke | |
708 | * @param shift if true, SHIFT was pressed with this keystroke | |
709 | */ | |
afdec5e9 | 710 | public TKeypress(final boolean isKey, final int fnKey, final int ch, |
d36057df KL |
711 | final boolean alt, final boolean ctrl, final boolean shift) { |
712 | ||
713 | this.isFunctionKey = isKey; | |
714 | this.keyCode = fnKey; | |
715 | this.ch = ch; | |
716 | this.alt = alt; | |
717 | this.ctrl = ctrl; | |
718 | this.shift = shift; | |
719 | } | |
720 | ||
721 | // ------------------------------------------------------------------------ | |
722 | // TKeypress -------------------------------------------------------------- | |
723 | // ------------------------------------------------------------------------ | |
724 | ||
725 | /** | |
726 | * Getter for isFunctionKey. | |
727 | * | |
728 | * @return if true, ch is meaningless, use keyCode instead | |
729 | */ | |
730 | public boolean isFnKey() { | |
731 | return isFunctionKey; | |
732 | } | |
733 | ||
734 | /** | |
735 | * Getter for function key code. | |
736 | * | |
737 | * @return function key code int value (only valid is isKey is true) | |
738 | */ | |
739 | public int getKeyCode() { | |
740 | return keyCode; | |
741 | } | |
742 | ||
743 | /** | |
744 | * Getter for ALT. | |
745 | * | |
746 | * @return alt value | |
747 | */ | |
748 | public boolean isAlt() { | |
749 | return alt; | |
750 | } | |
751 | ||
752 | /** | |
753 | * Getter for CTRL. | |
754 | * | |
755 | * @return ctrl value | |
756 | */ | |
757 | public boolean isCtrl() { | |
758 | return ctrl; | |
759 | } | |
760 | ||
761 | /** | |
762 | * Getter for SHIFT. | |
763 | * | |
764 | * @return shift value | |
765 | */ | |
766 | public boolean isShift() { | |
767 | return shift; | |
768 | } | |
769 | ||
770 | /** | |
771 | * Getter for character. | |
772 | * | |
773 | * @return the character (only valid if isKey is false) | |
774 | */ | |
afdec5e9 | 775 | public int getChar() { |
d36057df KL |
776 | return ch; |
777 | } | |
778 | ||
779 | /** | |
780 | * Create a duplicate instance. | |
781 | * | |
782 | * @return duplicate intance | |
783 | */ | |
784 | public TKeypress dup() { | |
785 | TKeypress keypress = new TKeypress(isFunctionKey, keyCode, ch, | |
786 | alt, ctrl, shift); | |
787 | return keypress; | |
788 | } | |
789 | ||
790 | /** | |
791 | * Comparison check. All fields must match to return true. | |
792 | * | |
793 | * @param rhs another TKeypress instance | |
794 | * @return true if all fields are equal | |
795 | */ | |
796 | @Override | |
797 | public boolean equals(final Object rhs) { | |
798 | if (!(rhs instanceof TKeypress)) { | |
799 | return false; | |
800 | } | |
801 | ||
802 | TKeypress that = (TKeypress) rhs; | |
803 | return ((isFunctionKey == that.isFunctionKey) | |
804 | && (keyCode == that.keyCode) | |
805 | && (ch == that.ch) | |
806 | && (alt == that.alt) | |
807 | && (ctrl == that.ctrl) | |
808 | && (shift == that.shift)); | |
809 | } | |
810 | ||
811 | /** | |
812 | * Comparison check, omitting the ctrl/alt/shift flags. | |
813 | * | |
814 | * @param rhs another TKeypress instance | |
815 | * @return true if all fields (except for ctrl/alt/shift) are equal | |
816 | */ | |
817 | public boolean equalsWithoutModifiers(final Object rhs) { | |
818 | if (!(rhs instanceof TKeypress)) { | |
819 | return false; | |
820 | } | |
821 | ||
822 | TKeypress that = (TKeypress) rhs; | |
823 | return ((isFunctionKey == that.isFunctionKey) | |
824 | && (keyCode == that.keyCode) | |
825 | && (ch == that.ch)); | |
826 | } | |
827 | ||
828 | /** | |
829 | * Hashcode uses all fields in equals(). | |
830 | * | |
831 | * @return the hash | |
832 | */ | |
833 | @Override | |
834 | public int hashCode() { | |
835 | int A = 13; | |
836 | int B = 23; | |
837 | int hash = A; | |
838 | hash = (B * hash) + (isFunctionKey ? 1 : 0); | |
839 | hash = (B * hash) + keyCode; | |
840 | hash = (B * hash) + ch; | |
841 | hash = (B * hash) + (alt ? 1 : 0); | |
842 | hash = (B * hash) + (ctrl ? 1 : 0); | |
843 | hash = (B * hash) + (shift ? 1 : 0); | |
844 | return hash; | |
845 | } | |
846 | ||
847 | /** | |
848 | * Make human-readable description of this TKeypress. | |
849 | * | |
850 | * @return displayable String | |
851 | */ | |
852 | @Override | |
853 | public String toString() { | |
a69ed767 KL |
854 | // Special case: Enter is "<arrow> <line> <angle>" |
855 | if (equals(kbEnter)) { | |
856 | return "\u25C0\u2500\u2518"; | |
857 | } | |
858 | ||
3c5921e6 KL |
859 | // Special case: Space is "Space" |
860 | if (equals(kbSpace)) { | |
861 | return "Space"; | |
862 | } | |
863 | ||
1dac6b8d KL |
864 | if (equals(kbShiftLeft)) { |
865 | return "Shift+\u2190"; | |
866 | } | |
867 | if (equals(kbShiftRight)) { | |
868 | return "Shift+\u2192"; | |
869 | } | |
870 | ||
d36057df KL |
871 | if (isFunctionKey) { |
872 | switch (keyCode) { | |
873 | case F1: | |
874 | return String.format("%s%s%sF1", | |
875 | ctrl ? "Ctrl+" : "", | |
876 | alt ? "Alt+" : "", | |
877 | shift ? "Shift+" : ""); | |
878 | case F2: | |
879 | return String.format("%s%s%sF2", | |
880 | ctrl ? "Ctrl+" : "", | |
881 | alt ? "Alt+" : "", | |
882 | shift ? "Shift+" : ""); | |
883 | case F3: | |
884 | return String.format("%s%s%sF3", | |
885 | ctrl ? "Ctrl+" : "", | |
886 | alt ? "Alt+" : "", | |
887 | shift ? "Shift+" : ""); | |
888 | case F4: | |
889 | return String.format("%s%s%sF4", | |
890 | ctrl ? "Ctrl+" : "", | |
891 | alt ? "Alt+" : "", | |
892 | shift ? "Shift+" : ""); | |
893 | case F5: | |
894 | return String.format("%s%s%sF5", | |
895 | ctrl ? "Ctrl+" : "", | |
896 | alt ? "Alt+" : "", | |
897 | shift ? "Shift+" : ""); | |
898 | case F6: | |
899 | return String.format("%s%s%sF6", | |
900 | ctrl ? "Ctrl+" : "", | |
901 | alt ? "Alt+" : "", | |
902 | shift ? "Shift+" : ""); | |
903 | case F7: | |
904 | return String.format("%s%s%sF7", | |
905 | ctrl ? "Ctrl+" : "", | |
906 | alt ? "Alt+" : "", | |
907 | shift ? "Shift+" : ""); | |
908 | case F8: | |
909 | return String.format("%s%s%sF8", | |
910 | ctrl ? "Ctrl+" : "", | |
911 | alt ? "Alt+" : "", | |
912 | shift ? "Shift+" : ""); | |
913 | case F9: | |
914 | return String.format("%s%s%sF9", | |
915 | ctrl ? "Ctrl+" : "", | |
916 | alt ? "Alt+" : "", | |
917 | shift ? "Shift+" : ""); | |
918 | case F10: | |
919 | return String.format("%s%s%sF10", | |
920 | ctrl ? "Ctrl+" : "", | |
921 | alt ? "Alt+" : "", | |
922 | shift ? "Shift+" : ""); | |
923 | case F11: | |
924 | return String.format("%s%s%sF11", | |
925 | ctrl ? "Ctrl+" : "", | |
926 | alt ? "Alt+" : "", | |
927 | shift ? "Shift+" : ""); | |
928 | case F12: | |
929 | return String.format("%s%s%sF12", | |
930 | ctrl ? "Ctrl+" : "", | |
931 | alt ? "Alt+" : "", | |
932 | shift ? "Shift+" : ""); | |
933 | case HOME: | |
934 | return String.format("%s%s%sHOME", | |
935 | ctrl ? "Ctrl+" : "", | |
936 | alt ? "Alt+" : "", | |
937 | shift ? "Shift+" : ""); | |
938 | case END: | |
939 | return String.format("%s%s%sEND", | |
940 | ctrl ? "Ctrl+" : "", | |
941 | alt ? "Alt+" : "", | |
942 | shift ? "Shift+" : ""); | |
943 | case PGUP: | |
944 | return String.format("%s%s%sPGUP", | |
945 | ctrl ? "Ctrl+" : "", | |
946 | alt ? "Alt+" : "", | |
947 | shift ? "Shift+" : ""); | |
948 | case PGDN: | |
949 | return String.format("%s%s%sPGDN", | |
950 | ctrl ? "Ctrl+" : "", | |
951 | alt ? "Alt+" : "", | |
952 | shift ? "Shift+" : ""); | |
953 | case INS: | |
954 | return String.format("%s%s%sINS", | |
955 | ctrl ? "Ctrl+" : "", | |
956 | alt ? "Alt+" : "", | |
957 | shift ? "Shift+" : ""); | |
958 | case DEL: | |
959 | return String.format("%s%s%sDEL", | |
960 | ctrl ? "Ctrl+" : "", | |
961 | alt ? "Alt+" : "", | |
962 | shift ? "Shift+" : ""); | |
963 | case RIGHT: | |
964 | return String.format("%s%s%sRIGHT", | |
965 | ctrl ? "Ctrl+" : "", | |
966 | alt ? "Alt+" : "", | |
967 | shift ? "Shift+" : ""); | |
968 | case LEFT: | |
969 | return String.format("%s%s%sLEFT", | |
970 | ctrl ? "Ctrl+" : "", | |
971 | alt ? "Alt+" : "", | |
972 | shift ? "Shift+" : ""); | |
973 | case UP: | |
974 | return String.format("%s%s%sUP", | |
975 | ctrl ? "Ctrl+" : "", | |
976 | alt ? "Alt+" : "", | |
977 | shift ? "Shift+" : ""); | |
978 | case DOWN: | |
979 | return String.format("%s%s%sDOWN", | |
980 | ctrl ? "Ctrl+" : "", | |
981 | alt ? "Alt+" : "", | |
982 | shift ? "Shift+" : ""); | |
983 | case TAB: | |
984 | return String.format("%s%s%sTAB", | |
985 | ctrl ? "Ctrl+" : "", | |
986 | alt ? "Alt+" : "", | |
987 | shift ? "Shift+" : ""); | |
988 | case BTAB: | |
989 | return String.format("%s%s%sBTAB", | |
990 | ctrl ? "Ctrl+" : "", | |
991 | alt ? "Alt+" : "", | |
992 | shift ? "Shift+" : ""); | |
993 | case ENTER: | |
994 | return String.format("%s%s%sENTER", | |
995 | ctrl ? "Ctrl+" : "", | |
996 | alt ? "Alt+" : "", | |
997 | shift ? "Shift+" : ""); | |
998 | case ESC: | |
999 | return String.format("%s%s%sESC", | |
1000 | ctrl ? "Ctrl+" : "", | |
1001 | alt ? "Alt+" : "", | |
1002 | shift ? "Shift+" : ""); | |
1003 | default: | |
1004 | return String.format("--UNKNOWN--"); | |
1005 | } | |
1006 | } else { | |
1007 | if (alt && !shift && !ctrl) { | |
1008 | // Alt-X | |
1009 | return String.format("Alt+%c", Character.toUpperCase(ch)); | |
1010 | } else if (!alt && shift && !ctrl) { | |
1011 | // Shift-X | |
1012 | return String.format("%c", ch); | |
1013 | } else if (!alt && !shift && ctrl) { | |
1014 | // Ctrl-X | |
1015 | return String.format("Ctrl+%c", ch); | |
1016 | } else if (alt && shift && !ctrl) { | |
1017 | // Alt-Shift-X | |
1018 | return String.format("Alt+Shift+%c", ch); | |
1019 | } else if (!alt && shift && ctrl) { | |
1020 | // Ctrl-Shift-X | |
1021 | return String.format("Ctrl+Shift+%c", ch); | |
1022 | } else if (alt && !shift && ctrl) { | |
1023 | // Ctrl-Alt-X | |
1024 | return String.format("Ctrl+Alt+%c", Character.toUpperCase(ch)); | |
1025 | } else if (alt && shift && ctrl) { | |
1026 | // Ctrl-Alt-Shift-X | |
1027 | return String.format("Ctrl+Alt+Shift+%c", | |
1028 | Character.toUpperCase(ch)); | |
1029 | } else { | |
1030 | // X | |
1031 | return String.format("%c", ch); | |
1032 | } | |
1033 | } | |
1034 | } | |
1035 | ||
1036 | /** | |
1037 | * Convert a keypress to lowercase. Function keys and alt/ctrl keys are | |
1038 | * not converted. | |
1039 | * | |
1040 | * @return a new instance with the key converted | |
1041 | */ | |
1042 | public TKeypress toLowerCase() { | |
1043 | TKeypress newKey = new TKeypress(isFunctionKey, keyCode, ch, alt, ctrl, | |
1044 | shift); | |
1045 | if (!isFunctionKey && (ch >= 'A') && (ch <= 'Z') && !ctrl && !alt) { | |
1046 | newKey.shift = false; | |
1047 | newKey.ch += 32; | |
1048 | } | |
1049 | return newKey; | |
1050 | } | |
1051 | ||
1052 | /** | |
1053 | * Convert a keypress to uppercase. Function keys and alt/ctrl keys are | |
1054 | * not converted. | |
1055 | * | |
1056 | * @return a new instance with the key converted | |
1057 | */ | |
1058 | public TKeypress toUpperCase() { | |
1059 | TKeypress newKey = new TKeypress(isFunctionKey, keyCode, ch, alt, ctrl, | |
1060 | shift); | |
1061 | if (!isFunctionKey && (ch >= 'a') && (ch <= 'z') && !ctrl && !alt) { | |
1062 | newKey.shift = true; | |
1063 | newKey.ch -= 32; | |
1064 | } | |
1065 | return newKey; | |
1066 | } | |
1067 | ||
df8de03f | 1068 | } |