include/SDL_keycode.h
author Ryan C. Gordon <icculus@icculus.org>
Thu, 28 May 2015 01:54:52 -0400
changeset 9671 0e1f57b051f4
parent 9619 b94b6d0bff0f
child 9998 f67cf37e9cd4
permissions -rw-r--r--
Windows GetBasePath should use GetModuleFileNameExW() and check for overflows.

Apparently you might get strange paths from GetModuleFileName(), such as
short path names or UNC filenames, so this avoids that problem. Since you have
to tapdance with linking different libraries and defining macros depending on
what Windows you plan to target, we dynamically load the API we need, which
works on all versions of Windows (on Win7, it'll load a compatibility wrapper
for the newer API location).

What a mess.

This also now does the right thing if there isn't enough space to store the
path, looping with a larger allocated buffer each try.

Fixes Bugzilla #2435.
slouken@0
     1
/*
slouken@5535
     2
  Simple DirectMedia Layer
slouken@9619
     3
  Copyright (C) 1997-2015 Sam Lantinga <slouken@libsdl.org>
slouken@0
     4
slouken@5535
     5
  This software is provided 'as-is', without any express or implied
slouken@5535
     6
  warranty.  In no event will the authors be held liable for any damages
slouken@5535
     7
  arising from the use of this software.
slouken@0
     8
slouken@5535
     9
  Permission is granted to anyone to use this software for any purpose,
slouken@5535
    10
  including commercial applications, and to alter it and redistribute it
slouken@5535
    11
  freely, subject to the following restrictions:
slouken@0
    12
slouken@5535
    13
  1. The origin of this software must not be misrepresented; you must not
slouken@5535
    14
     claim that you wrote the original software. If you use this software
slouken@5535
    15
     in a product, an acknowledgment in the product documentation would be
slouken@5535
    16
     appreciated but is not required.
slouken@5535
    17
  2. Altered source versions must be plainly marked as such, and must not be
slouken@5535
    18
     misrepresented as being the original software.
slouken@5535
    19
  3. This notice may not be removed or altered from any source distribution.
slouken@0
    20
*/
slouken@0
    21
slouken@1895
    22
/**
slouken@5326
    23
 *  \file SDL_keycode.h
slouken@7191
    24
 *
slouken@3407
    25
 *  Defines constants which identify keyboard keys and modifiers.
slouken@1895
    26
 */
slouken@1895
    27
slouken@5326
    28
#ifndef _SDL_keycode_h
slouken@5326
    29
#define _SDL_keycode_h
slouken@0
    30
slouken@2268
    31
#include "SDL_stdinc.h"
slouken@2303
    32
#include "SDL_scancode.h"
slouken@2268
    33
slouken@1895
    34
/**
slouken@3407
    35
 *  \brief The SDL virtual key representation.
slouken@7191
    36
 *
slouken@3407
    37
 *  Values of this type are used to represent keyboard keys using the current
slouken@3407
    38
 *  layout of the keyboard.  These values include Unicode values representing
slouken@3407
    39
 *  the unmodified character that would be generated by pressing the key, or
slouken@3407
    40
 *  an SDLK_* constant for those keys that do not generate characters.
slouken@0
    41
 */
slouken@5220
    42
typedef Sint32 SDL_Keycode;
slouken@2268
    43
slouken@2303
    44
#define SDLK_SCANCODE_MASK (1<<30)
slouken@7191
    45
#define SDL_SCANCODE_TO_KEYCODE(X)  (X | SDLK_SCANCODE_MASK)
slouken@2268
    46
slouken@2303
    47
