openMSX
Namespaces | Enumerations | Functions
Keys.hh File Reference
#include "string_view.hh"
#include <SDL_stdinc.h>
#include <SDL_keycode.h>
#include <string>
Include dependency graph for Keys.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 openmsx
 Thanks to enen for testing this on a real cartridge:
 
 openmsx::Keys
 

Enumerations

enum  openmsx::Keys::KeyCode {
  openmsx::Keys::K_NONE = -1, openmsx::Keys::K_UNKNOWN = 0, openmsx::Keys::K_BACKSPACE = 8, openmsx::Keys::K_TAB = 9,
  openmsx::Keys::K_CLEAR = 12, openmsx::Keys::K_RETURN = 13, openmsx::Keys::K_PAUSE = 19, openmsx::Keys::K_ESCAPE = 27,
  openmsx::Keys::K_SPACE = ' ', openmsx::Keys::K_EXCLAIM = '!', openmsx::Keys::K_QUOTEDBL = '"', openmsx::Keys::K_HASH = '#',
  openmsx::Keys::K_DOLLAR = '$', openmsx::Keys::K_AMPERSAND = '&', openmsx::Keys::K_QUOTE = '\'', openmsx::Keys::K_LEFTPAREN = '(',
  openmsx::Keys::K_RIGHTPAREN = ')', openmsx::Keys::K_ASTERISK = '*', openmsx::Keys::K_PLUS = '+', openmsx::Keys::K_COMMA = ',',
  openmsx::Keys::K_MINUS = '-', openmsx::Keys::K_PERIOD = '.', openmsx::Keys::K_SLASH = '/', openmsx::Keys::K_0 = '0',
  openmsx::Keys::K_1 = '1', openmsx::Keys::K_2 = '2', openmsx::Keys::K_3 = '3', openmsx::Keys::K_4 = '4',
  openmsx::Keys::K_5 = '5', openmsx::Keys::K_6 = '6', openmsx::Keys::K_7 = '7', openmsx::Keys::K_8 = '8',
  openmsx::Keys::K_9 = '9', openmsx::Keys::K_COLON = ':', openmsx::Keys::K_SEMICOLON = ';', openmsx::Keys::K_LESS = '<',
  openmsx::Keys::K_EQUALS = '=', openmsx::Keys::K_GREATER = '>', openmsx::Keys::K_QUESTION = '?', openmsx::Keys::K_AT = '@',
  openmsx::Keys::K_LEFTBRACKET = '[', openmsx::Keys::K_BACKSLASH = '\\', openmsx::Keys::K_RIGHTBRACKET = ']', openmsx::Keys::K_CARET = '^',
  openmsx::Keys::K_UNDERSCORE = '_', openmsx::Keys::K_BACKQUOTE = '`', openmsx::Keys::K_A = 'a', openmsx::Keys::K_B = 'b',
  openmsx::Keys::K_C = 'c', openmsx::Keys::K_D = 'd', openmsx::Keys::K_E = 'e', openmsx::Keys::K_F = 'f',
  openmsx::Keys::K_G = 'g', openmsx::Keys::K_H = 'h', openmsx::Keys::K_I = 'i', openmsx::Keys::K_J = 'j',
  openmsx::Keys::K_K = 'k', openmsx::Keys::K_L = 'l', openmsx::Keys::K_M = 'm', openmsx::Keys::K_N = 'n',
  openmsx::Keys::K_O = 'o', openmsx::Keys::K_P = 'p', openmsx::Keys::K_Q = 'q', openmsx::Keys::K_R = 'r',
  openmsx::Keys::K_S = 's', openmsx::Keys::K_T = 't', openmsx::Keys::K_U = 'u', openmsx::Keys::K_V = 'v',
  openmsx::Keys::K_W = 'w', openmsx::Keys::K_X = 'x', openmsx::Keys::K_Y = 'y', openmsx::Keys::K_Z = 'z',
  openmsx::Keys::K_DELETE = 127, openmsx::Keys::K_KP0 = 0x100, openmsx::Keys::K_KP1 = 0x101, openmsx::Keys::K_KP2 = 0x102,
  openmsx::Keys::K_KP3 = 0x103, openmsx::Keys::K_KP4 = 0x104, openmsx::Keys::K_KP5 = 0x105, openmsx::Keys::K_KP6 = 0x106,
  openmsx::Keys::K_KP7 = 0x107, openmsx::Keys::K_KP8 = 0x108, openmsx::Keys::K_KP9 = 0x109, openmsx::Keys::K_KP_PERIOD = 0x10A,
  openmsx::Keys::K_KP_DIVIDE = 0x10B, openmsx::Keys::K_KP_MULTIPLY = 0x10C, openmsx::Keys::K_KP_MINUS = 0x10D, openmsx::Keys::K_KP_PLUS = 0x10E,
  openmsx::Keys::K_KP_ENTER = 0x10F, openmsx::Keys::K_KP_EQUALS = 0x110, openmsx::Keys::K_UP = 0x111, openmsx::Keys::K_DOWN = 0x112,
  openmsx::Keys::K_RIGHT = 0x113, openmsx::Keys::K_LEFT = 0x114, openmsx::Keys::K_INSERT = 0x115, openmsx::Keys::K_HOME = 0x116,
  openmsx::Keys::K_END = 0x117, openmsx::Keys::K_PAGEUP = 0x118, openmsx::Keys::K_PAGEDOWN = 0x119, openmsx::Keys::K_F1 = 0x11A,
  openmsx::Keys::K_F2 = 0x11B, openmsx::Keys::K_F3 = 0x11C, openmsx::Keys::K_F4 = 0x11D, openmsx::Keys::K_F5 = 0x11E,
  openmsx::Keys::K_F6 = 0x11F, openmsx::Keys::K_F7 = 0x120, openmsx::Keys::K_F8 = 0x121, openmsx::Keys::K_F9 = 0x122,
  openmsx::Keys::K_F10 = 0x123, openmsx::Keys::K_F11 = 0x124, openmsx::Keys::K_F12 = 0x125, openmsx::Keys::K_F13 = 0x126,
  openmsx::Keys::K_F14 = 0x127, openmsx::Keys::K_F15 = 0x128, openmsx::Keys::K_F16 = 0x129, openmsx::Keys::K_F17 = 0x12A,
  openmsx::Keys::K_F18 = 0x12B, openmsx::Keys::K_F19 = 0x144, openmsx::Keys::K_F20 = 0x145, openmsx::Keys::K_F21 = 0x146,
  openmsx::Keys::K_F22 = 0x147, openmsx::Keys::K_F23 = 0x148, openmsx::Keys::K_F24 = 0x149, openmsx::Keys::K_NUMLOCK = 0x12C,
  openmsx::Keys::K_CAPSLOCK = 0x12D, openmsx::Keys::K_SCROLLLOCK = 0x12E, openmsx::Keys::K_RSHIFT = 0x12F, openmsx::Keys::K_LSHIFT = 0x130,
  openmsx::Keys::K_RCTRL = 0x131, openmsx::Keys::K_LCTRL = 0x132, openmsx::Keys::K_RALT = 0x133, openmsx::Keys::K_LALT = 0x134,
  openmsx::Keys::K_LSUPER = 0x137, openmsx::Keys::K_RSUPER = 0x138, openmsx::Keys::K_MODE = 0x139, openmsx::Keys::K_HELP = 0x13B,
  openmsx::Keys::K_PRINT = 0x13C, openmsx::Keys::K_SYSREQ = 0x13D, openmsx::Keys::K_MENU = 0x13F, openmsx::Keys::K_POWER = 0x140,
  openmsx::Keys::K_UNDO = 0x142, openmsx::Keys::K_BACK = 0x143, openmsx::Keys::K_ZENKAKU_HENKAKU = 0x10000, openmsx::Keys::K_MUHENKAN = 0x10001,
  openmsx::Keys::K_HENKAN_MODE = 0x10002, openmsx::Keys::K_HIRAGANA_KATAKANA = 0x10003, openmsx::Keys::K_MASK = 0x1FFFF, openmsx::Keys::KM_SHIFT = 0x020000,
  openmsx::Keys::KM_CTRL = 0x040000, openmsx::Keys::KM_ALT = 0x080000, openmsx::Keys::KM_META = 0x100000, openmsx::Keys::KM_MODE = 0x200000,
  openmsx::Keys::KD_PRESS = 0, openmsx::Keys::KD_RELEASE = 0x400000
}
 Constants that identify keys and key modifiers. More...
 

Functions

KeyCode openmsx::Keys::getCode (string_view name)
 Translate key name to key code. More...
 
KeyCode openmsx::Keys::getCode (SDL_Keycode key, Uint16 mod, SDL_Scancode scancode, bool release)
 
string openmsx::Keys::getName (KeyCode keyCode)
 Translate key code to key name. More...
 
KeyCode openmsx::Keys::combine (KeyCode key, KeyCode modifier)
 Convenience method to create key combinations (hides ugly casts). More...