UGDK  0.5.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
ugdk::input Namespace Reference

Classes

class  AxisStatus
 
class  HatStatus
 
class  Joystick
 
struct  JoystickAxisEvent
 
struct  JoystickBallEvent
 
struct  JoystickButtonPressedEvent
 
struct  JoystickButtonReleasedEvent
 
struct  JoystickConnectedEvent
 
struct  JoystickDisconnectedEvent
 
struct  JoystickHatEvent
 
class  Keyboard
 
struct  KeyHeldEvent
 
struct  KeyPressedEvent
 
struct  KeyReleasedEvent
 
class  Manager
 
class  Mouse
 
struct  MouseButtonPressedEvent
 
struct  MouseButtonReleasedEvent
 
struct  MouseMotionEvent
 
struct  MouseWheelEvent
 
struct  TextEditingEvent
 
class  TextInput
 
struct  TextInputEvent
 

Enumerations

enum  Keycode {
  Keycode::UNKNOWN = 0, Keycode::RETURN = '\r', Keycode::ESCAPE = '\033', Keycode::BACKSPACE = '\b',
  Keycode::TAB = '\t', Keycode::SPACE = ' ', Keycode::EXCLAIM = '!', Keycode::QUOTEDBL = '"',
  Keycode::HASH = '#', Keycode::PERCENT = '', Keycode::DOLLAR = '$', Keycode::AMPERSAND = '&',
  Keycode::QUOTE = '\'', Keycode::LEFTPAREN = '(', Keycode::RIGHTPAREN = ')', Keycode::ASTERISK = '*',
  Keycode::PLUS = '+', Keycode::COMMA = ',', Keycode::MINUS = '-', Keycode::PERIOD = '.',
  Keycode::SLASH = '/', Keycode::ALPHANUMERIC_0 = '0', Keycode::ALPHANUMERIC_1 = '1', Keycode::ALPHANUMERIC_2 = '2',
  Keycode::ALPHANUMERIC_3 = '3', Keycode::ALPHANUMERIC_4 = '4', Keycode::ALPHANUMERIC_5 = '5', Keycode::ALPHANUMERIC_6 = '6',
  Keycode::ALPHANUMERIC_7 = '7', Keycode::ALPHANUMERIC_8 = '8', Keycode::ALPHANUMERIC_9 = '9', Keycode::COLON = ':',
  Keycode::SEMICOLON = ';', Keycode::LESS = '<', Keycode::EQUALS = '=', Keycode::GREATER = '>',
  Keycode::QUESTION = '?', Keycode::AT = '@', Keycode::LEFTBRACKET = '[', Keycode::BACKSLASH = '\\',
  Keycode::RIGHTBRACKET = ']', Keycode::CARET = '^', Keycode::UNDERSCORE = '_', Keycode::BACKQUOTE = '`',
  Keycode::a = 'a', Keycode::b = 'b', Keycode::c = 'c', Keycode::d = 'd',
  Keycode::e = 'e', Keycode::f = 'f', Keycode::g = 'g', Keycode::h = 'h',
  Keycode::i = 'i', Keycode::j = 'j', Keycode::k = 'k', Keycode::l = 'l',
  Keycode::m = 'm', Keycode::n = 'n', Keycode::o = 'o', Keycode::p = 'p',
  Keycode::q = 'q', Keycode::r = 'r', Keycode::s = 's', Keycode::t = 't',
  Keycode::u = 'u', Keycode::v = 'v', Keycode::w = 'w', Keycode::x = 'x',
  Keycode::y = 'y', Keycode::z = 'z', Keycode::CAPSLOCK = UGDK_SCANCODE_TO_KEYCODE(Scancode::CAPSLOCK), Keycode::F1 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F1),
  Keycode::F2 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F2), Keycode::F3 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F3), Keycode::F4 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F4), Keycode::F5 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F5),
  Keycode::F6 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F6), Keycode::F7 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F7), Keycode::F8 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F8), Keycode::F9 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F9),
  Keycode::F10 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F10), Keycode::F11 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F11), Keycode::F12 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F12), Keycode::PRINTSCREEN = UGDK_SCANCODE_TO_KEYCODE(Scancode::PRINTSCREEN),
  Keycode::SCROLLLOCK = UGDK_SCANCODE_TO_KEYCODE(Scancode::SCROLLLOCK), Keycode::PAUSE = UGDK_SCANCODE_TO_KEYCODE(Scancode::PAUSE), Keycode::INSERT = UGDK_SCANCODE_TO_KEYCODE(Scancode::INSERT), Keycode::HOME = UGDK_SCANCODE_TO_KEYCODE(Scancode::HOME),
  Keycode::PAGEUP = UGDK_SCANCODE_TO_KEYCODE(Scancode::PAGEUP), Keycode::DELETE = '\177', Keycode::END = UGDK_SCANCODE_TO_KEYCODE(Scancode::END), Keycode::PAGEDOWN = UGDK_SCANCODE_TO_KEYCODE(Scancode::PAGEDOWN),
  Keycode::RIGHT = UGDK_SCANCODE_TO_KEYCODE(Scancode::RIGHT), Keycode::LEFT = UGDK_SCANCODE_TO_KEYCODE(Scancode::LEFT), Keycode::DOWN = UGDK_SCANCODE_TO_KEYCODE(Scancode::DOWN), Keycode::UP = UGDK_SCANCODE_TO_KEYCODE(Scancode::UP),
  Keycode::NUMLOCKCLEAR = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMLOCKCLEAR), Keycode::NUMPAD_DIVIDE = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_DIVIDE), Keycode::NUMPAD_MULTIPLY = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_MULTIPLY), Keycode::NUMPAD_MINUS = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_MINUS),
  Keycode::NUMPAD_PLUS = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_PLUS), Keycode::NUMPAD_ENTER = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_ENTER), Keycode::NUMPAD_1 = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_1), Keycode::NUMPAD_2 = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_2),
  Keycode::NUMPAD_3 = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_3), Keycode::NUMPAD_4 = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_4), Keycode::NUMPAD_5 = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_5), Keycode::NUMPAD_6 = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_6),
  Keycode::NUMPAD_7 = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_7), Keycode::NUMPAD_8 = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_8), Keycode::NUMPAD_9 = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_9), Keycode::NUMPAD_0 = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_0),
  Keycode::NUMPAD_PERIOD = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_PERIOD), Keycode::APPLICATION = UGDK_SCANCODE_TO_KEYCODE(Scancode::APPLICATION), Keycode::POWER = UGDK_SCANCODE_TO_KEYCODE(Scancode::POWER), Keycode::NUMPAD_EQUALS = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_EQUALS),
  Keycode::F13 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F13), Keycode::F14 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F14), Keycode::F15 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F15), Keycode::F16 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F16),
  Keycode::F17 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F17), Keycode::F18 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F18), Keycode::F19 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F19), Keycode::F20 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F20),
  Keycode::F21 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F21), Keycode::F22 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F22), Keycode::F23 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F23), Keycode::F24 = UGDK_SCANCODE_TO_KEYCODE(Scancode::F24),
  Keycode::EXECUTE = UGDK_SCANCODE_TO_KEYCODE(Scancode::EXECUTE), Keycode::HELP = UGDK_SCANCODE_TO_KEYCODE(Scancode::HELP), Keycode::MENU = UGDK_SCANCODE_TO_KEYCODE(Scancode::MENU), Keycode::SELECT = UGDK_SCANCODE_TO_KEYCODE(Scancode::SELECT),
  Keycode::STOP = UGDK_SCANCODE_TO_KEYCODE(Scancode::STOP), Keycode::AGAIN = UGDK_SCANCODE_TO_KEYCODE(Scancode::AGAIN), Keycode::UNDO = UGDK_SCANCODE_TO_KEYCODE(Scancode::UNDO), Keycode::CUT = UGDK_SCANCODE_TO_KEYCODE(Scancode::CUT),
  Keycode::COPY = UGDK_SCANCODE_TO_KEYCODE(Scancode::COPY), Keycode::PASTE = UGDK_SCANCODE_TO_KEYCODE(Scancode::PASTE), Keycode::FIND = UGDK_SCANCODE_TO_KEYCODE(Scancode::FIND), Keycode::MUTE = UGDK_SCANCODE_TO_KEYCODE(Scancode::MUTE),
  Keycode::VOLUMEUP = UGDK_SCANCODE_TO_KEYCODE(Scancode::VOLUMEUP), Keycode::VOLUMEDOWN = UGDK_SCANCODE_TO_KEYCODE(Scancode::VOLUMEDOWN), Keycode::NUMPAD_COMMA = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_COMMA), Keycode::NUMPAD_EQUALSAS400,
  Keycode::ALTERASE = UGDK_SCANCODE_TO_KEYCODE(Scancode::ALTERASE), Keycode::SYSREQ = UGDK_SCANCODE_TO_KEYCODE(Scancode::SYSREQ), Keycode::CANCEL = UGDK_SCANCODE_TO_KEYCODE(Scancode::CANCEL), Keycode::CLEAR = UGDK_SCANCODE_TO_KEYCODE(Scancode::CLEAR),
  Keycode::PRIOR = UGDK_SCANCODE_TO_KEYCODE(Scancode::PRIOR), Keycode::RETURN2 = UGDK_SCANCODE_TO_KEYCODE(Scancode::RETURN2), Keycode::SEPARATOR = UGDK_SCANCODE_TO_KEYCODE(Scancode::SEPARATOR), Keycode::OUT = UGDK_SCANCODE_TO_KEYCODE(Scancode::OUT),
  Keycode::OPER = UGDK_SCANCODE_TO_KEYCODE(Scancode::OPER), Keycode::CLEARAGAIN = UGDK_SCANCODE_TO_KEYCODE(Scancode::CLEARAGAIN), Keycode::CRSEL = UGDK_SCANCODE_TO_KEYCODE(Scancode::CRSEL), Keycode::EXSEL = UGDK_SCANCODE_TO_KEYCODE(Scancode::EXSEL),
  Keycode::NUMPAD_00 = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_00), Keycode::NUMPAD_000 = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_000), Keycode::THOUSANDSSEPARATOR, Keycode::DECIMALSEPARATOR,
  Keycode::CURRENCYUNIT = UGDK_SCANCODE_TO_KEYCODE(Scancode::CURRENCYUNIT), Keycode::CURRENCYSUBUNIT, Keycode::NUMPAD_LEFTPAREN = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_LEFTPAREN), Keycode::NUMPAD_RIGHTPAREN = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_RIGHTPAREN),
  Keycode::NUMPAD_LEFTBRACE = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_LEFTBRACE), Keycode::NUMPAD_RIGHTBRACE = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_RIGHTBRACE), Keycode::NUMPAD_TAB = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_TAB), Keycode::NUMPAD_BACKSPACE = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_BACKSPACE),
  Keycode::NUMPAD_A = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_A), Keycode::NUMPAD_B = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_B), Keycode::NUMPAD_C = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_C), Keycode::NUMPAD_D = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_D),
  Keycode::NUMPAD_E = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_E), Keycode::NUMPAD_F = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_F), Keycode::NUMPAD_XOR = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_XOR), Keycode::NUMPAD_POWER = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_POWER),
  Keycode::NUMPAD_PERCENT = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_PERCENT), Keycode::NUMPAD_LESS = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_LESS), Keycode::NUMPAD_GREATER = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_GREATER), Keycode::NUMPAD_AMPERSAND = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_AMPERSAND),
  Keycode::NUMPAD_DBLAMPERSAND, Keycode::NUMPAD_VERTICALBAR, Keycode::NUMPAD_DBLVERTICALBAR, Keycode::NUMPAD_COLON = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_COLON),
  Keycode::NUMPAD_HASH = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_HASH), Keycode::NUMPAD_SPACE = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_SPACE), Keycode::NUMPAD_AT = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_AT), Keycode::NUMPAD_EXCLAM = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_EXCLAM),
  Keycode::NUMPAD_MEMSTORE = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_MEMSTORE), Keycode::NUMPAD_MEMRECALL = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_MEMRECALL), Keycode::NUMPAD_MEMCLEAR = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_MEMCLEAR), Keycode::NUMPAD_MEMADD = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_MEMADD),
  Keycode::NUMPAD_MEMSUBTRACT, Keycode::NUMPAD_MEMMULTIPLY, Keycode::NUMPAD_MEMDIVIDE = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_MEMDIVIDE), Keycode::NUMPAD_PLUSMINUS = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_PLUSMINUS),
  Keycode::NUMPAD_CLEAR = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_CLEAR), Keycode::NUMPAD_CLEARENTRY = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_CLEARENTRY), Keycode::NUMPAD_BINARY = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_BINARY), Keycode::NUMPAD_OCTAL = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_OCTAL),
  Keycode::NUMPAD_DECIMAL = UGDK_SCANCODE_TO_KEYCODE(Scancode::NUMPAD_DECIMAL), Keycode::NUMPAD_HEXADECIMAL, Keycode::LCTRL = UGDK_SCANCODE_TO_KEYCODE(Scancode::LCTRL), Keycode::LSHIFT = UGDK_SCANCODE_TO_KEYCODE(Scancode::LSHIFT),
  Keycode::LALT = UGDK_SCANCODE_TO_KEYCODE(Scancode::LALT), Keycode::LGUI = UGDK_SCANCODE_TO_KEYCODE(Scancode::LGUI), Keycode::RCTRL = UGDK_SCANCODE_TO_KEYCODE(Scancode::RCTRL), Keycode::RSHIFT = UGDK_SCANCODE_TO_KEYCODE(Scancode::RSHIFT),
  Keycode::RALT = UGDK_SCANCODE_TO_KEYCODE(Scancode::RALT), Keycode::RGUI = UGDK_SCANCODE_TO_KEYCODE(Scancode::RGUI), Keycode::MODE = UGDK_SCANCODE_TO_KEYCODE(Scancode::MODE), Keycode::AUDIONEXT = UGDK_SCANCODE_TO_KEYCODE(Scancode::AUDIONEXT),
  Keycode::AUDIOPREV = UGDK_SCANCODE_TO_KEYCODE(Scancode::AUDIOPREV), Keycode::AUDIOSTOP = UGDK_SCANCODE_TO_KEYCODE(Scancode::AUDIOSTOP), Keycode::AUDIOPLAY = UGDK_SCANCODE_TO_KEYCODE(Scancode::AUDIOPLAY), Keycode::AUDIOMUTE = UGDK_SCANCODE_TO_KEYCODE(Scancode::AUDIOMUTE),
  Keycode::MEDIASELECT = UGDK_SCANCODE_TO_KEYCODE(Scancode::MEDIASELECT), Keycode::WWW = UGDK_SCANCODE_TO_KEYCODE(Scancode::WWW), Keycode::MAIL = UGDK_SCANCODE_TO_KEYCODE(Scancode::MAIL), Keycode::CALCULATOR = UGDK_SCANCODE_TO_KEYCODE(Scancode::CALCULATOR),
  Keycode::COMPUTER = UGDK_SCANCODE_TO_KEYCODE(Scancode::COMPUTER), Keycode::AC_SEARCH = UGDK_SCANCODE_TO_KEYCODE(Scancode::AC_SEARCH), Keycode::AC_HOME = UGDK_SCANCODE_TO_KEYCODE(Scancode::AC_HOME), Keycode::AC_BACK = UGDK_SCANCODE_TO_KEYCODE(Scancode::AC_BACK),
  Keycode::AC_FORWARD = UGDK_SCANCODE_TO_KEYCODE(Scancode::AC_FORWARD), Keycode::AC_STOP = UGDK_SCANCODE_TO_KEYCODE(Scancode::AC_STOP), Keycode::AC_REFRESH = UGDK_SCANCODE_TO_KEYCODE(Scancode::AC_REFRESH), Keycode::AC_BOOKMARKS = UGDK_SCANCODE_TO_KEYCODE(Scancode::AC_BOOKMARKS),
  Keycode::BRIGHTNESSDOWN, Keycode::BRIGHTNESSUP = UGDK_SCANCODE_TO_KEYCODE(Scancode::BRIGHTNESSUP), Keycode::DISPLAYSWITCH = UGDK_SCANCODE_TO_KEYCODE(Scancode::DISPLAYSWITCH), Keycode::KBDILLUMTOGGLE,
  Keycode::KBDILLUMDOWN = UGDK_SCANCODE_TO_KEYCODE(Scancode::KBDILLUMDOWN), Keycode::KBDILLUMUP = UGDK_SCANCODE_TO_KEYCODE(Scancode::KBDILLUMUP), Keycode::EJECT = UGDK_SCANCODE_TO_KEYCODE(Scancode::EJECT), Keycode::SLEEP = UGDK_SCANCODE_TO_KEYCODE(Scancode::SLEEP)
}
 The SDL virtual key representation. More...
 
