00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00031
00032 #pragma once
00033
00034
00035
00036 #ifdef WIN32
00037
00038 #include <windows.h>
00039
00040 #define CL_MOUSE_LEFT 0
00041 #define CL_MOUSE_RIGHT 1
00042 #define CL_MOUSE_MIDDLE 2
00043 #define CL_MOUSE_WHEEL_UP 3
00044 #define CL_MOUSE_WHEEL_DOWN 4
00045 #define CL_MOUSE_XBUTTON1 5
00046 #define CL_MOUSE_XBUTTON2 6
00047
00048 #define CL_KEY_BACKSPACE VK_BACK
00049 #define CL_KEY_TAB VK_TAB
00050 #define CL_KEY_CLEAR VK_CLEAR
00051 #define CL_KEY_RETURN VK_RETURN
00052 #define CL_KEY_SHIFT VK_SHIFT
00053 #define CL_KEY_CONTROL VK_CONTROL
00054 #define CL_KEY_MENU VK_MENU
00055 #define CL_KEY_PAUSE VK_PAUSE
00056 #define CL_KEY_ESCAPE VK_ESCAPE
00057
00058 #if !defined(__CYGWIN__) && !defined(__MINGW32__)
00059 # define CL_KEY_KANJI VK_KANJI
00060 # define CL_KEY_CONVERT VK_CONVERT
00061 # define CL_KEY_NONCONVERT VK_NONCONVERT
00062 #endif
00063
00064 #define CL_KEY_SPACE VK_SPACE
00065 #define CL_KEY_PRIOR VK_PRIOR
00066 #define CL_KEY_NEXT VK_NEXT
00067 #define CL_KEY_END VK_END
00068 #define CL_KEY_HOME VK_HOME
00069 #define CL_KEY_LEFT VK_LEFT
00070 #define CL_KEY_UP VK_UP
00071 #define CL_KEY_RIGHT VK_RIGHT
00072 #define CL_KEY_DOWN VK_DOWN
00073 #define CL_KEY_SELECT VK_SELECT
00074 #define CL_KEY_PRINT VK_PRINT
00075 #define CL_KEY_EXECUTE VK_EXECUTE
00076 #define CL_KEY_INSERT VK_INSERT
00077 #define CL_KEY_DELETE VK_DELETE
00078 #define CL_KEY_HELP VK_HELP
00079 #define CL_KEY_0 '0'
00080 #define CL_KEY_1 '1'
00081 #define CL_KEY_2 '2'
00082 #define CL_KEY_3 '3'
00083 #define CL_KEY_4 '4'
00084 #define CL_KEY_5 '5'
00085 #define CL_KEY_6 '6'
00086 #define CL_KEY_7 '7'
00087 #define CL_KEY_8 '8'
00088 #define CL_KEY_9 '9'
00089 #define CL_KEY_A 'A'
00090 #define CL_KEY_B 'B'
00091 #define CL_KEY_C 'C'
00092 #define CL_KEY_D 'D'
00093 #define CL_KEY_E 'E'
00094 #define CL_KEY_F 'F'
00095 #define CL_KEY_G 'G'
00096 #define CL_KEY_H 'H'
00097 #define CL_KEY_I 'I'
00098 #define CL_KEY_J 'J'
00099 #define CL_KEY_K 'K'
00100 #define CL_KEY_L 'L'
00101 #define CL_KEY_M 'M'
00102 #define CL_KEY_N 'N'
00103 #define CL_KEY_O 'O'
00104 #define CL_KEY_P 'P'
00105 #define CL_KEY_Q 'Q'
00106 #define CL_KEY_R 'R'
00107 #define CL_KEY_S 'S'
00108 #define CL_KEY_T 'T'
00109 #define CL_KEY_U 'U'
00110 #define CL_KEY_V 'V'
00111 #define CL_KEY_W 'W'
00112 #define CL_KEY_X 'X'
00113 #define CL_KEY_Y 'Y'
00114 #define CL_KEY_Z 'Z'
00115 #define CL_KEY_LWIN VK_LWIN
00116 #define CL_KEY_RWIN VK_RWIN
00117 #define CL_KEY_APPS VK_APPS
00118 #define CL_KEY_NUMPAD0 VK_NUMPAD0
00119 #define CL_KEY_NUMPAD1 VK_NUMPAD1
00120 #define CL_KEY_NUMPAD2 VK_NUMPAD2
00121 #define CL_KEY_NUMPAD3 VK_NUMPAD3
00122 #define CL_KEY_NUMPAD4 VK_NUMPAD4
00123 #define CL_KEY_NUMPAD5 VK_NUMPAD5
00124 #define CL_KEY_NUMPAD6 VK_NUMPAD6
00125 #define CL_KEY_NUMPAD7 VK_NUMPAD7
00126 #define CL_KEY_NUMPAD8 VK_NUMPAD8
00127 #define CL_KEY_NUMPAD9 VK_NUMPAD9
00128 #define CL_KEY_MULTIPLY VK_MULTIPLY
00129 #define CL_KEY_ADD VK_ADD
00130 #define CL_KEY_SEPARATOR VK_SEPARATOR
00131 #define CL_KEY_SUBTRACT VK_SUBTRACT
00132 #define CL_KEY_DECIMAL VK_DECIMAL
00133 #define CL_KEY_DIVIDE VK_DIVIDE
00134 #define CL_KEY_F1 VK_F1
00135 #define CL_KEY_F2 VK_F2
00136 #define CL_KEY_F3 VK_F3
00137 #define CL_KEY_F4 VK_F4
00138 #define CL_KEY_F5 VK_F5
00139 #define CL_KEY_F6 VK_F6
00140 #define CL_KEY_F7 VK_F7
00141 #define CL_KEY_F8 VK_F8
00142 #define CL_KEY_F9 VK_F9
00143 #define CL_KEY_F10 VK_F10
00144 #define CL_KEY_F11 VK_F11
00145 #define CL_KEY_F12 VK_F12
00146 #define CL_KEY_F13 VK_F13
00147 #define CL_KEY_F14 VK_F14
00148 #define CL_KEY_F15 VK_F15
00149 #define CL_KEY_F16 VK_F16
00150 #define CL_KEY_F17 VK_F17
00151 #define CL_KEY_F18 VK_F18
00152 #define CL_KEY_F19 VK_F19
00153 #define CL_KEY_F20 VK_F20
00154 #define CL_KEY_F21 VK_F21
00155 #define CL_KEY_F22 VK_F22
00156 #define CL_KEY_F23 VK_F23
00157 #define CL_KEY_F24 VK_F24
00158 #define CL_KEY_NUMLOCK VK_NUMLOCK
00159 #define CL_KEY_SCROLL VK_SCROLL
00160 #define CL_KEY_LSHIFT VK_LSHIFT
00161 #define CL_KEY_RSHIFT VK_RSHIFT
00162 #define CL_KEY_LCONTROL VK_LCONTROL
00163 #define CL_KEY_RCONTROL VK_RCONTROL
00164 #define CL_KEY_LMENU VK_LMENU
00165 #define CL_KEY_RMENU VK_RMENU
00166
00167
00168 #define CL_KEY_TABLET1 0x10001
00169 #define CL_KEY_TABLET2 0x10002
00170 #define CL_KEY_TABLET3 0x10003
00171 #define CL_KEY_TABLET4 0x10004
00172 #define CL_KEY_TABLET5 0x10005
00173 #define CL_KEY_TABLET6 0x10006
00174 #define CL_KEY_TABLET7 0x10007
00175 #define CL_KEY_TABLET8 0x10008
00176 #define CL_KEY_TABLET9 0x10009
00177 #define CL_KEY_TABLET10 0x1000a
00178
00179 #else
00180 #ifdef __APPLE__
00181
00182 #include <Carbon/carbon.h>
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201 #define CL_MOUSE_LEFT 0
00202 #define CL_MOUSE_RIGHT 1
00203 #define CL_MOUSE_MIDDLE 2
00204 #define CL_MOUSE_WHEEL_UP 3
00205 #define CL_MOUSE_WHEEL_DOWN 4
00206 #define CL_MOUSE_XBUTTON1 5
00207 #define CL_MOUSE_XBUTTON2 6
00208
00209 #define CL_KEY_BACKSPACE 10
00210 #define CL_KEY_TAB 11
00211 #define CL_KEY_CLEAR 12
00212 #define CL_KEY_RETURN 13
00213 #define CL_KEY_SHIFT 14
00214 #define CL_KEY_CONTROL 15
00215 #define CL_KEY_MENU 16
00216 #define CL_KEY_PAUSE 17
00217 #define CL_KEY_KANJI 18
00218 #define CL_KEY_ESCAPE 19
00219 #define CL_KEY_CONVERT 20
00220 #define CL_KEY_NONCONVERT 21
00221 #define CL_KEY_SPACE 22
00222 #define CL_KEY_PRIOR 23
00223 #define CL_KEY_NEXT 24
00224 #define CL_KEY_END 25
00225 #define CL_KEY_HOME 26
00226 #define CL_KEY_LEFT 27
00227 #define CL_KEY_UP 28
00228 #define CL_KEY_RIGHT 29
00229 #define CL_KEY_DOWN 30
00230 #define CL_KEY_SELECT 31
00231 #define CL_KEY_PRINT 32
00232 #define CL_KEY_EXECUTE 33
00233 #define CL_KEY_INSERT 34
00234 #define CL_KEY_DELETE 35
00235 #define CL_KEY_HELP 36
00236 #define CL_KEY_0 37
00237 #define CL_KEY_1 38
00238 #define CL_KEY_2 39
00239 #define CL_KEY_3 40
00240 #define CL_KEY_4 41
00241 #define CL_KEY_5 42
00242 #define CL_KEY_6 43
00243 #define CL_KEY_7 44
00244 #define CL_KEY_8 45
00245 #define CL_KEY_9 46
00246 #define CL_KEY_A 47
00247 #define CL_KEY_B 48
00248 #define CL_KEY_C 49
00249 #define CL_KEY_D 50
00250 #define CL_KEY_E 51
00251 #define CL_KEY_F 52
00252 #define CL_KEY_G 53
00253 #define CL_KEY_H 54
00254 #define CL_KEY_I 55
00255 #define CL_KEY_J 56
00256 #define CL_KEY_K 57
00257 #define CL_KEY_L 58
00258 #define CL_KEY_M 59
00259 #define CL_KEY_N 60
00260 #define CL_KEY_O 61
00261 #define CL_KEY_P 62
00262 #define CL_KEY_Q 63
00263 #define CL_KEY_R 64
00264 #define CL_KEY_S 65
00265 #define CL_KEY_T 66
00266 #define CL_KEY_U 67
00267 #define CL_KEY_V 68
00268 #define CL_KEY_W 69
00269 #define CL_KEY_X 70
00270 #define CL_KEY_Y 71
00271 #define CL_KEY_Z 72
00272 #define CL_KEY_LWIN 73
00273 #define CL_KEY_RWIN 74
00274 #define CL_KEY_APPS 75
00275 #define CL_KEY_NUMPAD0 76
00276 #define CL_KEY_NUMPAD1 77
00277 #define CL_KEY_NUMPAD2 78
00278 #define CL_KEY_NUMPAD3 79
00279 #define CL_KEY_NUMPAD4 80
00280 #define CL_KEY_NUMPAD5 81
00281 #define CL_KEY_NUMPAD6 82
00282 #define CL_KEY_NUMPAD7 83
00283 #define CL_KEY_NUMPAD8 84
00284 #define CL_KEY_NUMPAD9 85
00285 #define CL_KEY_MULTIPLY 86
00286 #define CL_KEY_ADD 87
00287 #define CL_KEY_SEPARATOR 88
00288 #define CL_KEY_SUBTRACT 89
00289 #define CL_KEY_DECIMAL 90
00290 #define CL_KEY_DIVIDE 91
00291 #define CL_KEY_F1 92
00292 #define CL_KEY_F2 93
00293 #define CL_KEY_F3 94
00294 #define CL_KEY_F4 95
00295 #define CL_KEY_F5 96
00296 #define CL_KEY_F6 97
00297 #define CL_KEY_F7 98
00298 #define CL_KEY_F8 99
00299 #define CL_KEY_F9 100
00300 #define CL_KEY_F10 101
00301 #define CL_KEY_F11 102
00302 #define CL_KEY_F12 103
00303 #define CL_KEY_F13 104
00304 #define CL_KEY_F14 105
00305 #define CL_KEY_F15 106
00306 #define CL_KEY_F16 107
00307 #define CL_KEY_F17 108
00308 #define CL_KEY_F18 109
00309 #define CL_KEY_F19 110
00310 #define CL_KEY_F20 111
00311 #define CL_KEY_F21 112
00312 #define CL_KEY_F22 113
00313 #define CL_KEY_F23 114
00314 #define CL_KEY_F24 115
00315 #define CL_KEY_NUMLOCK 116
00316 #define CL_KEY_SCROLL 117
00317 #define CL_KEY_LSHIFT 118
00318 #define CL_KEY_RSHIFT 119
00319 #define CL_KEY_LCONTROL 120
00320 #define CL_KEY_RCONTROL 121
00321 #define CL_KEY_LMENU 122
00322 #define CL_KEY_RMENU 123
00323
00324 #else
00325
00326 #include <X11/keysym.h>
00327
00328 #define CL_MOUSE_LEFT 0
00329 #define CL_MOUSE_RIGHT 1
00330 #define CL_MOUSE_MIDDLE 2
00331 #define CL_MOUSE_WHEEL_UP 3
00332 #define CL_MOUSE_WHEEL_DOWN 4
00333 #define CL_MOUSE_XBUTTON1 5
00334 #define CL_MOUSE_XBUTTON2 6
00335
00336 #define CL_KEY_BACKSPACE XK_BackSpace
00337 #define CL_KEY_TAB XK_Tab
00338 #define CL_KEY_CLEAR XK_Clear
00339 #define CL_KEY_RETURN XK_Return
00340 #define CL_KEY_SHIFT XK_Shift_L
00341 #define CL_KEY_CONTROL XK_Control_L
00342 #define CL_KEY_MENU XK_Menu // there is no XK_Alt, only XK_Alt_L and XK_Alt_R. Maybe remove this key? -- mbn 30 sep 2003
00343 #define CL_KEY_PAUSE XK_Pause
00344 #define CL_KEY_KANJI XK_Kanji
00345 #define CL_KEY_ESCAPE XK_Escape
00346 #define CL_KEY_CONVERT XK_Henkan_Mode
00347 #define CL_KEY_NONCONVERT XK_Muhenkan
00348 #define CL_KEY_SPACE XK_space
00349 #define CL_KEY_PRIOR XK_Prior
00350 #define CL_KEY_NEXT XK_Next
00351 #define CL_KEY_END XK_End
00352 #define CL_KEY_HOME XK_Home
00353 #define CL_KEY_LEFT XK_Left
00354 #define CL_KEY_UP XK_Up
00355 #define CL_KEY_RIGHT XK_Right
00356 #define CL_KEY_DOWN XK_Down
00357 #define CL_KEY_SELECT XK_Select
00358 #define CL_KEY_PRINT XK_Print
00359 #define CL_KEY_EXECUTE XK_Execute
00360 #define CL_KEY_INSERT XK_Insert
00361 #define CL_KEY_DELETE XK_Delete
00362 #define CL_KEY_HELP XK_Help
00363 #define CL_KEY_0 XK_0
00364 #define CL_KEY_1 XK_1
00365 #define CL_KEY_2 XK_2
00366 #define CL_KEY_3 XK_3
00367 #define CL_KEY_4 XK_4
00368 #define CL_KEY_5 XK_5
00369 #define CL_KEY_6 XK_6
00370 #define CL_KEY_7 XK_7
00371 #define CL_KEY_8 XK_8
00372 #define CL_KEY_9 XK_9
00373 #define CL_KEY_A XK_a
00374 #define CL_KEY_B XK_b
00375 #define CL_KEY_C XK_c
00376 #define CL_KEY_D XK_d
00377 #define CL_KEY_E XK_e
00378 #define CL_KEY_F XK_f
00379 #define CL_KEY_G XK_g
00380 #define CL_KEY_H XK_h
00381 #define CL_KEY_I XK_i
00382 #define CL_KEY_J XK_j
00383 #define CL_KEY_K XK_k
00384 #define CL_KEY_L XK_l
00385 #define CL_KEY_M XK_m
00386 #define CL_KEY_N XK_n
00387 #define CL_KEY_O XK_o
00388 #define CL_KEY_P XK_p
00389 #define CL_KEY_Q XK_q
00390 #define CL_KEY_R XK_r
00391 #define CL_KEY_S XK_s
00392 #define CL_KEY_T XK_t
00393 #define CL_KEY_U XK_u
00394 #define CL_KEY_V XK_v
00395 #define CL_KEY_W XK_w
00396 #define CL_KEY_X XK_x
00397 #define CL_KEY_Y XK_y
00398 #define CL_KEY_Z XK_z
00399 #define CL_KEY_LWIN XK_Super_L
00400 #define CL_KEY_RWIN XK_Multi_key
00401 #define CL_KEY_APPS XK_Menu
00402 #define CL_KEY_NUMPAD0 XK_KP_0
00403 #define CL_KEY_NUMPAD1 XK_KP_1
00404 #define CL_KEY_NUMPAD2 XK_KP_2
00405 #define CL_KEY_NUMPAD3 XK_KP_3
00406 #define CL_KEY_NUMPAD4 XK_KP_4
00407 #define CL_KEY_NUMPAD5 XK_KP_5
00408 #define CL_KEY_NUMPAD6 XK_KP_6
00409 #define CL_KEY_NUMPAD7 XK_KP_7
00410 #define CL_KEY_NUMPAD8 XK_KP_8
00411 #define CL_KEY_NUMPAD9 XK_KP_9
00412 #define CL_KEY_MULTIPLY XK_KP_Multiply
00413 #define CL_KEY_ADD XK_KP_Add
00414 #define CL_KEY_SEPARATOR XK_KP_Separator
00415 #define CL_KEY_SUBTRACT XK_KP_Subtract
00416 #define CL_KEY_DECIMAL XK_KP_Decimal
00417 #define CL_KEY_DIVIDE XK_KP_Divide
00418 #define CL_KEY_F1 XK_F1
00419 #define CL_KEY_F2 XK_F2
00420 #define CL_KEY_F3 XK_F3
00421 #define CL_KEY_F4 XK_F4
00422 #define CL_KEY_F5 XK_F5
00423 #define CL_KEY_F6 XK_F6
00424 #define CL_KEY_F7 XK_F7
00425 #define CL_KEY_F8 XK_F8
00426 #define CL_KEY_F9 XK_F9
00427 #define CL_KEY_F10 XK_F10
00428 #define CL_KEY_F11 XK_F11
00429 #define CL_KEY_F12 XK_F12
00430 #define CL_KEY_F13 XK_F13
00431 #define CL_KEY_F14 XK_F14
00432 #define CL_KEY_F15 XK_F15
00433 #define CL_KEY_F16 XK_F16
00434 #define CL_KEY_F17 XK_F17
00435 #define CL_KEY_F18 XK_F18
00436 #define CL_KEY_F19 XK_F19
00437 #define CL_KEY_F20 XK_F20
00438 #define CL_KEY_F21 XK_F21
00439 #define CL_KEY_F22 XK_F22
00440 #define CL_KEY_F23 XK_F23
00441 #define CL_KEY_F24 XK_F24
00442 #define CL_KEY_NUMLOCK XK_Num_Lock
00443 #define CL_KEY_SCROLL XK_Scroll_Lock
00444 #define CL_KEY_LSHIFT XK_Shift_L
00445 #define CL_KEY_RSHIFT XK_Shift_R
00446 #define CL_KEY_LCONTROL XK_Control_L
00447 #define CL_KEY_RCONTROL XK_Control_R
00448 #define CL_KEY_LMENU XK_Meta_L
00449 #define CL_KEY_RMENU XK_Meta_R
00450 #endif
00451 #endif
00452
00453 #define CL_KEY_ENTER CL_KEY_RETURN
00454 #define CL_KEY_LAPPLE CL_KEY_LWIN
00455 #define CL_KEY_RAPPLE CL_KEY_RWIN
00456