Commit | Line | Data |
---|---|---|
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 | */ |
29 | package jexer; | |
30 | ||
31 | /** | |
32 | * This class represents keystrokes. | |
33 | */ | |
b299e69c | 34 | public 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 | } |