enum  Keymod {
  Keymod::NONE = 0x0000, Keymod::LSHIFT = 0x0001, Keymod::RSHIFT = 0x0002, Keymod::SHIFT = LSHIFT | RSHIFT,
  Keymod::LCTRL = 0x0040, Keymod::RCTRL = 0x0080, Keymod::CTRL = LCTRL | RCTRL, Keymod::LALT = 0x0100,
  Keymod::RALT = 0x0200, Keymod::ALT = LALT | RALT, Keymod::LGUI = 0x0400, Keymod::RGUI = 0x0800,
  Keymod::GUI = LGUI | RGUI, Keymod::NUM = 0x1000, Keymod::CAPS = 0x2000, Keymod::MODE = 0x4000,
  Keymod::RESERVED = 0x8000
}
 Enumeration of valid key mods (possibly OR'd together). More...
 
enum  MouseButton {
  MouseButton::LEFT, MouseButton::MIDDLE, MouseButton::RIGHT, MouseButton::X1,
  MouseButton::X2
}
 
enum  Scancode {
  Scancode::UNKNOWN = 0, Scancode::Usage page 0x07, Scancode::A = 4, Scancode::B = 5,
  Scancode::C = 6, Scancode::D = 7, Scancode::E = 8, Scancode::F = 9,
  Scancode::G = 10, Scancode::H = 11, Scancode::I = 12, Scancode::J = 13,
  Scancode::K = 14, Scancode::L = 15, Scancode::M = 16, Scancode::N = 17,
  Scancode::O = 18, Scancode::P = 19, Scancode::Q = 20, Scancode::R = 21,
  Scancode::S = 22, Scancode::T = 23, Scancode::U = 24, Scancode::V = 25,
  Scancode::W = 26, Scancode::X = 27, Scancode::Y = 28, Scancode::Z = 29,
  Scancode::ALPHANUMERIC_1 = 30, Scancode::ALPHANUMERIC_2 = 31, Scancode::ALPHANUMERIC_3 = 32, Scancode::ALPHANUMERIC_4 = 33,
  Scancode::ALPHANUMERIC_5 = 34, Scancode::ALPHANUMERIC_6 = 35, Scancode::ALPHANUMERIC_7 = 36, Scancode::ALPHANUMERIC_8 = 37,
  Scancode::ALPHANUMERIC_9 = 38, Scancode::ALPHANUMERIC_0 = 39, Scancode::RETURN = 40, Scancode::ESCAPE = 41,
  Scancode::BACKSPACE = 42, Scancode::TAB = 43, Scancode::SPACE = 44, Scancode::MINUS = 45,
  Scancode::EQUALS = 46, Scancode::LEFTBRACKET = 47, Scancode::RIGHTBRACKET = 48, Scancode::BACKSLASH = 49,
  Scancode::NONUSHASH = 50, Scancode::SEMICOLON = 51, Scancode::APOSTROPHE = 52, Scancode::GRAVE = 53,
  Scancode::COMMA = 54, Scancode::PERIOD = 55, Scancode::SLASH = 56, Scancode::CAPSLOCK = 57,
  Scancode::F1 = 58, Scancode::F2 = 59, Scancode::F3 = 60, Scancode::F4 = 61,
  Scancode::F5 = 62, Scancode::F6 = 63, Scancode::F7 = 64, Scancode::F8 = 65,
  Scancode::F9 = 66, Scancode::F10 = 67, Scancode::F11 = 68, Scancode::F12 = 69,
  Scancode::PRINTSCREEN = 70, Scancode::SCROLLLOCK = 71, Scancode::PAUSE = 72, Scancode::INSERT = 73,
  Scancode::HOME = 74, Scancode::PAGEUP = 75, Scancode::DELETE = 76, Scancode::END = 77,
  Scancode::PAGEDOWN = 78, Scancode::RIGHT = 79, Scancode::LEFT = 80, Scancode::DOWN = 81,
  Scancode::UP = 82, Scancode::NUMLOCKCLEAR = 83, Scancode::NUMPAD_DIVIDE = 84, Scancode::NUMPAD_MULTIPLY = 85,
  Scancode::NUMPAD_MINUS = 86, Scancode::NUMPAD_PLUS = 87, Scancode::NUMPAD_ENTER = 88, Scancode::NUMPAD_1 = 89,
  Scancode::NUMPAD_2 = 90, Scancode::NUMPAD_3 = 91, Scancode::NUMPAD_4 = 92, Scancode::NUMPAD_5 = 93,
  Scancode::NUMPAD_6 = 94, Scancode::NUMPAD_7 = 95, Scancode::NUMPAD_8 = 96, Scancode::NUMPAD_9 = 97,
  Scancode::NUMPAD_0 = 98, Scancode::NUMPAD_PERIOD = 99, Scancode::NONUSBACKSLASH = 100, Scancode::APPLICATION = 101,
  Scancode::POWER = 102, Scancode::NUMPAD_EQUALS = 103, Scancode::F13 = 104, Scancode::F14 = 105,
  Scancode::F15 = 106, Scancode::F16 = 107, Scancode::F17 = 108, Scancode::F18 = 109,
  Scancode::F19 = 110, Scancode::F20 = 111, Scancode::F21 = 112, Scancode::F22 = 113,
  Scancode::F23 = 114, Scancode::F24 = 115, Scancode::EXECUTE = 116, Scancode::HELP = 117,
  Scancode::MENU = 118, Scancode::SELECT = 119, Scancode::STOP = 120, Scancode::AGAIN = 121,
  Scancode::UNDO = 122, Scancode::CUT = 123, Scancode::COPY = 124, Scancode::PASTE = 125,
  Scancode::FIND = 126, Scancode::MUTE = 127, Scancode::VOLUMEUP = 128, Scancode::VOLUMEDOWN = 129,
  Scancode::NUMPAD_COMMA = 133, Scancode::NUMPAD_EQUALSAS400 = 134, Scancode::INTERNATIONAL1 = 135, Scancode::INTERNATIONAL2 = 136,
  Scancode::INTERNATIONAL3 = 137, Scancode::INTERNATIONAL4 = 138, Scancode::INTERNATIONAL5 = 139, Scancode::INTERNATIONAL6 = 140,
  Scancode::INTERNATIONAL7 = 141, Scancode::INTERNATIONAL8 = 142, Scancode::INTERNATIONAL9 = 143, Scancode::LANG1 = 144,
  Scancode::LANG2 = 145, Scancode::LANG3 = 146, Scancode::LANG4 = 147, Scancode::LANG5 = 148,
  Scancode::LANG6 = 149, Scancode::LANG7 = 150, Scancode::LANG8 = 151, Scancode::LANG9 = 152,
  Scancode::ALTERASE = 153, Scancode::SYSREQ = 154, Scancode::CANCEL = 155, Scancode::CLEAR = 156,
  Scancode::PRIOR = 157, Scancode::RETURN2 = 158, Scancode::SEPARATOR = 159, Scancode::OUT = 160,
  Scancode::OPER = 161, Scancode::CLEARAGAIN = 162, Scancode::CRSEL = 163, Scancode::EXSEL = 164,
  Scancode::NUMPAD_00 = 176, Scancode::NUMPAD_000 = 177, Scancode::THOUSANDSSEPARATOR = 178, Scancode::DECIMALSEPARATOR = 179,
  Scancode::CURRENCYUNIT = 180, Scancode::CURRENCYSUBUNIT = 181, Scancode::NUMPAD_LEFTPAREN = 182, Scancode::NUMPAD_RIGHTPAREN = 183,
  Scancode::NUMPAD_LEFTBRACE = 184, Scancode::NUMPAD_RIGHTBRACE = 185, Scancode::NUMPAD_TAB = 186, Scancode::NUMPAD_BACKSPACE = 187,
  Scancode::NUMPAD_A = 188, Scancode::NUMPAD_B = 189, Scancode::NUMPAD_C = 190, Scancode::NUMPAD_D = 191,
  Scancode::NUMPAD_E = 192, Scancode::NUMPAD_F = 193, Scancode::NUMPAD_XOR = 194, Scancode::NUMPAD_POWER = 195,
  Scancode::NUMPAD_PERCENT = 196, Scancode::NUMPAD_LESS = 197, Scancode::NUMPAD_GREATER = 198, Scancode::NUMPAD_AMPERSAND = 199,
  Scancode::NUMPAD_DBLAMPERSAND = 200, Scancode::NUMPAD_VERTICALBAR = 201, Scancode::NUMPAD_DBLVERTICALBAR = 202, Scancode::NUMPAD_COLON = 203,
  Scancode::NUMPAD_HASH = 204, Scancode::NUMPAD_SPACE = 205, Scancode::NUMPAD_AT = 206, Scancode::NUMPAD_EXCLAM = 207,
  Scancode::NUMPAD_MEMSTORE = 208, Scancode::NUMPAD_MEMRECALL = 209, Scancode::NUMPAD_MEMCLEAR = 210, Scancode::NUMPAD_MEMADD = 211,
  Scancode::NUMPAD_MEMSUBTRACT = 212, Scancode::NUMPAD_MEMMULTIPLY = 213, Scancode::NUMPAD_MEMDIVIDE = 214, Scancode::NUMPAD_PLUSMINUS = 215,
  Scancode::NUMPAD_CLEAR = 216, Scancode::NUMPAD_CLEARENTRY = 217, Scancode::NUMPAD_BINARY = 218, Scancode::NUMPAD_OCTAL = 219,
  Scancode::NUMPAD_DECIMAL = 220, Scancode::NUMPAD_HEXADECIMAL = 221, Scancode::LCTRL = 224, Scancode::LSHIFT = 225,
  Scancode::LALT = 226, Scancode::LGUI = 227, Scancode::RCTRL = 228, Scancode::RSHIFT = 229,
  Scancode::RALT = 230, Scancode::RGUI = 231, Scancode::MODE = 257, Scancode::Usage page 0x0C,
  Scancode::AUDIONEXT = 258, Scancode::AUDIOPREV = 259, Scancode::AUDIOSTOP = 260, Scancode::AUDIOPLAY = 261,
  Scancode::AUDIOMUTE = 262, Scancode::MEDIASELECT = 263, Scancode::WWW = 264, Scancode::MAIL = 265,
  Scancode::CALCULATOR = 266, Scancode::COMPUTER = 267, Scancode::AC_SEARCH = 268, Scancode::AC_HOME = 269,
  Scancode::AC_BACK = 270, Scancode::AC_FORWARD = 271, Scancode::AC_STOP = 272, Scancode::AC_REFRESH = 273,
  Scancode::AC_BOOKMARKS = 274, Scancode::Walther keys, Scancode::BRIGHTNESSDOWN = 275, Scancode::BRIGHTNESSUP = 276,
  Scancode::DISPLAYSWITCH = 277, Scancode::KBDILLUMTOGGLE = 278, Scancode::KBDILLUMDOWN = 279, Scancode::KBDILLUMUP = 280,
  Scancode::EJECT = 281, Scancode::SLEEP = 282, Scancode::APP1 = 283, Scancode::APP2 = 284,
  Scancode::SDL_NUM_SCANCODES = 512
}
 The SDL keyboard scancode representation. More...
 

Functions

Scancode CreateScancodeFromKeycode (const Keycode &)
 
Keycode CreateKeycodeFromScancode (const Scancode &)
 
bool operator& (const Keymod &left, const Keymod &right)
 
bool Initialize (Manager *manager)
 Initializes the module with the given Manager. More...
 
void Release ()
 Releases the module, disabling it. More...
 
Managermanager ()
 Getter for the manager of the module. More...
 

Variables

ENUMCLASS Keycode
 
ENUMCLASS Scancode
 
ENUMCLASS Keymod
 
ENUMCLASS MouseButton
 

Enumeration Type Documentation

enum ugdk::input::Keycode
strong

The SDL virtual key representation.

Values of this type are used to represent keyboard keys using the current layout of the keyboard. These values include Unicode values representing the unmodified character that would be generated by pressing the key, or an * constant for those keys that do not generate characters.

Enumerator
UNKNOWN 
RETURN 
ESCAPE 
BACKSPACE 
TAB 
SPACE 
EXCLAIM 
QUOTEDBL 
HASH 
PERCENT 
DOLLAR 
AMPERSAND 
QUOTE 
LEFTPAREN 
RIGHTPAREN 
ASTERISK 
PLUS 
COMMA 
MINUS 
PERIOD 
SLASH 
ALPHANUMERIC_0 
ALPHANUMERIC_1 
ALPHANUMERIC_2 
ALPHANUMERIC_3 
ALPHANUMERIC_4 
ALPHANUMERIC_5 
ALPHANUMERIC_6 
ALPHANUMERIC_7 
ALPHANUMERIC_8 
ALPHANUMERIC_9 
COLON 
SEMICOLON 
LESS 
EQUALS 
GREATER 
QUESTION 
AT 
LEFTBRACKET 
BACKSLASH 
RIGHTBRACKET 
CARET 
UNDERSCORE 
BACKQUOTE 
CAPSLOCK 
F1 
F2 
F3 
F4 
F5 
F6 
F7 
F8 
F9 
F10 
F11 
F12 
PRINTSCREEN 
SCROLLLOCK 
PAUSE 
INSERT 
HOME 
PAGEUP 
DELETE 
END 
PAGEDOWN 
RIGHT 
LEFT 
DOWN 
UP 
NUMLOCKCLEAR 
NUMPAD_DIVIDE 
NUMPAD_MULTIPLY 
NUMPAD_MINUS 
NUMPAD_PLUS 
NUMPAD_ENTER 
NUMPAD_1 
NUMPAD_2 
NUMPAD_3 
NUMPAD_4 
NUMPAD_5 
NUMPAD_6 
NUMPAD_7 
NUMPAD_8 
NUMPAD_9 
NUMPAD_0 
NUMPAD_PERIOD 
APPLICATION 
POWER 
NUMPAD_EQUALS 
F13 
F14 
F15 
F16 
F17 
F18 
F19 
F20 
F21 
F22 
F23 
F24 
EXECUTE 
HELP 
MENU 
SELECT 
STOP 
AGAIN 
UNDO 
CUT 
COPY 
PASTE 
FIND 
MUTE 
VOLUMEUP 
VOLUMEDOWN 
NUMPAD_COMMA 
NUMPAD_EQUALSAS400 
ALTERASE 
SYSREQ 
CANCEL 
CLEAR 
PRIOR 
RETURN2 
SEPARATOR 
OUT 
OPER 
CLEARAGAIN 
CRSEL 
EXSEL 
NUMPAD_00 
NUMPAD_000 
THOUSANDSSEPARATOR 
DECIMALSEPARATOR 
CURRENCYUNIT 
CURRENCYSUBUNIT 
NUMPAD_LEFTPAREN 
NUMPAD_RIGHTPAREN 
NUMPAD_LEFTBRACE 
NUMPAD_RIGHTBRACE 
NUMPAD_TAB 
NUMPAD_BACKSPACE 
NUMPAD_A 
NUMPAD_B 
NUMPAD_C 
NUMPAD_D 
NUMPAD_E 
NUMPAD_F 
NUMPAD_XOR 
NUMPAD_POWER 
NUMPAD_PERCENT 
NUMPAD_LESS 
NUMPAD_GREATER 
NUMPAD_AMPERSAND 
NUMPAD_DBLAMPERSAND 
NUMPAD_VERTICALBAR 
NUMPAD_DBLVERTICALBAR 
NUMPAD_COLON 
NUMPAD_HASH 
NUMPAD_SPACE 
NUMPAD_AT 
NUMPAD_EXCLAM 
NUMPAD_MEMSTORE 
NUMPAD_MEMRECALL 
NUMPAD_MEMCLEAR 
NUMPAD_MEMADD 
NUMPAD_MEMSUBTRACT 
NUMPAD_MEMMULTIPLY 
NUMPAD_MEMDIVIDE 
NUMPAD_PLUSMINUS 
NUMPAD_CLEAR 
NUMPAD_CLEARENTRY 
NUMPAD_BINARY 
NUMPAD_OCTAL 
NUMPAD_DECIMAL 
NUMPAD_HEXADECIMAL 
LCTRL 
LSHIFT 
LALT 
LGUI 
RCTRL 
RSHIFT 
RALT 
RGUI 
MODE 
AUDIONEXT 
AUDIOPREV 
AUDIOSTOP 
AUDIOPLAY 
AUDIOMUTE 
MEDIASELECT 
WWW 
MAIL 
CALCULATOR 
COMPUTER 
AC_SEARCH 
AC_HOME 
AC_BACK 
AC_FORWARD 
AC_STOP 
AC_REFRESH 
AC_BOOKMARKS 
BRIGHTNESSDOWN 
BRIGHTNESSUP 
DISPLAYSWITCH 
KBDILLUMTOGGLE 
KBDILLUMDOWN 
KBDILLUMUP 
EJECT 
SLEEP 
enum ugdk::input::Keymod
strong

Enumeration of valid key mods (possibly OR'd together).

Enumerator
NONE 
LSHIFT 
RSHIFT 
SHIFT 
LCTRL 
RCTRL 
CTRL 
LALT 
RALT 
ALT 
LGUI 
RGUI 
GUI 
NUM 
CAPS 
MODE 
RESERVED 
Enumerator
LEFT 
MIDDLE 
RIGHT 
X1 
X2 
enum ugdk::input::Scancode
strong

The SDL keyboard scancode representation.

Values of this type are used to represent keyboard keys, among other places in the key.keysym.scancode field of the SDL_Event structure.

The values in this enumeration are based on the USB usage page standard: http://www.usb.org/developers/devclass_docs/Hut1_12v2.pdf

Enumerator
UNKNOWN 
Usage page 0x07 
ALPHANUMERIC_1 
ALPHANUMERIC_2 
ALPHANUMERIC_3 
ALPHANUMERIC_4 
ALPHANUMERIC_5 
ALPHANUMERIC_6 
ALPHANUMERIC_7 
ALPHANUMERIC_8 
ALPHANUMERIC_9 
ALPHANUMERIC_0 
RETURN 
ESCAPE 
BACKSPACE 
TAB 
SPACE 
MINUS 
EQUALS 
LEFTBRACKET 
RIGHTBRACKET 
BACKSLASH 

Located at the lower left of the return key on ISO keyboards and at the right end of the QWERTY row on ANSI keyboards. Produces REVERSE SOLIDUS (backslash) and VERTICAL LINE in a US layout, REVERSE SOLIDUS and VERTICAL LINE in a UK Mac layout, NUMBER SIGN and TILDE in a UK Windows layout, DOLLAR SIGN and POUND SIGN in a Swiss German layout, NUMBER SIGN and APOSTROPHE in a German layout, GRAVE ACCENT and POUND SIGN in a French Mac layout, and ASTERISK and MICRO SIGN in a French Windows layout.

NONUSHASH 

ISO USB keyboards actually use this code instead of 49 for the same key, but all OSes I've seen treat the two codes identically. So, as an implementor, unless your keyboard generates both of those codes and your OS treats them differently, you should generate BACKSLASH instead of this code. As a user, you should not rely on this code because SDL will never generate it with most (all?) keyboards.

SEMICOLON 
APOSTROPHE 
GRAVE 

Located in the top left corner (on both ANSI and ISO keyboards). Produces GRAVE ACCENT and TILDE in a US Windows layout and in US and UK Mac layouts on ANSI keyboards, GRAVE ACCENT and NOT SIGN in a UK Windows layout, SECTION SIGN and PLUS-MINUS SIGN in US and UK Mac layouts on ISO keyboards, SECTION SIGN and DEGREE SIGN in a Swiss German layout (Mac: only on ISO keyboards), CIRCUMFLEX ACCENT and DEGREE SIGN in a German layout (Mac: only on ISO keyboards), SUPERSCRIPT TWO and TILDE in a French Windows layout, COMMERCIAL AT and NUMBER SIGN in a French Mac layout on ISO keyboards, and LESS-THAN SIGN and GREATER-THAN SIGN in a Swiss German, German, or French Mac layout on ANSI keyboards.

COMMA 
PERIOD 
SLASH 
CAPSLOCK 
F1 
F2 
F3 
F4 
F5 
F6 
F7 
F8 
F9 
F10 
F11 
F12 
PRINTSCREEN 
SCROLLLOCK 
PAUSE 
INSERT 

insert on PC, help on some Mac keyboards (but does send code 73, not 117)

HOME 
PAGEUP 
DELETE 
END 
PAGEDOWN 
RIGHT 
LEFT 
DOWN 
UP 
NUMLOCKCLEAR 

num lock on PC, clear on Mac keyboards

NUMPAD_DIVIDE 
NUMPAD_MULTIPLY 
NUMPAD_MINUS 
NUMPAD_PLUS 
NUMPAD_ENTER 
NUMPAD_1 
NUMPAD_2 
NUMPAD_3 
NUMPAD_4 
NUMPAD_5 
NUMPAD_6 
NUMPAD_7 
NUMPAD_8 
NUMPAD_9 
NUMPAD_0 
NUMPAD_PERIOD 
NONUSBACKSLASH 

This is the additional key that ISO keyboards have over ANSI ones, located between left shift and Y. Produces GRAVE ACCENT and TILDE in a US or UK Mac layout, REVERSE SOLIDUS (backslash) and VERTICAL LINE in a US or UK Windows layout, and LESS-THAN SIGN and GREATER-THAN SIGN in a Swiss German, German, or French layout.

APPLICATION 

windows contextual menu, compose

POWER 

The USB document says this is a status flag, not a physical key - but some Mac keyboards do have a power key.

NUMPAD_EQUALS 
F13 
F14 
F15 
F16 
F17 
F18 
F19 
F20 
F21 
F22 
F23 
F24 
EXECUTE 
HELP 
MENU 

Android Menu Button

SELECT 
STOP 
AGAIN 

redo

UNDO 
CUT 
COPY 
PASTE 
FIND 
MUTE 
VOLUMEUP 
VOLUMEDOWN 
NUMPAD_COMMA 
NUMPAD_EQUALSAS400 
INTERNATIONAL1 

used on Asian keyboards, see footnotes in USB doc

INTERNATIONAL2 
INTERNATIONAL3 

Yen

INTERNATIONAL4 
INTERNATIONAL5 
INTERNATIONAL6 
INTERNATIONAL7 
INTERNATIONAL8 
INTERNATIONAL9 
LANG1 

Hangul/English toggle

LANG2 

Hanja conversion

LANG3 

Katakana

LANG4 

Hiragana

LANG5 

Zenkaku/Hankaku

LANG6 

reserved

LANG7 

reserved

LANG8 

reserved

LANG9 

reserved

ALTERASE 

Erase-Eaze

SYSREQ 
CANCEL 
CLEAR 
PRIOR 
RETURN2 
SEPARATOR 
OUT 
OPER 
CLEARAGAIN 
CRSEL 
EXSEL 
NUMPAD_00 
NUMPAD_000 
THOUSANDSSEPARATOR 
DECIMALSEPARATOR 
CURRENCYUNIT 
CURRENCYSUBUNIT 
NUMPAD_LEFTPAREN 
NUMPAD_RIGHTPAREN 
NUMPAD_LEFTBRACE 
NUMPAD_RIGHTBRACE 
NUMPAD_TAB 
NUMPAD_BACKSPACE 
NUMPAD_A 
NUMPAD_B 
NUMPAD_C 
NUMPAD_D 
NUMPAD_E 
NUMPAD_F 
NUMPAD_XOR 
NUMPAD_POWER 
NUMPAD_PERCENT 
NUMPAD_LESS 
NUMPAD_GREATER 
NUMPAD_AMPERSAND 
NUMPAD_DBLAMPERSAND 
NUMPAD_VERTICALBAR 
NUMPAD_DBLVERTICALBAR 
NUMPAD_COLON 
NUMPAD_HASH 
NUMPAD_SPACE 
NUMPAD_AT 
NUMPAD_EXCLAM 
NUMPAD_MEMSTORE 
NUMPAD_MEMRECALL 
NUMPAD_MEMCLEAR 
NUMPAD_MEMADD 
NUMPAD_MEMSUBTRACT 
NUMPAD_MEMMULTIPLY 
NUMPAD_MEMDIVIDE 
NUMPAD_PLUSMINUS 
NUMPAD_CLEAR 
NUMPAD_CLEARENTRY 
NUMPAD_BINARY 
NUMPAD_OCTAL 
NUMPAD_DECIMAL 
NUMPAD_HEXADECIMAL 
LCTRL 
LSHIFT 
LALT 

alt, option

LGUI 

windows, command (apple), meta

RCTRL 
RSHIFT 
RALT 

alt gr, option

RGUI 

windows, command (apple), meta

MODE 

I'm not sure if this is really not covered by any of the above, but since there's a special KMOD_MODE for it I'm adding it here

Usage page 0x0C 
AUDIONEXT 
AUDIOPREV 
AUDIOSTOP 
AUDIOPLAY 
AUDIOMUTE 
MEDIASELECT 
WWW 
MAIL 
CALCULATOR 
COMPUTER 
AC_SEARCH 
AC_HOME 
AC_BACK 

Android Back Button

AC_FORWARD 
AC_STOP 
AC_REFRESH 
AC_BOOKMARKS 
Walther keys 
BRIGHTNESSDOWN 
BRIGHTNESSUP 
DISPLAYSWITCH 

display mirroring/dual display switch, video mode switch

KBDILLUMTOGGLE 
KBDILLUMDOWN 
KBDILLUMUP 
EJECT 
SLEEP 
APP1 
APP2 
SDL_NUM_SCANCODES 

not a key, just marks the number of scancodes for array bounds

Function Documentation

Keycode ugdk::input::CreateKeycodeFromScancode ( const Scancode &  )
Scancode ugdk::input::CreateScancodeFromKeycode ( const Keycode &  )
bool ugdk::input::Initialize ( Manager *  manager)

Initializes the module with the given Manager.

Manager* ugdk::input::manager ( )

Getter for the manager of the module.

bool ugdk::input::operator& ( const Keymod &  left,
const Keymod &  right 
)
inline
void ugdk::input::Release ( )

Releases the module, disabling it.

Variable Documentation