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
33package com.jme3.input;
34
35/**
36 * A specific API for interfacing with the keyboard.
37 */
38public 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