a3bf0ca728f658c6790ea6cc8faf129836864502
[blender-staging.git] / source / blender / windowmanager / wm_event_types.h
1 /*
2  * $Id: wm_event_types.h
3  *
4  * ***** BEGIN GPL LICENSE BLOCK *****
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version. 
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19  *
20  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
21  * All rights reserved.
22  *
23  * Contributor(s): Blender Foundation
24  *
25  * ***** END GPL LICENSE BLOCK *****
26  */
27
28 /*
29  *  These define have its origin at sgi, where all device defines were written down in device.h.
30  *  Blender copied the conventions quite some, and expanded it with internal new defines (ton)
31  *
32  */ 
33
34
35 #ifndef WM_EVENT_TYPES_H
36 #define WM_EVENT_TYPES_H
37
38 /* customdata type */
39 #define EVT_DATA_TABLET         1
40 #define EVT_DATA_GESTURE        2
41 #define EVT_DATA_TIMER          3
42
43 #define MOUSEX          0x004   
44 #define MOUSEY          0x005   
45
46 /* MOUSE : 0x00x */
47 #define LEFTMOUSE               0x001   
48 #define MIDDLEMOUSE             0x002   
49 #define RIGHTMOUSE              0x003   
50 #define MOUSEMOVE               0x004   
51                 /* only use if you want user option switch possible */
52 #define ACTIONMOUSE             0x005
53 #define SELECTMOUSE             0x006
54                 /* defaults from ghost */
55 #define WHEELUPMOUSE    0x00a   
56 #define WHEELDOWNMOUSE  0x00b
57                 /* mapped with userdef */
58 #define WHEELINMOUSE    0x00c
59 #define WHEELOUTMOUSE   0x00d
60
61
62 /* SYSTEM : 0x01x */
63 #define KEYBD                   0x0100  /* keyboard */
64 #define RAWKEYBD                0x0101  /* raw keyboard for keyboard manager */
65 #define REDRAW                  0x0102  /* used by port manager to signal redraws */
66 #define INPUTCHANGE             0x0103  /* input connected or disconnected */
67 #define QFULL                   0x0104  /* queue was filled */
68 #define WINFREEZE               0x0105  /* user wants process in this win to shut up */
69 #define WINTHAW                 0x0106  /* user wants process in this win to go again */
70 #define WINCLOSE                0x0107  /* window close */
71 #define WINQUIT                 0x0108  /* signal from user that app is to go away */
72 #define Q_FIRSTTIME             0x0109  /* on startup */
73
74 #define TIMER                   0x0110  /* timer event, passed on to all queues */
75 #define TIMER0                  0x0111  /* timer event, slot for internal use */
76 #define TIMER1                  0x0112  /* timer event, slot for internal use */
77 #define TIMER2                  0x0113  /* timer event, slot for internal use */
78 #define TIMERJOBS               0x0114  /* timer event, internal use */
79
80 /* standard keyboard */
81 #define AKEY            'a'
82 #define BKEY            'b'
83 #define CKEY            'c'
84 #define DKEY            'd'
85 #define EKEY            'e'
86 #define FKEY            'f'
87 #define GKEY            'g'
88 #define HKEY            'h'
89 #define IKEY            'i'
90 #define JKEY            'j'
91 #define KKEY            'k'
92 #define LKEY            'l'
93 #define MKEY            'm'
94 #define NKEY            'n'
95 #define OKEY            'o'
96 #define PKEY            'p'
97 #define QKEY            'q'
98 #define RKEY            'r'
99 #define SKEY            's'
100 #define TKEY            't'
101 #define UKEY            'u'
102 #define VKEY            'v'
103 #define WKEY            'w'
104 #define XKEY            'x'
105 #define YKEY            'y'
106 #define ZKEY            'z'
107
108 #define ZEROKEY         '0'
109 #define ONEKEY          '1'
110 #define TWOKEY          '2'
111 #define THREEKEY        '3'
112 #define FOURKEY         '4'
113 #define FIVEKEY         '5'
114 #define SIXKEY          '6'
115 #define SEVENKEY        '7'
116 #define EIGHTKEY        '8'
117 #define NINEKEY         '9'
118
119 #define CAPSLOCKKEY             211
120
121 #define LEFTCTRLKEY             212
122 #define LEFTALTKEY              213
123 #define RIGHTALTKEY     214
124 #define RIGHTCTRLKEY    215
125 #define RIGHTSHIFTKEY   216
126 #define LEFTSHIFTKEY    217
127
128 #define ESCKEY                  218
129 #define TABKEY                  219
130 #define RETKEY                  220
131 #define SPACEKEY                221
132 #define LINEFEEDKEY             222
133 #define BACKSPACEKEY    223
134 #define DELKEY                  224
135 #define SEMICOLONKEY    225
136 #define PERIODKEY               226
137 #define COMMAKEY                227
138 #define QUOTEKEY                228
139 #define ACCENTGRAVEKEY  229
140 #define MINUSKEY                230
141 #define SLASHKEY                232
142 #define BACKSLASHKEY    233
143 #define EQUALKEY                234
144 #define LEFTBRACKETKEY  235
145 #define RIGHTBRACKETKEY 236
146
147 #define LEFTARROWKEY    137
148 #define DOWNARROWKEY    138
149 #define RIGHTARROWKEY   139
150 #define UPARROWKEY              140
151
152 #define PAD0                    150
153 #define PAD1                    151
154 #define PAD2                    152
155 #define PAD3                    153
156 #define PAD4                    154
157 #define PAD5                    155
158 #define PAD6                    156
159 #define PAD7                    157
160 #define PAD8                    158
161 #define PAD9                    159
162
163
164 #define PADPERIOD               199
165 #define PADSLASHKEY     161
166 #define PADASTERKEY     160
167
168 #define PADMINUS                162
169 #define PADENTER                163
170 #define PADPLUSKEY              164
171
172 #define F1KEY           300
173 #define F2KEY           301
174 #define F3KEY           302
175 #define F4KEY           303
176 #define F5KEY           304
177 #define F6KEY           305
178 #define F7KEY           306
179 #define F8KEY           307
180 #define F9KEY           308
181 #define F10KEY          309
182 #define F11KEY          310
183 #define F12KEY          311
184
185 #define PAUSEKEY        165
186 #define INSERTKEY       166
187 #define HOMEKEY         167
188 #define PAGEUPKEY       168
189 #define PAGEDOWNKEY     169
190 #define ENDKEY          170
191
192 #define UNKNOWNKEY      171
193 #define COMMANDKEY      172
194 #define GRLESSKEY       173
195
196 /* for event checks */
197 #define ISKEYBOARD(event)       (event >='a' && event <=255)
198
199
200 /* **************** BLENDER QUEUE EVENTS ********************* */
201
202 #define CHANGED                         0x4000
203 #define DRAWEDGES                       0x4001
204 #define AFTERQUEUE                      0x4002
205 #define BACKBUFDRAW                     0x4003
206 #define EXECUTE                         0x4004
207 #define IGNORE_REDRAW           0x4005
208 #define LOAD_FILE                       0x4006
209 #define RESHAPE                         0x4007
210 #define UI_BUT_EVENT            0x4008
211 #define AUTOSAVE_FILE           0x4009
212 #define UNDOPUSH                        0x400A
213
214 /* REDRAWVIEW3D has to be the first one (lowest number) for buttons! */
215 #define REDRAWVIEW3D            0x4010
216 #define REDRAWVIEWCAM           0x4011
217 #define REDRAWVIEW3D_Z          0x4012
218
219 #define REDRAWALL                       0x4013
220 #define REDRAWHEADERS           0x4014
221
222 #define REDRAWBUTSHEAD          0x4015
223 #define REDRAWBUTSALL           0x4016
224
225 #define REDRAWBUTSSCENE         0x4017
226 #define REDRAWBUTSOBJECT        0x4018
227 #define REDRAWBUTSEDIT          0x4019
228 #define REDRAWBUTSSCRIPT        0x401A
229 #define REDRAWBUTSLOGIC         0x401B
230 #define REDRAWBUTSSHADING       0x401C
231 #define REDRAWBUTSGAME          0x401D
232 #define REDRAWBUTSEFFECTS       0x401D
233
234 #define REDRAWINFO                      0x4021
235 #define RENDERPREVIEW           0x4022
236 #define REDRAWIPO                       0x4023
237 #define REDRAWDATASELECT        0x4024
238 #define REDRAWSEQ                       0x4025
239 #define REDRAWIMAGE                     0x4026
240 #define REDRAWOOPS                      0x4027
241 #define REDRAWIMASEL        0x4028
242 #define AFTERIMASELIMA      0x4029
243 #define AFTERIMASELGET      0x402A
244 #define AFTERIMAWRITE       0x402B
245 #define IMALEFTMOUSE            0x402C
246 #define AFTERPIBREAD        0x402D
247 #define REDRAWTEXT              0x402E
248 #define REDRAWSOUND                     0x402F
249 #define REDRAWACTION            0x4030
250 #define REDRAWNLA                       0x4031
251 #define REDRAWSCRIPT            0x4032
252 #define REDRAWTIME                      0x4033
253 #define REDRAWBUTSCONSTRAINT    0x4034
254 #define ONLOAD_SCRIPT           0x4035
255 #define SCREEN_HANDLER          0x4036
256 #define REDRAWANIM                      0x4037
257 #define REDRAWNODE                      0x4038
258 #define RECALC_COMPOSITE        0x4039
259 #define REDRAWMARKER            0x4040 /* all views that display markers */
260 #define REDRAWVIEW3D_IMAGE      0x4041
261
262 /* **************** BLENDER GESTURE EVENTS ********************* */
263
264 #define EVT_ACTIONZONE  0x5001
265                 /* tweak events, for L M R mousebuttons */
266 #define EVT_TWEAK_L             0x5002
267 #define EVT_TWEAK_M             0x5003
268 #define EVT_TWEAK_R             0x5004
269                 /* tweak events for action or select mousebutton */
270 #define EVT_TWEAK_A             0x5005
271 #define EVT_TWEAK_S             0x5006
272
273
274
275 #define EVT_GESTURE             0x5010
276
277 /* value of tweaks and line gestures, note, KM_ANY (-1) works for this case too */
278 #define EVT_GESTURE_N           1
279 #define EVT_GESTURE_NE          2
280 #define EVT_GESTURE_E           3
281 #define EVT_GESTURE_SE          4
282 #define EVT_GESTURE_S           5
283 #define EVT_GESTURE_SW          6
284 #define EVT_GESTURE_W           7
285 #define EVT_GESTURE_NW          8
286 /* value of corner gestures */
287 #define EVT_GESTURE_N_E         9
288 #define EVT_GESTURE_N_W         10
289 #define EVT_GESTURE_E_N         11
290 #define EVT_GESTURE_E_S         12
291 #define EVT_GESTURE_S_E         13
292 #define EVT_GESTURE_S_W         14
293 #define EVT_GESTURE_W_S         15
294 #define EVT_GESTURE_W_N         16
295
296 #endif  /* WM_EVENT_TYPES_H */
297