enum
slouken@2303
    48
{
slouken@2303
    49
    SDLK_UNKNOWN = 0,
slouken@2268
    50
slouken@2989
    51
    SDLK_RETURN = '\r',
slouken@2989
    52
    SDLK_ESCAPE = '\033',
slouken@2989
    53
    SDLK_BACKSPACE = '\b',
slouken@2989
    54
    SDLK_TAB = '\t',
slouken@2989
    55
    SDLK_SPACE = ' ',
slouken@3574
    56
    SDLK_EXCLAIM = '!',
slouken@3574
    57
    SDLK_QUOTEDBL = '"',
slouken@3574
    58
    SDLK_HASH = '#',
slouken@3574
    59
    SDLK_PERCENT = '%',
slouken@3574
    60
    SDLK_DOLLAR = '$',
slouken@3574
    61
    SDLK_AMPERSAND = '&',
slouken@3574
    62
    SDLK_QUOTE = '\'',
slouken@3574
    63
    SDLK_LEFTPAREN = '(',
slouken@3574
    64
    SDLK_RIGHTPAREN = ')',
slouken@3574
    65
    SDLK_ASTERISK = '*',
slouken@3574
    66
    SDLK_PLUS = '+',
slouken@3574
    67
    SDLK_COMMA = ',',
slouken@3574
    68
    SDLK_MINUS = '-',
slouken@3574
    69
    SDLK_PERIOD = '.',
slouken@3574
    70
    SDLK_SLASH = '/',
slouken@3560
    71
    SDLK_0 = '0',
slouken@3560
    72
    SDLK_1 = '1',
slouken@3560
    73
    SDLK_2 = '2',
slouken@3560
    74
    SDLK_3 = '3',
slouken@3560
    75
    SDLK_4 = '4',
slouken@3560
    76
    SDLK_5 = '5',
slouken@3560
    77
    SDLK_6 = '6',
slouken@3560
    78
    SDLK_7 = '7',
slouken@3560
    79
    SDLK_8 = '8',
slouken@3560
    80
    SDLK_9 = '9',
slouken@3574
    81
    SDLK_COLON = ':',
slouken@3574
    82
    SDLK_SEMICOLON = ';',
slouken@3574
    83
    SDLK_LESS = '<',
slouken@3574
    84
    SDLK_EQUALS = '=',
slouken@3574
    85
    SDLK_GREATER = '>',
slouken@3574
    86
    SDLK_QUESTION = '?',
slouken@3574
    87
    SDLK_AT = '@',
slouken@7191
    88
    /*
slouken@3574
    89
       Skip uppercase letters
slouken@3574
    90
     */
slouken@3574
    91
    SDLK_LEFTBRACKET = '[',
slouken@3574
    92
    SDLK_BACKSLASH = '\\',
slouken@3574
    93
    SDLK_RIGHTBRACKET = ']',
slouken@3574
    94
    SDLK_CARET = '^',
slouken@3574
    95
    SDLK_UNDERSCORE = '_',
slouken@3574
    96
    SDLK_BACKQUOTE = '`',
slouken@3560
    97
    SDLK_a = 'a',
slouken@3560
    98
    SDLK_b = 'b',
slouken@3560
    99
    SDLK_c = 'c',
slouken@3560
   100
    SDLK_d = 'd',
slouken@3560
   101
    SDLK_e = 'e',
slouken@3560
   102
    SDLK_f = 'f',
slouken@3560
   103
    SDLK_g = 'g',
slouken@3560
   104
    SDLK_h = 'h',
slouken@3560
   105
    SDLK_i = 'i',
slouken@3560
   106
    SDLK_j = 'j',
slouken@3560
   107
    SDLK_k = 'k',
slouken@3560
   108
    SDLK_l = 'l',
slouken@3560
   109
    SDLK_m = 'm',
slouken@3560
   110
    SDLK_n = 'n',
slouken@3560
   111
    SDLK_o = 'o',
slouken@3560
   112
    SDLK_p = 'p',
slouken@3560
   113
    SDLK_q = 'q',
slouken@3560
   114
    SDLK_r = 'r',
slouken@3560
   115
    SDLK_s = 's',
slouken@3560
   116
    SDLK_t = 't',
slouken@3560
   117
    SDLK_u = 'u',
slouken@3560
   118
    SDLK_v = 'v',
slouken@3560
   119
    SDLK_w = 'w',
slouken@3560
   120
    SDLK_x = 'x',
slouken@3560
   121
    SDLK_y = 'y',
slouken@3560
   122
    SDLK_z = 'z',
slouken@3560
   123
slouken@2303
   124
    SDLK_CAPSLOCK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CAPSLOCK),
