File: client\keys.h
1 /*
2 Copyright (C) 1997-2001 Id Software, Inc.
3
4 This program is free software; you can redistribute it and/or
5 modify it under the terms of the GNU General Public License
6 as published by the Free Software Foundation; either version 2
7 of the License, or (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
13 See the GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18
19 */
20
21 //
22 // these are the key numbers that should be passed to Key_Event
23 //
24 #define K_TAB 9
25 #define K_ENTER 13
26 #define K_ESCAPE 27
27 #define K_SPACE 32
28
29 // normal keys should be passed as lowercased ascii
30
31 #define K_BACKSPACE 127
32 #define K_UPARROW 128
33 #define K_DOWNARROW 129
34 #define K_LEFTARROW 130
35 #define K_RIGHTARROW 131
36
37 #define K_ALT 132
38 #define K_CTRL 133
39 #define K_SHIFT 134
40 #define K_F1 135
41 #define K_F2 136
42 #define K_F3 137
43 #define K_F4 138
44 #define K_F5 139
45 #define K_F6 140
46 #define K_F7 141
47 #define K_F8 142
48 #define K_F9 143
49 #define K_F10 144
50 #define K_F11 145
51 #define K_F12 146
52 #define K_INS 147
53 #define K_DEL 148
54 #define K_PGDN 149
55 #define K_PGUP 150
56 #define K_HOME 151
57 #define K_END 152
58
59 #define K_KP_HOME 160
60 #define K_KP_UPARROW 161
61 #define K_KP_PGUP 162
62 #define K_KP_LEFTARROW 163
63 #define K_KP_5 164
64 #define K_KP_RIGHTARROW 165
65 #define K_KP_END 166
66 #define K_KP_DOWNARROW 167
67 #define K_KP_PGDN 168
68 #define K_KP_ENTER 169
69 #define K_KP_INS 170
70 #define K_KP_DEL 171
71 #define K_KP_SLASH 172
72 #define K_KP_MINUS 173
73 #define K_KP_PLUS 174
74
75 #define K_PAUSE 255
76
77 //
78 // mouse buttons generate virtual keys
79 //
80 #define K_MOUSE1 200
81 #define K_MOUSE2 201
82 #define K_MOUSE3 202
83
84 //
85 // joystick buttons
86 //
87 #define K_JOY1 203
88 #define K_JOY2 204
89 #define K_JOY3 205
90 #define K_JOY4 206
91
92 //
93 // aux keys are for multi-buttoned joysticks to generate so they can use
94 // the normal binding process
95 //
96 #define K_AUX1 207
97 #define K_AUX2 208
98 #define K_AUX3 209
99 #define K_AUX4 210
100 #define K_AUX5 211
101 #define K_AUX6 212
102 #define K_AUX7 213
103 #define K_AUX8 214
104 #define K_AUX9 215
105 #define K_AUX10 216
106 #define K_AUX11 217
107 #define K_AUX12 218
108 #define K_AUX13 219
109 #define K_AUX14 220
110 #define K_AUX15 221
111 #define K_AUX16 222
112 #define K_AUX17 223
113 #define K_AUX18 224
114 #define K_AUX19 225
115 #define K_AUX20 226
116 #define K_AUX21 227
117 #define K_AUX22 228
118 #define K_AUX23 229
119 #define K_AUX24 230
120 #define K_AUX25 231
121 #define K_AUX26 232
122 #define K_AUX27 233
123 #define K_AUX28 234
124 #define K_AUX29 235
125 #define K_AUX30 236
126 #define K_AUX31 237
127 #define K_AUX32 238
128
129 #define K_MWHEELDOWN 239
130 #define K_MWHEELUP 240
131
132 extern char *keybindings[256];
133 extern int key_repeats[256];
134
135 extern int anykeydown;
136 extern char chat_buffer[];
137 extern int chat_bufferlen;
138 extern qboolean chat_team;
139
140 void Key_Event (int key, qboolean down, unsigned time);
141 void Key_Init (void);
142 void Key_WriteBindings (FILE *f);
143 void Key_SetBinding (int keynum, char *binding);
144 void Key_ClearStates (void);
145 int Key_GetKey (void);
146
147