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 |
Categories:
- Events
- API