slouken@0
   125
slouken@2303
   126
    SDLK_F1 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F1),
slouken@2303
   127
    SDLK_F2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F2),
slouken@2303
   128
    SDLK_F3 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F3),
slouken@2303
   129
    SDLK_F4 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F4),
slouken@2303
   130
    SDLK_F5 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F5),
slouken@2303
   131
    SDLK_F6 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F6),
slouken@2303
   132
    SDLK_F7 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F7),
slouken@2303
   133
    SDLK_F8 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F8),
slouken@2303
   134
    SDLK_F9 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F9),
slouken@2303
   135
    SDLK_F10 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F10),
slouken@2303
   136
    SDLK_F11 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F11),
slouken@2303
   137
    SDLK_F12 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F12),
slouken@0
   138
slouken@2303
   139
    SDLK_PRINTSCREEN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PRINTSCREEN),
slouken@2303
   140
    SDLK_SCROLLLOCK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SCROLLLOCK),
slouken@2303
   141
    SDLK_PAUSE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAUSE),
slouken@2303
   142
    SDLK_INSERT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_INSERT),
slouken@2303
   143
    SDLK_HOME = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_HOME),
slouken@2303
   144
    SDLK_PAGEUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEUP),
slouken@2989
   145
    SDLK_DELETE = '\177',
slouken@2303
   146
    SDLK_END = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_END),
slouken@2303
   147
    SDLK_PAGEDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEDOWN),
slouken@2303
   148
    SDLK_RIGHT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RIGHT),
slouken@2303
   149
    SDLK_LEFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LEFT),
slouken@2303
   150
    SDLK_DOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DOWN),
slouken@2303
   151
    SDLK_UP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_UP),
slouken@0
   152
slouken@2303
   153
    SDLK_NUMLOCKCLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_NUMLOCKCLEAR),
slouken@2303
   154
    SDLK_KP_DIVIDE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DIVIDE),
slouken@2303
   155
    SDLK_KP_MULTIPLY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MULTIPLY),
slouken@2303
   156
    SDLK_KP_MINUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MINUS),
slouken@2303
   157
    SDLK_KP_PLUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PLUS),
slouken@2303
   158
    SDLK_KP_ENTER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_ENTER),
slouken@2303
   159
    SDLK_KP_1 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_1),
slouken@2303
   160
    SDLK_KP_2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_2),
slouken@2303
   161
    SDLK_KP_3 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_3),
slouken@2303
   162
    SDLK_KP_4 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_4),
slouken@2303
   163
    SDLK_KP_5 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_5),
slouken@2303
   164
    SDLK_KP_6 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_6),
slouken@2303
   165
    SDLK_KP_7 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_7),
slouken@2303
   166
    SDLK_KP_8 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_8),
slouken@2303
   167
    SDLK_KP_9 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_9),
slouken@2303
   168
    SDLK_KP_0 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_0),
slouken@2303
   169
    SDLK_KP_PERIOD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PERIOD),
slouken@0
   170
slouken@2303
   171
    SDLK_APPLICATION = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APPLICATION),
slouken@2303
   172
    SDLK_POWER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_POWER),
slouken@2303
   173
    SDLK_KP_EQUALS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EQUALS),
slouken@2303
   174
    SDLK_F13 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F13),
slouken@2303
   175
    SDLK_F14 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F14),
slouken@2303
   176
    SDLK_F15 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F15),
slouken@2303
   177
    SDLK_F16 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F16),
