geKeyboard
From GriffinEngine
Contents
Usage
Manages the state of the keyboard.
Inheritance
Base classes
- geObject
- geKeyboard
Reference
Key codes
- Note: printable character codes are same as their ASCII codes, so you can just compare keycode to 'a', 'b', 'c' and so on.
KeyCode | Constant | Key | getCat() | getNumeric() |
---|---|---|---|---|
8 | GE_BACKSPACE | Backspace | GE_CAT_MISC | |
9 | GE_TAB | Tab | GE_CAT_MISC | |
13 | GE_RETURN | Return (Enter) | GE_CAT_MISC | |
19 | GE_PAUSE | Pause/Break | GE_CAT_MISC | |
27 | GE_ESCAPE | Esc (Escape) | GE_CAT_MISC | |
— printable ASCII characters between ' ' (space) and '~' here, no constants — | ||||
127 | GE_DELETE | Delete | GE_CAT_HOME | |
256 | GE_NUM_0 | Numpad 0 | GE_CAT_NUMPAD | GE_CAT_NUMERIC | 0 |
257 | GE_NUM_1 | Numpad 1 (End) | GE_CAT_NUMPAD | GE_CAT_NUMERIC | 1 |
258 | GE_NUM_2 | Numpad 2 (Arrow Down) | GE_CAT_NUMPAD | GE_CAT_NUMERIC | 2 |
259 | GE_NUM_3 | Numpad 3 (Page Down) | GE_CAT_NUMPAD | GE_CAT_NUMERIC | 3 |
260 | GE_NUM_4 | Numpad 4 (Arrow Left) | GE_CAT_NUMPAD | GE_CAT_NUMERIC | 4 |
261 | GE_NUM_5 | Numpad 5 | GE_CAT_NUMPAD | GE_CAT_NUMERIC | 5 |
262 | GE_NUM_6 | Numpad 6 (Arrow Right) | GE_CAT_NUMPAD | GE_CAT_NUMERIC | 6 |
263 | GE_NUM_7 | Numpad 7 (Home) | GE_CAT_NUMPAD | GE_CAT_NUMERIC | 7 |
264 | GE_NUM_8 | Numpad 8 (Arrow Up) | GE_CAT_NUMPAD | GE_CAT_NUMERIC | 8 |
265 | GE_NUM_9 | Numpad 9 (Page Up) | GE_CAT_NUMPAD | GE_CAT_NUMERIC | 9 |
266 | GE_NUM_PERIOD | Numpad Period (Del) | GE_CAT_NUMPAD | GE_CAT_SYMBOL | |
267 | GE_NUM_DIV | Numpad Division (Backslash) | GE_CAT_NUMPAD | GE_CAT_SYMBOL | |
268 | GE_NUM_MULT | Numpad Multiplication (Asterisk) | GE_CAT_NUMPAD | GE_CAT_SYMBOL | |
269 | GE_NUM_MINUS | Numpad Minus (Dash) | GE_CAT_NUMPAD | GE_CAT_SYMBOL | |
270 | GE_NUM_PLUS | Numpad Plus | GE_CAT_NUMPAD | GE_CAT_SYMBOL | |
271 | GE_NUM_ENTER | Numpad Enter | GE_CAT_NUMPAD | |
273 | GE_UP | Arrow Up | GE_CAT_ARROW | |
274 | GE_DOWN | Arrow Down | GE_CAT_ARROW | |
275 | GE_RIGHT | Arrow Right | GE_CAT_ARROW | |
276 | GE_LEFT | Arrow Left | GE_CAT_ARROW | |
277 | GE_INS | Insert | GE_CAT_HOME | |
278 | GE_HOME | Home | GE_CAT_HOME | |
279 | GE_END | End | GE_CAT_HOME | |
280 | GE_PAGEUP | Page Up | GE_CAT_HOME | |
281 | GE_PAGEDOWN | Page Down | GE_CAT_HOME | |
282 | GE_F1 | F1 Function Key | GE_CAT_FUNC | 1 |
283 | GE_F2 | F2 Function Key | GE_CAT_FUNC | 2 |
284 | GE_F3 | F3 Function Key | GE_CAT_FUNC | 3 |
285 | GE_F4 | F4 Function Key | GE_CAT_FUNC | 4 |
286 | GE_F5 | F5 Function Key | GE_CAT_FUNC | 5 |
287 | GE_F6 | F6 Function Key | GE_CAT_FUNC | 6 |
288 | GE_F7 | F7 Function Key | GE_CAT_FUNC | 7 |
289 | GE_F8 | F8 Function Key | GE_CAT_FUNC | 8 |
290 | GE_F9 | F9 Function Key | GE_CAT_FUNC | 9 |
291 | GE_F10 | F10 Function Key | GE_CAT_FUNC | 10 |
292 | GE_F11 | F11 Function Key | GE_CAT_FUNC | 11 |
293 | GE_F12 | F12 Function Key | GE_CAT_FUNC | 12 |
300 | GE_NUMLOCK | Num Lock | GE_CAT_MOD | |
301 | GE_CAPSLOCK | Caps Lock | GE_CAT_MOD | |
302 | GE_SCROLLOCK | Scroll Lock | GE_CAT_MOD | |
303 | GE_RSHIFT | Shift (right side) | GE_CAT_MOD | |
304 | GE_LSHIFT | Shift (left side) | GE_CAT_MOD | |
305 | GE_RCTRL | Control / Ctrl (right side) | GE_CAT_MOD | |
306 | GE_LCTRL | Control / Ctrl (left side) | GE_CAT_MOD | |
307 | GE_RALT | Alt (right side) | GE_CAT_MOD | |
308 | GE_LALT | Alt (left side) | GE_CAT_MOD | |
309 | GE_RWINDOWS | Windows key (right side) | GE_CAT_MOD | |
310 | GE_LWINDOWS | Windows key (left side) | GE_CAT_MOD | |
316 | GE_PRINT | Print-screen (SysRq) | GE_CAT_MISC |
Key categories
Categorization functions are provided for convenience. To get a key category, callgeKeyboard::getCat( int keycode )
Code | Constant | Category | Equivalent |
---|---|---|---|
0 | GE_CAT_MISC | Miscellaneous keys: Backspace, Tab, Return, Pause/Break, Esc, Delete, Print Scrn | |
1 | GE_CAT_NUMERIC | Numbered keys (including keypad) | |
2 | GE_CAT_ALPHA | Letter keys: 'A'-'Z' and 'a'-'z' | |
3 | GE_CAT_ALPHANUM | Alphanumeric keys | GE_CAT_NUMERIC | GE_CAT_ALPHA |
4 | GE_CAT_SYMBOL | Punctuation and other printable symbols | |
7 | GE_CAT_PRINTABLE | All printable symbols | GE_CAT_ALPHANUM | GE_CAT_SYMBOL |
8 | GE_CAT_NUMPAD | Numpad (keypad) keys | |
16 | GE_CAT_ARROW | Arrow keys | |
32 | GE_CAT_HOME | Key located above arrow keys, near the Home button: Insert, Home, PageUp, Delete, End, PageDown | |
64 | GE_CAT_FUNC | Function keys (F1 - F12) | |
128 | GE_CAT_MOD | Modifier keys: NumLock, CapsLock, ScrollLock, Shift, Control, Alt, Windows |
Key states
To check key state, use binary-AND (& operator) to compare state with these flags. For example:
if( geKeyboard::getState('W') & GE_KS_PRESSED ){ /* 'W' key was just pressed */ }
Code | Constant | State | Equivalent |
---|---|---|---|
1 | GE_KS_PRESSED | Key was pressed just now | |
2 | GE_KS_HELD | Key is held down (down for two or more ticks) | |
3 | GE_KS_DOWN | Key is down (either pressed or held) | GE_KS_PRESSED | GE_KS_HELD |
4 | GE_KS_RELEASED | Key was released just now | |
8 | GE_KS_NORMAL | Key is untouched (up for two or more ticks) | |
12 | GE_KS_UP | Key is not pressed (released or normal) | GE_KS_RELEASED | GE_KS_NORMAL |
Key modifiers
To check which modifiers are active, use binary-AND (& operator) to compare mods with these flags. For example:
if( geKeyboard::getModifiers() & GE_MOD_CAPS ){ /* caps lock is on */ }
Code | Constant | Associated Key(s) | Equivalent |
---|---|---|---|
1 | GE_MOD_LSHIFT | Shift (left side) | |
2 | GE_MOD_RSHIFT | Shift (right side) | |
3 | GE_MOD_SHIFT | Shift (either) | GE_MOD_LSHIFT | GE_MOD_RSHIFT |
64 | GE_MOD_LCTRL | Control / Ctrl (left side) | |
128 | GE_MOD_RCTRL | Control / Ctrl (right side) | |
192 | GE_MOD_CTRL | Control / Ctrl (either) | GE_MOD_LCTRL | GE_MOD_RCTRL |
256 | GE_MOD_LALT | Alt (left side) | |
512 | GE_MOD_RALT | Alt (right side) | |
768 | GE_MOD_ALT | Alt (either) | GE_MOD_LALT | GE_MOD_RALT |
4096 | GE_MOD_NUM | NumLock active | |
8192 | GE_MOD_CAPS | CapsLock active |
Accessors
static int getKeyState( int keycode )
- Get key state (see keycode/keystate reference above)
static bool isKeyDown( int keycode )
- Returns true is a key is down (pressed or held)
static int getModifiers()
- Returns state of modifier keys
static int getCat( int keycode )
- Get category flags for a given keycode (see reference above)
static int getNumeric( int keycode )
- Get numeric value associated with a keycode as an int
Events |
---|
geEventManager · geKeyboard · geMouse · geTimer |
geCollisionEvent · GeKeyEvent · GeMouseClickEvent · GeMouseDragEvent · GeMouseMotionEvent |