00001
00002
00003 #ifndef NV_KEYBOARD_H
00004 #define NV_KEYBOARD_H
00005
00006 #include <NvFoundation.h>
00007
00010
00012 struct NvKey {
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 enum Enum {
00029 K_UNKNOWN = 0x80000000,
00030
00031 K_ESC = 0x1B,
00032 K_FKEY_BIT = 0x2000,
00033 K_F1 = K_FKEY_BIT+1,
00034 K_F2 = K_FKEY_BIT+2,
00035 K_F3 = K_FKEY_BIT+3,
00036 K_F4 = K_FKEY_BIT+4,
00037 K_F5 = K_FKEY_BIT+5,
00038 K_F6 = K_FKEY_BIT+6,
00039 K_F7 = K_FKEY_BIT+7,
00040 K_F8 = K_FKEY_BIT+8,
00041 K_F9 = K_FKEY_BIT+9,
00042 K_F10 = K_FKEY_BIT+10,
00043 K_F11 = K_FKEY_BIT+11,
00044 K_F12 = K_FKEY_BIT+12,
00045
00046 K_EXTRA_KEY_BIT = 0x1000,
00047 K_PRINT_SCREEN = K_EXTRA_KEY_BIT+1,
00048 K_SCROLL_LOCK = K_EXTRA_KEY_BIT+2,
00049 K_PAUSE = K_EXTRA_KEY_BIT+3,
00050
00051 K_INSERT = K_EXTRA_KEY_BIT+17,
00052 K_DELETE = K_EXTRA_KEY_BIT+18,
00053 K_HOME = K_EXTRA_KEY_BIT+19,
00054 K_END = K_EXTRA_KEY_BIT+20,
00055 K_PAGE_UP = K_EXTRA_KEY_BIT+21,
00056 K_PAGE_DOWN = K_EXTRA_KEY_BIT+22,
00057
00058 K_ARROW_UP = K_EXTRA_KEY_BIT+33,
00059 K_ARROW_DOWN = K_EXTRA_KEY_BIT+34,
00060 K_ARROW_LEFT = K_EXTRA_KEY_BIT+35,
00061 K_ARROW_RIGHT = K_EXTRA_KEY_BIT+36,
00062
00063 K_ACCENT_GRAVE = '`',
00064 K_0 = '0',
00065 K_1 = '1',
00066 K_2 = '2',
00067 K_3 = '3',
00068 K_4 = '4',
00069 K_5 = '5',
00070 K_6 = '6',
00071 K_7 = '7',
00072 K_8 = '8',
00073 K_9 = '9',
00074 K_MINUS = '-',
00075 K_EQUAL = '=',
00076 K_BACKSPACE = 0x08,
00077
00078 K_TAB = '\t',
00079 K_Q = 'Q',
00080 K_W = 'W',
00081 K_E = 'E',
00082 K_R = 'R',
00083 K_T = 'T',
00084 K_Y = 'Y',
00085 K_U = 'U',
00086 K_I = 'I',
00087 K_O = 'O',
00088 K_P = 'P',
00089 K_LBRACKET = '[',
00090 K_RBRACKET = ']',
00091 K_BACKSLASH = '\\',
00092
00093 K_CAPS_LOCK = K_EXTRA_KEY_BIT+4,
00094 K_A = 'A',
00095 K_S = 'S',
00096 K_D = 'D',
00097 K_F = 'F',
00098 K_G = 'G',
00099 K_H = 'H',
00100 K_J = 'J',
00101 K_K = 'K',
00102 K_L = 'L',
00103 K_SEMICOLON = ';',
00104 K_APOSTROPHE = '\'',
00105 K_ENTER = '\n',
00106
00107 K_MOD_BASE_BIT = 0x8000,
00108
00109
00110 K_MOD_RIGHT_BIT = 0x100000,
00111 K_MOD_SHIFT_BIT = 0x200000,
00112 K_MOD_CTRL_BIT = 0x400000,
00113 K_MOD_ALT_BIT = 0x800000,
00114
00115 K_MOD_WINDOWS_BIT = 0x1000000,
00116
00117 K_SHIFT_ANY = K_MOD_BASE_BIT + 1,
00118 K_CTRL_ANY = K_MOD_BASE_BIT + 2,
00119 K_ALT_ANY = K_MOD_BASE_BIT + 3,
00120 K_WINDOWS_ANY = K_MOD_BASE_BIT + 4,
00121
00122 K_SHIFT_LEFT = K_MOD_SHIFT_BIT + K_SHIFT_ANY,
00123 K_Z = 'Z',
00124 K_X = 'X',
00125 K_C = 'C',
00126 K_V = 'V',
00127 K_B = 'B',
00128 K_N = 'N',
00129 K_M = 'M',
00130 K_COMMA = ',',
00131 K_PERIOD = '.',
00132 K_SLASH = '/',
00133 K_SHIFT_RIGHT = K_MOD_SHIFT_BIT + K_SHIFT_ANY + K_MOD_RIGHT_BIT,
00134
00135 K_CTRL_LEFT = K_MOD_CTRL_BIT + K_CTRL_ANY,
00136 K_WINDOWS_LEFT = K_MOD_WINDOWS_BIT + K_WINDOWS_ANY,
00137 K_ALT_LEFT = K_MOD_ALT_BIT + K_ALT_ANY,
00138 K_SPACE = ' ',
00139 K_ALT_RIGHT = K_MOD_ALT_BIT + K_ALT_ANY + K_MOD_RIGHT_BIT,
00140 K_WINDOWS_RIGHT = K_MOD_WINDOWS_BIT + K_WINDOWS_ANY + K_MOD_RIGHT_BIT,
00141 K_CONTEXT = K_EXTRA_KEY_BIT+5,
00142 K_CTRL_RIGHT = K_MOD_CTRL_BIT + K_CTRL_ANY + K_MOD_RIGHT_BIT,
00143
00144 K_KP_BIT = 0x4000,
00145 K_NUMLOCK = K_KP_BIT+ 0x101,
00146 K_KP_DIVIDE = K_KP_BIT + '/',
00147 K_KP_MULTIPLY = K_KP_BIT + '*',
00148 K_KP_SUBTRACT = K_KP_BIT + '-',
00149 K_KP_ADD = K_KP_BIT + '+',
00150 K_KP_ENTER = K_KP_BIT + '/',
00151 K_KP_DECIMAL = K_KP_BIT + '.',
00152 K_KP_0 = K_KP_BIT + '0',
00153 K_KP_1 = K_KP_BIT + '1',
00154 K_KP_2 = K_KP_BIT + '2',
00155 K_KP_3 = K_KP_BIT + '3',
00156 K_KP_4 = K_KP_BIT + '4',
00157 K_KP_5 = K_KP_BIT + '5',
00158 K_KP_6 = K_KP_BIT + '6',
00159 K_KP_7 = K_KP_BIT + '7',
00160 K_KP_8 = K_KP_BIT + '8',
00161 K_KP_9 = K_KP_BIT + '9',
00162
00163
00164
00165
00166
00167
00168
00169 };
00170 };
00171
00172 #endif