slouken@2303
   178
    SDLK_F17 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F17),
slouken@2303
   179
    SDLK_F18 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F18),
slouken@2303
   180
    SDLK_F19 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F19),
slouken@2303
   181
    SDLK_F20 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F20),
slouken@2303
   182
    SDLK_F21 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F21),
slouken@2303
   183
    SDLK_F22 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F22),
slouken@2303
   184
    SDLK_F23 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F23),
slouken@2303
   185
    SDLK_F24 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F24),
slouken@2303
   186
    SDLK_EXECUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EXECUTE),
slouken@2303
   187
    SDLK_HELP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_HELP),
slouken@2303
   188
    SDLK_MENU = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MENU),
slouken@2303
   189
    SDLK_SELECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SELECT),
slouken@2303
   190
    SDLK_STOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_STOP),
slouken@2303
   191
    SDLK_AGAIN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AGAIN),
slouken@2303
   192
    SDLK_UNDO = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_UNDO),
slouken@2303
   193
    SDLK_CUT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CUT),
slouken@2303
   194
    SDLK_COPY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_COPY),
slouken@2303
   195
    SDLK_PASTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PASTE),
slouken@2303
   196
    SDLK_FIND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_FIND),
slouken@2303
   197
    SDLK_MUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MUTE),
slouken@2303
   198
    SDLK_VOLUMEUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_VOLUMEUP),
slouken@2303
   199
    SDLK_VOLUMEDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_VOLUMEDOWN),
slouken@2303
   200
    SDLK_KP_COMMA = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_COMMA),
slouken@2303
   201
    SDLK_KP_EQUALSAS400 =
slouken@2303
   202
        SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EQUALSAS400),
slouken@0
   203
slouken@2303
   204
    SDLK_ALTERASE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_ALTERASE),
slouken@2303
   205
    SDLK_SYSREQ = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SYSREQ),
slouken@2303
   206
    SDLK_CANCEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CANCEL),
slouken@2303
   207
    SDLK_CLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CLEAR),
slouken@2303
   208
    SDLK_PRIOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PRIOR),
slouken@2303
   209
    SDLK_RETURN2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RETURN2),
slouken@2303
   210
    SDLK_SEPARATOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SEPARATOR),
slouken@2303
   211
    SDLK_OUT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_OUT),
slouken@2303
   212
    SDLK_OPER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_OPER),
slouken@2303
   213
    SDLK_CLEARAGAIN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CLEARAGAIN),
slouken@2303
   214
    SDLK_CRSEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CRSEL),
slouken@2303
   215
    SDLK_EXSEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EXSEL),
slouken@2268
   216
slouken@2303
   217
    SDLK_KP_00 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_00),
slouken@2303
   218
    SDLK_KP_000 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_000),
slouken@2303
   219
    SDLK_THOUSANDSSEPARATOR =
slouken@2303
   220
        SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_THOUSANDSSEPARATOR),
slouken@2303
   221
    SDLK_DECIMALSEPARATOR =
slouken@2303
   222
        SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DECIMALSEPARATOR),
slouken@2303
   223
    SDLK_CURRENCYUNIT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CURRENCYUNIT),
slouken@2303
   224
    SDLK_CURRENCYSUBUNIT =
slouken@2303
   225
        SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CURRENCYSUBUNIT),
slouken@2303
   226
    SDLK_KP_LEFTPAREN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LEFTPAREN),
slouken@2303
   227
    SDLK_KP_RIGHTPAREN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_RIGHTPAREN),
slouken@2303
   228
    SDLK_KP_LEFTBRACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LEFTBRACE),
slouken@2303
   229
    SDLK_KP_RIGHTBRACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_RIGHTBRACE),
slouken@2303
   230
    SDLK_KP_TAB = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_TAB),
slouken@2303
   231
    SDLK_KP_BACKSPACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_BACKSPACE),
