from enum import IntEnum

from sdl2._sdl2 import lib


class ScanCode(IntEnum):
    n0 = lib.SDL_SCANCODE_0
    n1 = lib.SDL_SCANCODE_1
    n2 = lib.SDL_SCANCODE_2
    n3 = lib.SDL_SCANCODE_3
    n4 = lib.SDL_SCANCODE_4
    n5 = lib.SDL_SCANCODE_5
    n6 = lib.SDL_SCANCODE_6
    n7 = lib.SDL_SCANCODE_7
    n8 = lib.SDL_SCANCODE_8
    n9 = lib.SDL_SCANCODE_9
    a = lib.SDL_SCANCODE_A
    ac_back = lib.SDL_SCANCODE_AC_BACK
    ac_bookmarks = lib.SDL_SCANCODE_AC_BOOKMARKS
    ac_forward = lib.SDL_SCANCODE_AC_FORWARD
    ac_home = lib.SDL_SCANCODE_AC_HOME
    ac_refresh = lib.SDL_SCANCODE_AC_REFRESH
    ac_search = lib.SDL_SCANCODE_AC_SEARCH
    ac_stop = lib.SDL_SCANCODE_AC_STOP
    again = lib.SDL_SCANCODE_AGAIN
    alterase = lib.SDL_SCANCODE_ALTERASE
    apostrophe = lib.SDL_SCANCODE_APOSTROPHE
    app1 = lib.SDL_SCANCODE_APP1
    app2 = lib.SDL_SCANCODE_APP2
    application = lib.SDL_SCANCODE_APPLICATION
    audiomute = lib.SDL_SCANCODE_AUDIOMUTE
    audionext = lib.SDL_SCANCODE_AUDIONEXT
    audioplay = lib.SDL_SCANCODE_AUDIOPLAY
    audioprev = lib.SDL_SCANCODE_AUDIOPREV
    audiostop = lib.SDL_SCANCODE_AUDIOSTOP
    b = lib.SDL_SCANCODE_B
    backslash = lib.SDL_SCANCODE_BACKSLASH
    backspace = lib.SDL_SCANCODE_BACKSPACE
    brightnessdown = lib.SDL_SCANCODE_BRIGHTNESSDOWN
    brightnessup = lib.SDL_SCANCODE_BRIGHTNESSUP
    c = lib.SDL_SCANCODE_C
    calculator = lib.SDL_SCANCODE_CALCULATOR
    cancel = lib.SDL_SCANCODE_CANCEL
    capslock = lib.SDL_SCANCODE_CAPSLOCK
    clear = lib.SDL_SCANCODE_CLEAR
    clearagain = lib.SDL_SCANCODE_CLEARAGAIN
    comma = lib.SDL_SCANCODE_COMMA
    computer = lib.SDL_SCANCODE_COMPUTER
    copy = lib.SDL_SCANCODE_COPY
    crsel = lib.SDL_SCANCODE_CRSEL
    currencysubunit = lib.SDL_SCANCODE_CURRENCYSUBUNIT
    currencyunit = lib.SDL_SCANCODE_CURRENCYUNIT
    cut = lib.SDL_SCANCODE_CUT
    d = lib.SDL_SCANCODE_D
    decimalseparator = lib.SDL_SCANCODE_DECIMALSEPARATOR
    delete = lib.SDL_SCANCODE_DELETE
    displayswitch = lib.SDL_SCANCODE_DISPLAYSWITCH
    down = lib.SDL_SCANCODE_DOWN
    e = lib.SDL_SCANCODE_E
    eject = lib.SDL_SCANCODE_EJECT
    end = lib.SDL_SCANCODE_END
    equals = lib.SDL_SCANCODE_EQUALS
    escape = lib.SDL_SCANCODE_ESCAPE
    execute = lib.SDL_SCANCODE_EXECUTE
    exsel = lib.SDL_SCANCODE_EXSEL
    f = lib.SDL_SCANCODE_F
    f1 = lib.SDL_SCANCODE_F1
    f10 = lib.SDL_SCANCODE_F10
    f11 = lib.SDL_SCANCODE_F11
    f12 = lib.SDL_SCANCODE_F12
    f13 = lib.SDL_SCANCODE_F13
    f14 = lib.SDL_SCANCODE_F14
    f15 = lib.SDL_SCANCODE_F15
    f16 = lib.SDL_SCANCODE_F16
    f17 = lib.SDL_SCANCODE_F17
    f18 = lib.SDL_SCANCODE_F18
    f19 = lib.SDL_SCANCODE_F19
    f2 = lib.SDL_SCANCODE_F2
    f20 = lib.SDL_SCANCODE_F20
    f21 = lib.SDL_SCANCODE_F21
    f22 = lib.SDL_SCANCODE_F22
    f23 = lib.SDL_SCANCODE_F23
    f24 = lib.SDL_SCANCODE_F24
    f3 = lib.SDL_SCANCODE_F3
    f4 = lib.SDL_SCANCODE_F4
    f5 = lib.SDL_SCANCODE_F5
    f6 = lib.SDL_SCANCODE_F6
    f7 = lib.SDL_SCANCODE_F7
    f8 = lib.SDL_SCANCODE_F8
    f9 = lib.SDL_SCANCODE_F9
    find = lib.SDL_SCANCODE_FIND
    g = lib.SDL_SCANCODE_G
    grave = lib.SDL_SCANCODE_GRAVE
    h = lib.SDL_SCANCODE_H
    help = lib.SDL_SCANCODE_HELP
    home = lib.SDL_SCANCODE_HOME
    i = lib.SDL_SCANCODE_I
    insert = lib.SDL_SCANCODE_INSERT
    international1 = lib.SDL_SCANCODE_INTERNATIONAL1
    international2 = lib.SDL_SCANCODE_INTERNATIONAL2
    international3 = lib.SDL_SCANCODE_INTERNATIONAL3
    international4 = lib.SDL_SCANCODE_INTERNATIONAL4
    international5 = lib.SDL_SCANCODE_INTERNATIONAL5
    international6 = lib.SDL_SCANCODE_INTERNATIONAL6
    international7 = lib.SDL_SCANCODE_INTERNATIONAL7
    international8 = lib.SDL_SCANCODE_INTERNATIONAL8
    international9 = lib.SDL_SCANCODE_INTERNATIONAL9
    j = lib.SDL_SCANCODE_J
    k = lib.SDL_SCANCODE_K
    kbdillumdown = lib.SDL_SCANCODE_KBDILLUMDOWN
    kbdillumtoggle = lib.SDL_SCANCODE_KBDILLUMTOGGLE
    kbdillumup = lib.SDL_SCANCODE_KBDILLUMUP
    kp_0 = lib.SDL_SCANCODE_KP_0
    kp_00 = lib.SDL_SCANCODE_KP_00
    kp_000 = lib.SDL_SCANCODE_KP_000
    kp_1 = lib.SDL_SCANCODE_KP_1
    kp_2 = lib.SDL_SCANCODE_KP_2
    kp_3 = lib.SDL_SCANCODE_KP_3
    kp_4 = lib.SDL_SCANCODE_KP_4
    kp_5 = lib.SDL_SCANCODE_KP_5
    kp_6 = lib.SDL_SCANCODE_KP_6
    kp_7 = lib.SDL_SCANCODE_KP_7
    kp_8 = lib.SDL_SCANCODE_KP_8
    kp_9 = lib.SDL_SCANCODE_KP_9
    kp_a = lib.SDL_SCANCODE_KP_A
    kp_ampersand = lib.SDL_SCANCODE_KP_AMPERSAND
    kp_at = lib.SDL_SCANCODE_KP_AT
    kp_b = lib.SDL_SCANCODE_KP_B
    kp_backspace = lib.SDL_SCANCODE_KP_BACKSPACE
    kp_binary = lib.SDL_SCANCODE_KP_BINARY
    kp_c = lib.SDL_SCANCODE_KP_C
    kp_clear = lib.SDL_SCANCODE_KP_CLEAR
    kp_clearentry = lib.SDL_SCANCODE_KP_CLEARENTRY
    kp_colon = lib.SDL_SCANCODE_KP_COLON
    kp_comma = lib.SDL_SCANCODE_KP_COMMA
    kp_d = lib.SDL_SCANCODE_KP_D
    kp_dblampersand = lib.SDL_SCANCODE_KP_DBLAMPERSAND
    kp_dblverticalbar = lib.SDL_SCANCODE_KP_DBLVERTICALBAR
    kp_decimal = lib.SDL_SCANCODE_KP_DECIMAL
    kp_divide = lib.SDL_SCANCODE_KP_DIVIDE
    kp_e = lib.SDL_SCANCODE_KP_E
    kp_enter = lib.SDL_SCANCODE_KP_ENTER
    kp_equals = lib.SDL_SCANCODE_KP_EQUALS
    kp_equalsas400 = lib.SDL_SCANCODE_KP_EQUALSAS400
    kp_exclam = lib.SDL_SCANCODE_KP_EXCLAM
    kp_f = lib.SDL_SCANCODE_KP_F
    kp_greater = lib.SDL_SCANCODE_KP_GREATER
    kp_hash = lib.SDL_SCANCODE_KP_HASH
    kp_hexadecimal = lib.SDL_SCANCODE_KP_HEXADECIMAL
    kp_leftbrace = lib.SDL_SCANCODE_KP_LEFTBRACE
    kp_leftparen = lib.SDL_SCANCODE_KP_LEFTPAREN
    kp_less = lib.SDL_SCANCODE_KP_LESS
    kp_memadd = lib.SDL_SCANCODE_KP_MEMADD
    kp_memclear = lib.SDL_SCANCODE_KP_MEMCLEAR
    kp_memdivide = lib.SDL_SCANCODE_KP_MEMDIVIDE
    kp_memmultiply = lib.SDL_SCANCODE_KP_MEMMULTIPLY
    kp_memrecall = lib.SDL_SCANCODE_KP_MEMRECALL
    kp_memstore = lib.SDL_SCANCODE_KP_MEMSTORE
    kp_memsubtract = lib.SDL_SCANCODE_KP_MEMSUBTRACT
    kp_minus = lib.SDL_SCANCODE_KP_MINUS
    kp_multiply = lib.SDL_SCANCODE_KP_MULTIPLY
    kp_octal = lib.SDL_SCANCODE_KP_OCTAL
    kp_percent = lib.SDL_SCANCODE_KP_PERCENT
    kp_period = lib.SDL_SCANCODE_KP_PERIOD
    kp_plus = lib.SDL_SCANCODE_KP_PLUS
    kp_plusminus = lib.SDL_SCANCODE_KP_PLUSMINUS
    kp_power = lib.SDL_SCANCODE_KP_POWER
    kp_rightbrace = lib.SDL_SCANCODE_KP_RIGHTBRACE
    kp_rightparen = lib.SDL_SCANCODE_KP_RIGHTPAREN
    kp_space = lib.SDL_SCANCODE_KP_SPACE
    kp_tab = lib.SDL_SCANCODE_KP_TAB
    kp_verticalbar = lib.SDL_SCANCODE_KP_VERTICALBAR
    kp_xor = lib.SDL_SCANCODE_KP_XOR
    l = lib.SDL_SCANCODE_L
    lalt = lib.SDL_SCANCODE_LALT
    lang1 = lib.SDL_SCANCODE_LANG1
    lang2 = lib.SDL_SCANCODE_LANG2
    lang3 = lib.SDL_SCANCODE_LANG3
    lang4 = lib.SDL_SCANCODE_LANG4
    lang5 = lib.SDL_SCANCODE_LANG5
    lang6 = lib.SDL_SCANCODE_LANG6
    lang7 = lib.SDL_SCANCODE_LANG7
    lang8 = lib.SDL_SCANCODE_LANG8
    lang9 = lib.SDL_SCANCODE_LANG9
    lctrl = lib.SDL_SCANCODE_LCTRL
    left = lib.SDL_SCANCODE_LEFT
    leftbracket = lib.SDL_SCANCODE_LEFTBRACKET
    lgui = lib.SDL_SCANCODE_LGUI
    lshift = lib.SDL_SCANCODE_LSHIFT
    m = lib.SDL_SCANCODE_M
    mail = lib.SDL_SCANCODE_MAIL
    mediaselect = lib.SDL_SCANCODE_MEDIASELECT
    menu = lib.SDL_SCANCODE_MENU
    minus = lib.SDL_SCANCODE_MINUS
    mode = lib.SDL_SCANCODE_MODE
    mute = lib.SDL_SCANCODE_MUTE
    n = lib.SDL_SCANCODE_N
    nonusbackslash = lib.SDL_SCANCODE_NONUSBACKSLASH
    nonushash = lib.SDL_SCANCODE_NONUSHASH
    numlockclear = lib.SDL_SCANCODE_NUMLOCKCLEAR
    o = lib.SDL_SCANCODE_O
    oper = lib.SDL_SCANCODE_OPER
    out = lib.SDL_SCANCODE_OUT
    p = lib.SDL_SCANCODE_P
    pagedown = lib.SDL_SCANCODE_PAGEDOWN
    pageup = lib.SDL_SCANCODE_PAGEUP
    paste = lib.SDL_SCANCODE_PASTE
    pause = lib.SDL_SCANCODE_PAUSE
    period = lib.SDL_SCANCODE_PERIOD
    power = lib.SDL_SCANCODE_POWER
    printscreen = lib.SDL_SCANCODE_PRINTSCREEN
    prior = lib.SDL_SCANCODE_PRIOR
    q = lib.SDL_SCANCODE_Q
    r = lib.SDL_SCANCODE_R
    ralt = lib.SDL_SCANCODE_RALT
    rctrl = lib.SDL_SCANCODE_RCTRL
    return_ = lib.SDL_SCANCODE_RETURN
    return2 = lib.SDL_SCANCODE_RETURN2
    rgui = lib.SDL_SCANCODE_RGUI
    right = lib.SDL_SCANCODE_RIGHT
    rightbracket = lib.SDL_SCANCODE_RIGHTBRACKET
    rshift = lib.SDL_SCANCODE_RSHIFT
    s = lib.SDL_SCANCODE_S
    scrolllock = lib.SDL_SCANCODE_SCROLLLOCK
    select = lib.SDL_SCANCODE_SELECT
    semicolon = lib.SDL_SCANCODE_SEMICOLON
    separator = lib.SDL_SCANCODE_SEPARATOR
    slash = lib.SDL_SCANCODE_SLASH
    sleep = lib.SDL_SCANCODE_SLEEP
    space = lib.SDL_SCANCODE_SPACE
    stop = lib.SDL_SCANCODE_STOP
    sysreq = lib.SDL_SCANCODE_SYSREQ
    t = lib.SDL_SCANCODE_T
    tab = lib.SDL_SCANCODE_TAB
    thousandsseparator = lib.SDL_SCANCODE_THOUSANDSSEPARATOR
    u = lib.SDL_SCANCODE_U
    undo = lib.SDL_SCANCODE_UNDO
    unknown = lib.SDL_SCANCODE_UNKNOWN
    up = lib.SDL_SCANCODE_UP
    v = lib.SDL_SCANCODE_V
    volumedown = lib.SDL_SCANCODE_VOLUMEDOWN
    volumeup = lib.SDL_SCANCODE_VOLUMEUP
    w = lib.SDL_SCANCODE_W
    www = lib.SDL_SCANCODE_WWW
    x = lib.SDL_SCANCODE_X
    y = lib.SDL_SCANCODE_Y
    z = lib.SDL_SCANCODE_Z

