1 /*
2  * Copyright (c) 2009-2010 jMonkeyEngine
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are
7  * met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  *   notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  *   notice, this list of conditions and the following disclaimer in the
14  *   documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of 'jMonkeyEngine' nor the names of its contributors
17  *   may be used to endorse or promote products derived from this software
18  *   without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 
33 package com.jme3.input;
34 
35 /**
36  * A specific API for interfacing with the keyboard.
37  */
38 public interface KeyInput extends Input {
39 
40     /**
41      * escape key.
42      */
43     public static final int KEY_ESCAPE = 0x01;
44     /**
45      * 1 key.
46      */
47     public static final int KEY_1 = 0x02;
48     /**
49      * 2 key.
50      */
51     public static final int KEY_2 = 0x03;
52     /**
53      * 3 key.
54      */
55     public static final int KEY_3 = 0x04;
56     /**
57      * 4 key.
58      */
59     public static final int KEY_4 = 0x05;
60     /**
61      * 5 key.
62      */
63     public static final int KEY_5 = 0x06;
64     /**
65      * 6 key.
66      */
67     public static final int KEY_6 = 0x07;
68     /**
69      * 7 key.
70      */
71     public static final int KEY_7 = 0x08;
72     /**
73      * 8 key.
74      */
75     public static final int KEY_8 = 0x09;
76     /**
77      * 9 key.
78      */
79     public static final int KEY_9 = 0x0A;
80     /**
81      * 0 key.
82      */
83     public static final int KEY_0 = 0x0B;
84     /**
85      * - key.
86      */
87     public static final int KEY_MINUS = 0x0C;
88     /**
89      * = key.
90      */
91     public static final int KEY_EQUALS = 0x0D;
92     /**
93      * back key.
94      */
95     public static final int KEY_BACK = 0x0E;
96     /**
97      * tab key.
98      */
99     public static final int KEY_TAB = 0x0F;
100     /**
101      * q key.
102      */
103     public static final int KEY_Q = 0x10;
104     /**
105      * w key.
106      */
107     public static final int KEY_W = 0x11;
108     /**
109      * e key.
110      */
111     public static final int KEY_E = 0x12;
112     /**
113      * r key.
114      */
115     public static final int KEY_R = 0x13;
116     /**
117      * t key.
118      */
119     public static final int KEY_T = 0x14;
120     /**
121      * y key.
122      */
123     public static final int KEY_Y = 0x15;
124     /**
125      * u key.
126      */
127     public static final int KEY_U = 0x16;
128     /**
129      * i key.
130      */
131     public static final int KEY_I = 0x17;
132     /**
133      * o key.
134      */
135     public static final int KEY_O = 0x18;
136     /**
137      * p key.
138      */
139     public static final int KEY_P = 0x19;
140     /**
141      * [ key.
142      */
143     public static final int KEY_LBRACKET = 0x1A;
144     /**
145      * ] key.
146      */
147     public static final int KEY_RBRACKET = 0x1B;
148     /**
149      * enter (main keyboard) key.
150      */
151     public static final int KEY_RETURN = 0x1C;
152     /**
153      * left control key.
154      */
155     public static final int KEY_LCONTROL = 0x1D;
156     /**
157      * a key.
158      */
159     public static final int KEY_A = 0x1E;
160     /**
161      * s key.
162      */
163     public static final int KEY_S = 0x1F;
164     /**
165      * d key.
166      */
167     public static final int KEY_D = 0x20;
168     /**
169      * f key.
170      */
171     public static final int KEY_F = 0x21;
172     /**
173      * g key.
174      */
175     public static final int KEY_G = 0x22;
176     /**
177      * h key.
178      */
179     public static final int KEY_H = 0x23;
180     /**
181      * j key.
182      */
183     public static final int KEY_J = 0x24;
184     /**
185      * k key.
186      */
187     public static final int KEY_K = 0x25;
188     /**
189      * l key.
190      */
191     public static final int KEY_L = 0x26;
192     /**
193      * ; key.
194      */
195     public static final int KEY_SEMICOLON = 0x27;
196     /**
197      * ' key.
198      */
199     public static final int KEY_APOSTROPHE = 0x28;
200     /**
201      * ` key.
202      */
203     public static final int KEY_GRAVE = 0x29;
204     /**
205      * left shift key.
206      */
207     public static final int KEY_LSHIFT = 0x2A;
208     /**
209      * \ key.
210      */
211     public static final int KEY_BACKSLASH = 0x2B;
212     /**
213      * z key.
214      */
215     public static final int KEY_Z = 0x2C;
216     /**
217      * x key.
218      */
219     public static final int KEY_X = 0x2D;
220     /**
221      * c key.
222      */
223     public static final int KEY_C = 0x2E;
224     /**
225      * v key.
226      */
227     public static final int KEY_V = 0x2F;
228     /**
229      * b key.
230      */
231     public static final int KEY_B = 0x30;
232     /**
233      * n key.
234      */
235     public static final int KEY_N = 0x31;
236     /**
237      * m key.
238      */
239     public static final int KEY_M = 0x32;
240     /**
241      * , key.
242      */
243     public static final int KEY_COMMA = 0x33;
244     /**
245      * . key (main keyboard).
246      */
247     public static final int KEY_PERIOD = 0x34;
248     /**
249      * / key (main keyboard).
250      */
251     public static final int KEY_SLASH = 0x35;
252     /**
253      * right shift key.
254      */
255     public static final int KEY_RSHIFT = 0x36;
256     /**
257      * * key (on keypad).
258      */
259     public static final int KEY_MULTIPLY = 0x37;
260     /**
261      * left alt key.
262      */
263     public static final int KEY_LMENU = 0x38;
264     /**
265      * space key.
266      */
267     public static final int KEY_SPACE = 0x39;
268     /**
269      * caps lock key.
270      */
271     public static final int KEY_CAPITAL = 0x3A;
272     /**
273      * F1 key.
274      */
275     public static final int KEY_F1 = 0x3B;
276     /**
277      * F2 key.
278      */
279     public static final int KEY_F2 = 0x3C;
280     /**
281      * F3 key.
282      */
283     public static final int KEY_F3 = 0x3D;
284     /**
285      * F4 key.
286      */
287     public static final int KEY_F4 = 0x3E;
288     /**
289      * F5 key.
290      */
291     public static final int KEY_F5 = 0x3F;
292     /**
293      * F6 key.
294      */
295     public static final int KEY_F6 = 0x40;
296     /**
297      * F7 key.
298      */
299     public static final int KEY_F7 = 0x41;
300     /**
301      * F8 key.
302      */
303     public static final int KEY_F8 = 0x42;
304     /**
305      * F9 key.
306      */
307     public static final int KEY_F9 = 0x43;
308     /**
309      * F10 key.
310      */
311     public static final int KEY_F10 = 0x44;
312     /**
313      * NumLK key.
314      */
315     public static final int KEY_NUMLOCK = 0x45;
316     /**
317      * Scroll lock key.
318      */
319     public static final int KEY_SCROLL = 0x46;
320     /**
321      * 7 key (num pad).
322      */
323     public static final int KEY_NUMPAD7 = 0x47;
324     /**
325      * 8 key (num pad).
326      */
327     public static final int KEY_NUMPAD8 = 0x48;
328     /**
329      * 9 key (num pad).
330      */
331     public static final int KEY_NUMPAD9 = 0x49;
332     /**
333      * - key (num pad).
334      */
335     public static final int KEY_SUBTRACT = 0x4A;
336     /**
337      * 4 key (num pad).
338      */
339     public static final int KEY_NUMPAD4 = 0x4B;
340     /**
341      * 5 key (num pad).
342      */
343     public static final int KEY_NUMPAD5 = 0x4C;
344     /**
345      * 6 key (num pad).
346      */
347     public static final int KEY_NUMPAD6 = 0x4D;
348     /**
349      * + key (num pad).
350      */
351     public static final int KEY_ADD = 0x4E;
352     /**
353      * 1 key (num pad).
354      */
355     public static final int KEY_NUMPAD1 = 0x4F;
356     /**
357      * 2 key (num pad).
358      */
359     public static final int KEY_NUMPAD2 = 0x50;
360     /**
361      * 3 key (num pad).
362      */
363     public static final int KEY_NUMPAD3 = 0x51;
364     /**
365      * 0 key (num pad).
366      */
367     public static final int KEY_NUMPAD0 = 0x52;
368     /**
369      * . key (num pad).
370      */
371     public static final int KEY_DECIMAL = 0x53;
372     /**
373      * F11 key.
374      */
375     public static final int KEY_F11 = 0x57;
376     /**
377      * F12 key.
378      */
379     public static final int KEY_F12 = 0x58;
380     /**
381      * F13 key.
382      */
383     public static final int KEY_F13 = 0x64;
384     /**
385      * F14 key.
386      */
387     public static final int KEY_F14 = 0x65;
388     /**
389      * F15 key.
390      */
391     public static final int KEY_F15 = 0x66;
392     /**
393      * kana key (Japanese).
394      */
395     public static final int KEY_KANA = 0x70;
396     /**
397      * convert key (Japanese).
398      */
399     public static final int KEY_CONVERT = 0x79;
400     /**
401      * noconvert key (Japanese).
402      */
403     public static final int KEY_NOCONVERT = 0x7B;
404     /**
405      * yen key (Japanese).
406      */
407     public static final int KEY_YEN = 0x7D;
408     /**
409      * = on num pad (NEC PC98).
410      */
411     public static final int KEY_NUMPADEQUALS = 0x8D;
412     /**
413      * circum flex key (Japanese).
414      */
415     public static final int KEY_CIRCUMFLEX = 0x90;
416     /**
417      * @ key (NEC PC98).
418      */
419     public static final int KEY_AT = 0x91;
420     /**
421      * : key (NEC PC98)
422      */
423     public static final int KEY_COLON = 0x92;
424     /**
425      * _ key (NEC PC98).
426      */
427     public static final int KEY_UNDERLINE = 0x93;
428     /**
429      * kanji key (Japanese).
430      */
431     public static final int KEY_KANJI = 0x94;
432     /**
433      * stop key (NEC PC98).
434      */
435     public static final int KEY_STOP = 0x95;
436     /**
437      * ax key (Japanese).
438      */
439     public static final int KEY_AX = 0x96;
440     /**
441      * (J3100).
442      */
443     public static final int KEY_UNLABELED = 0x97;
444     /**
445      * Enter key (num pad).
446      */
447     public static final int KEY_NUMPADENTER = 0x9C;
448     /**
449      * right control key.
450      */
451     public static final int KEY_RCONTROL = 0x9D;
452     /**
453      * , key on num pad (NEC PC98).
454      */
455     public static final int KEY_NUMPADCOMMA = 0xB3;
456     /**
457      * / key (num pad).
458      */
459     public static final int KEY_DIVIDE = 0xB5;
460     /**
461      * SysRq key.
462      */
463     public static final int KEY_SYSRQ = 0xB7;
464     /**
465      * right alt key.
466      */
467     public static final int KEY_RMENU = 0xB8;
468     /**
469      * pause key.
470      */
471     public static final int KEY_PAUSE = 0xC5;
472     /**
473      * home key.
474      */
475     public static final int KEY_HOME = 0xC7;
476     /**
477      * up arrow key.
478      */
479     public static final int KEY_UP = 0xC8;
480     /**
481      * PgUp key.
482      */
483     public static final int KEY_PRIOR = 0xC9;
484     /**
485      * PgUp key.
486      */
487     public static final int KEY_PGUP = KEY_PRIOR;
488 
489     /**
490      * left arrow key.
491      */
492     public static final int KEY_LEFT = 0xCB;
493     /**
494      * right arrow key.
495      */
496     public static final int KEY_RIGHT = 0xCD;
497     /**
498      * end key.
499      */
500     public static final int KEY_END = 0xCF;
501     /**
502      * down arrow key.
503      */
504     public static final int KEY_DOWN = 0xD0;
505     /**
506      * PgDn key.
507      */
508     public static final int KEY_NEXT = 0xD1;
509     /**
510      * PgDn key.
511      */
512     public static final int KEY_PGDN = KEY_NEXT;
513 
514     /**
515      * insert key.
516      */
517     public static final int KEY_INSERT = 0xD2;
518     /**
519      * delete key.
520      */
521     public static final int KEY_DELETE = 0xD3;
522 
523     /**
524      * Left "Windows" key on PC keyboards, left "Option" key on Mac keyboards.
525      */
526     public static final int KEY_LMETA  = 0xDB;
527 
528     /**
529      * Right "Windows" key on PC keyboards, right "Option" key on Mac keyboards.
530      */
531     public static final int KEY_RMETA = 0xDC;
532 
533     public static final int KEY_APPS = 0xDD;
534     /**
535      * power key.
536      */
537     public static final int KEY_POWER = 0xDE;
538     /**
539      * sleep key.
540      */
541     public static final int KEY_SLEEP = 0xDF;
542 
543 }
544