slouken@2303
   232
    SDLK_KP_A = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_A),
slouken@2303
   233
    SDLK_KP_B = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_B),
slouken@2303
   234
    SDLK_KP_C = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_C),
slouken@2303
   235
    SDLK_KP_D = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_D),
slouken@2303
   236
    SDLK_KP_E = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_E),
slouken@2303
   237
    SDLK_KP_F = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_F),
slouken@2303
   238
    SDLK_KP_XOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_XOR),
slouken@2303
   239
    SDLK_KP_POWER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_POWER),
slouken@2303
   240
    SDLK_KP_PERCENT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PERCENT),
slouken@2303
   241
    SDLK_KP_LESS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LESS),
slouken@2303
   242
    SDLK_KP_GREATER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_GREATER),
slouken@2303
   243
    SDLK_KP_AMPERSAND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_AMPERSAND),
slouken@2303
   244
    SDLK_KP_DBLAMPERSAND =
slouken@2303
   245
        SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DBLAMPERSAND),
slouken@2303
   246
    SDLK_KP_VERTICALBAR =
slouken@2303
   247
        SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_VERTICALBAR),
slouken@2303
   248
    SDLK_KP_DBLVERTICALBAR =
slouken@2303
   249
        SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DBLVERTICALBAR),
slouken@2303
   250
    SDLK_KP_COLON = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_COLON),
slouken@2303
   251
    SDLK_KP_HASH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_HASH),
slouken@2303
   252
    SDLK_KP_SPACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_SPACE),
slouken@2303
   253
    SDLK_KP_AT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_AT),
slouken@2303
   254
    SDLK_KP_EXCLAM = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EXCLAM),
slouken@2303
   255
    SDLK_KP_MEMSTORE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMSTORE),
slouken@2303
   256
    SDLK_KP_MEMRECALL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMRECALL),
slouken@2303
   257
    SDLK_KP_MEMCLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMCLEAR),
slouken@2303
   258
    SDLK_KP_MEMADD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMADD),
slouken@2303
   259
    SDLK_KP_MEMSUBTRACT =
slouken@2303
   260
        SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMSUBTRACT),
slouken@2303
   261
    SDLK_KP_MEMMULTIPLY =
slouken@2303
   262
        SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMMULTIPLY),
slouken@2303
   263
    SDLK_KP_MEMDIVIDE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMDIVIDE),
slouken@2303
   264
    SDLK_KP_PLUSMINUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PLUSMINUS),
slouken@2303
   265
    SDLK_KP_CLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_CLEAR),
slouken@2303
   266
    SDLK_KP_CLEARENTRY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_CLEARENTRY),
slouken@2303
   267
    SDLK_KP_BINARY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_BINARY),
slouken@2303
   268
    SDLK_KP_OCTAL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_OCTAL),
slouken@2303
   269
    SDLK_KP_DECIMAL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DECIMAL),
slouken@2303
   270
    SDLK_KP_HEXADECIMAL =
slouken@2303
   271
        SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_HEXADECIMAL),
slouken@2268
   272
slouken@2303
   273
    SDLK_LCTRL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LCTRL),
slouken@2303
   274
    SDLK_LSHIFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LSHIFT),
slouken@2303
   275
    SDLK_LALT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LALT),
slouken@2303
   276
    SDLK_LGUI = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LGUI),
slouken@2303
   277
    SDLK_RCTRL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RCTRL),
slouken@2303
   278
    SDLK_RSHIFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RSHIFT),
slouken@2303
   279
    SDLK_RALT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RALT),
slouken@2303
   280
    SDLK_RGUI = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RGUI),
slouken@2268
   281
slouken@2303
   282
    SDLK_MODE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MODE),
slouken@2268
   283
slouken@2303
   284
    SDLK_AUDIONEXT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIONEXT),
slouken@2303
   285
    SDLK_AUDIOPREV = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOPREV),
slouken@2303
   286
    SDLK_AUDIOSTOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOSTOP),
slouken@2303
   287
    SDLK_AUDIOPLAY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOPLAY),
slouken@2303
   288
    SDLK_AUDIOMUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOMUTE),
slouken@2303
   289
    SDLK_MEDIASELECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MEDIASELECT),
slouken@2305
   290
    SDLK_WWW = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_WWW),
slouken@2303
   291
    SDLK_MAIL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MAIL),
slouken@2303
   292
    SDLK_CALCULATOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CALCULATOR),
slouken@2303
   293
    SDLK_COMPUTER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_COMPUTER),
slouken@2303
   294
    SDLK_AC_SEARCH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_SEARCH),
slouken@2303
   295
    SDLK_AC_HOME = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_HOME),
slouken@2303
   296
    SDLK_AC_BACK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_BACK),
slouken@2303
   297
    SDLK_AC_FORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_FORWARD),
slouken@2303
   298
    SDLK_AC_STOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_STOP),
slouken@2303
   299
    SDLK_AC_REFRESH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_REFRESH),
slouken@2303
   300
    SDLK_AC_BOOKMARKS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_BOOKMARKS),
slouken@2268
   301
slouken@2303
   302
    SDLK_BRIGHTNESSDOWN =
slouken@2303
   303
        SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_BRIGHTNESSDOWN),
slouken@2303
   304
    SDLK_BRIGHTNESSUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_BRIGHTNESSUP),
slouken@2303
   305
    SDLK_DISPLAYSWITCH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DISPLAYSWITCH),
slouken@2303
   306
    SDLK_KBDILLUMTOGGLE =
slouken@2303
   307
        SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMTOGGLE),
slouken@2303
   308
    SDLK_KBDILLUMDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMDOWN),
slouken@2303
   309
    SDLK_KBDILLUMUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMUP),
slouken@2303
   310
    SDLK_EJECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EJECT),
slouken@2710
   311
    SDLK_SLEEP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SLEEP)
slouken@2268
   312
};
slouken@2268
   313
slouken@1895
   314
/**
slouken@3407
   315
 * \brief Enumeration of valid key mods (possibly OR'd together).
slouken@1895
   316
 */
slouken@1895
   317
typedef enum
slouken@1895
   318
{
slouken@1895
   319
    KMOD_NONE = 0x0000,
slouken@1895
   320
    KMOD_LSHIFT = 0x0001,
slouken@1895
   321
    KMOD_RSHIFT = 0x0002,
slouken@1895
   322
    KMOD_LCTRL = 0x0040,
slouken@1895
   323
    KMOD_RCTRL = 0x0080,
slouken@1895
   324
    KMOD_LALT = 0x0100,
slouken@1895
   325
    KMOD_RALT = 0x0200,
slouken@2303
   326
    KMOD_LGUI = 0x0400,
slouken@2303
   327
    KMOD_RGUI = 0x0800,
slouken@1895
   328
    KMOD_NUM = 0x1000,
slouken@1895
   329
    KMOD_CAPS = 0x2000,
slouken@1895
   330
    KMOD_MODE = 0x4000,
slouken@1895
   331
    KMOD_RESERVED = 0x8000
slouken@5220
   332
} SDL_Keymod;
slouken@0
   333
slouken@7191
   334
#define KMOD_CTRL   (KMOD_LCTRL|KMOD_RCTRL)
slouken@7191
   335
#define KMOD_SHIFT  (KMOD_LSHIFT|KMOD_RSHIFT)
slouken@7191
   336
#define KMOD_ALT    (KMOD_LALT|KMOD_RALT)
slouken@7191
   337
#define KMOD_GUI    (KMOD_LGUI|KMOD_RGUI)
slouken@0
   338
slouken@5326
   339
#endif /* _SDL_keycode_h */
slouken@2303
   340
slouken@2303
   341
/* vi: set ts=4 sw=4 expandtab: */