Colobot
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
event.h
Go to the documentation of this file.
1 // * This file is part of the COLOBOT source code
2 // * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
3 // *
4 // * This program is free software: you can redistribute it and/or modify
5 // * it under the terms of the GNU General Public License as published by
6 // * the Free Software Foundation, either version 3 of the License, or
7 // * (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. See the
12 // * GNU General Public License for more details.
13 // *
14 // * You should have received a copy of the GNU General Public License
15 // * along with this program. If not, see http://www.gnu.org/licenses/.
16 
22 #pragma once
23 
24 
25 #include "common/key.h"
26 
27 #include "math/point.h"
28 #include "math/vector.h"
29 
30 
36 {
37 
38 // TODO: document the meaning of each value
39 
42 
43  // System events (originating in CApplication)
44 
47 
50 
63 
66 
73 
75  EVENT_SYS_MAX,
76 
77 
78  /* Events sent/received in game and user interface */
79 
81  EVENT_QUIT = 20,
82  EVENT_UPDINTERFACE = 21,
83  EVENT_WIN = 30,
84  EVENT_LOST = 31,
85 
88 
89  EVENT_BUTTON_OK = 40,
90  EVENT_BUTTON_CANCEL = 41,
91  EVENT_BUTTON_NEXT = 42,
92  EVENT_BUTTON_PREV = 43,
93  EVENT_BUTTON_QUIT = 44,
94 
95  EVENT_BUTTON0 = 50,
96  EVENT_BUTTON1 = 51,
97  EVENT_BUTTON2 = 52,
98  EVENT_BUTTON3 = 53,
99  EVENT_BUTTON4 = 54,
100  EVENT_BUTTON5 = 55,
101  EVENT_BUTTON6 = 56,
102  EVENT_BUTTON7 = 57,
103  EVENT_BUTTON8 = 58,
104  EVENT_BUTTON9 = 59,
105  EVENT_BUTTON10 = 60,
106  EVENT_BUTTON11 = 61,
107  EVENT_BUTTON12 = 62,
108  EVENT_BUTTON13 = 63,
109  EVENT_BUTTON14 = 64,
110  EVENT_BUTTON15 = 65,
111  EVENT_BUTTON16 = 66,
112  EVENT_BUTTON17 = 67,
113  EVENT_BUTTON18 = 68,
114  EVENT_BUTTON19 = 69,
115 
116  EVENT_EDIT0 = 70,
117  EVENT_EDIT1 = 71,
118  EVENT_EDIT2 = 72,
119  EVENT_EDIT3 = 73,
120  EVENT_EDIT4 = 74,
121  EVENT_EDIT5 = 75,
122  EVENT_EDIT6 = 76,
123  EVENT_EDIT7 = 77,
124  EVENT_EDIT8 = 78,
125  EVENT_EDIT9 = 79,
126 
127  EVENT_WINDOW0 = 80, // the bottom panel
128  EVENT_WINDOW1 = 81, // map
129  EVENT_WINDOW2 = 82, // CDisplayText
130  EVENT_WINDOW3 = 83, // CStudio
131  EVENT_WINDOW4 = 84, // DisplayInfo
132  EVENT_WINDOW5 = 85, // setup
133  EVENT_WINDOW6 = 86,
134  EVENT_WINDOW7 = 87,
135  EVENT_WINDOW8 = 88,
136  EVENT_WINDOW9 = 89, // dialogue
137 
138  EVENT_LABEL0 = 90,
139  EVENT_LABEL1 = 91,
140  EVENT_LABEL2 = 92,
141  EVENT_LABEL3 = 93,
142  EVENT_LABEL4 = 94,
143  EVENT_LABEL5 = 95,
144  EVENT_LABEL6 = 96,
145  EVENT_LABEL7 = 97,
146  EVENT_LABEL8 = 98,
147  EVENT_LABEL9 = 99,
148  EVENT_LABEL10 = 100,
149  EVENT_LABEL11 = 101,
150  EVENT_LABEL12 = 102,
151  EVENT_LABEL13 = 103,
152  EVENT_LABEL14 = 104,
153  EVENT_LABEL15 = 105,
154  EVENT_LABEL16 = 106,
155  EVENT_LABEL17 = 107,
156  EVENT_LABEL18 = 108,
157  EVENT_LABEL19 = 109,
158 
159  EVENT_LIST0 = 110,
160  EVENT_LIST1 = 111,
161  EVENT_LIST2 = 112,
162  EVENT_LIST3 = 113,
163  EVENT_LIST4 = 114,
164  EVENT_LIST5 = 115,
165  EVENT_LIST6 = 116,
166  EVENT_LIST7 = 117,
167  EVENT_LIST8 = 118,
168  EVENT_LIST9 = 119,
169 
170  EVENT_TOOLTIP = 200,
171 
172  EVENT_DIALOG_OK = 300,
173  EVENT_DIALOG_CANCEL = 301,
174  EVENT_DIALOG_LABEL = 302,
175  EVENT_DIALOG_LABEL1 = 303,
176  EVENT_DIALOG_LABEL2 = 304,
177  EVENT_DIALOG_LABEL3 = 305,
178  EVENT_DIALOG_LIST = 306,
179  EVENT_DIALOG_EDIT = 307,
180  EVENT_DIALOG_CHECK1 = 308,
181  EVENT_DIALOG_CHECK2 = 309,
182 
183  EVENT_INTERFACE_TRAINER = 400,
184  EVENT_INTERFACE_DEFI = 401,
185  EVENT_INTERFACE_MISSION = 402,
186  EVENT_INTERFACE_FREE = 403,
187  EVENT_INTERFACE_NAME = 405,
188  EVENT_INTERFACE_SETUP = 406,
189  EVENT_INTERFACE_QUIT = 407,
190  EVENT_INTERFACE_BACK = 408,
191  EVENT_INTERFACE_AGAIN = 409,
192  EVENT_INTERFACE_WRITE = 410,
193  EVENT_INTERFACE_READ = 411,
194  EVENT_INTERFACE_ABORT = 412,
195  EVENT_INTERFACE_USER = 413,
196  EVENT_INTERFACE_TEEN = 414,
197 
198  EVENT_INTERFACE_CHAP = 420,
199  EVENT_INTERFACE_LIST = 421,
200  EVENT_INTERFACE_RESUME = 422,
201  EVENT_INTERFACE_PLAY = 423,
202 
203  EVENT_INTERFACE_SETUPd = 430,
204  EVENT_INTERFACE_SETUPg = 431,
205  EVENT_INTERFACE_SETUPp = 432,
206  EVENT_INTERFACE_SETUPc = 433,
207  EVENT_INTERFACE_SETUPs = 434,
208 
209  EVENT_INTERFACE_DEVICE = 440,
210  EVENT_INTERFACE_RESOL = 441,
211  EVENT_INTERFACE_FULL = 442,
212  EVENT_INTERFACE_APPLY = 443,
213 
214  EVENT_INTERFACE_TOTO = 450,
215  EVENT_INTERFACE_SHADOW = 451,
216  EVENT_INTERFACE_DIRTY = 452,
217  EVENT_INTERFACE_LENS = 453,
218  EVENT_INTERFACE_SKY = 454,
219  EVENT_INTERFACE_PLANET = 456,
220  EVENT_INTERFACE_LIGHT = 457,
221  EVENT_INTERFACE_PARTI = 458,
222  EVENT_INTERFACE_CLIP = 459,
223  EVENT_INTERFACE_DETAIL = 460,
224  EVENT_INTERFACE_TEXTURE = 461,
225  EVENT_INTERFACE_RAIN = 462,
226  EVENT_INTERFACE_GLINT = 463,
227  EVENT_INTERFACE_TOOLTIP = 464,
228  EVENT_INTERFACE_MOVIES = 465,
229  EVENT_INTERFACE_NICERST = 466,
230  EVENT_INTERFACE_SCROLL = 467,
231  EVENT_INTERFACE_INVERTX = 468,
232  EVENT_INTERFACE_INVERTY = 469,
233  EVENT_INTERFACE_EFFECT = 470,
234  EVENT_INTERFACE_MOUSE = 471,
235  EVENT_INTERFACE_GROUND = 472,
236  EVENT_INTERFACE_GADGET = 473,
237  EVENT_INTERFACE_FOG = 474,
238  EVENT_INTERFACE_HIMSELF = 475,
239  EVENT_INTERFACE_EDITMODE= 476,
240  EVENT_INTERFACE_EDITVALUE= 477,
241  EVENT_INTERFACE_SOLUCE4 = 478,
242 
243  EVENT_INTERFACE_KINFO1 = 500,
244  EVENT_INTERFACE_KINFO2 = 501,
245  EVENT_INTERFACE_KGROUP = 502,
246  EVENT_INTERFACE_KSCROLL = 503,
247  EVENT_INTERFACE_KDEF = 504,
248  EVENT_INTERFACE_KLEFT = 505,
249  EVENT_INTERFACE_KRIGHT = 506,
250  EVENT_INTERFACE_KUP = 507,
251  EVENT_INTERFACE_KDOWN = 508,
252  EVENT_INTERFACE_KGUP = 509,
253  EVENT_INTERFACE_KGDOWN = 510,
254  EVENT_INTERFACE_KCAMERA = 511,
255  EVENT_INTERFACE_KDESEL = 512,
256  EVENT_INTERFACE_KACTION = 513,
257  EVENT_INTERFACE_KNEAR = 514,
258  EVENT_INTERFACE_KAWAY = 515,
259  EVENT_INTERFACE_KNEXT = 516,
260  EVENT_INTERFACE_KHUMAN = 517,
261  EVENT_INTERFACE_KQUIT = 518,
262  EVENT_INTERFACE_KHELP = 519,
263  EVENT_INTERFACE_KPROG = 520,
264  EVENT_INTERFACE_KCBOT = 521,
265  EVENT_INTERFACE_KVISIT = 522,
266  EVENT_INTERFACE_KSPEED10= 523,
267  EVENT_INTERFACE_KSPEED15= 524,
268  EVENT_INTERFACE_KSPEED20= 525,
269  EVENT_INTERFACE_KSPEED30= 526,
270 
271  EVENT_INTERFACE_VOLSOUND= 530,
272  EVENT_INTERFACE_VOLMUSIC= 531,
273  EVENT_INTERFACE_SOUND3D = 532,
274 
275  EVENT_INTERFACE_MIN = 540,
276  EVENT_INTERFACE_NORM = 541,
277  EVENT_INTERFACE_MAX = 542,
278 
279  EVENT_INTERFACE_SILENT = 550,
280  EVENT_INTERFACE_NOISY = 551,
281 
282  EVENT_INTERFACE_JOYSTICK= 560,
283  EVENT_INTERFACE_SOLUCE = 561,
284 
285  EVENT_INTERFACE_GLINTl = 570,
286  EVENT_INTERFACE_GLINTr = 571,
287  EVENT_INTERFACE_GLINTu = 572,
288  EVENT_INTERFACE_GLINTb = 573,
289 
290  EVENT_INTERFACE_NEDIT = 580,
291  EVENT_INTERFACE_NLIST = 581,
292  EVENT_INTERFACE_NOK = 582,
293  EVENT_INTERFACE_NCANCEL = 583,
294  EVENT_INTERFACE_NDELETE = 584,
295  EVENT_INTERFACE_NLABEL = 585,
296 
297  EVENT_INTERFACE_IOWRITE = 600,
298  EVENT_INTERFACE_IOREAD = 601,
299  EVENT_INTERFACE_IOLIST = 602,
300  EVENT_INTERFACE_IONAME = 603,
301  EVENT_INTERFACE_IOLABEL = 604,
302  EVENT_INTERFACE_IOIMAGE = 605,
303  EVENT_INTERFACE_IODELETE= 606,
304 
305  EVENT_INTERFACE_PERSO = 620,
306  EVENT_INTERFACE_POK = 621,
307  EVENT_INTERFACE_PCANCEL = 622,
308  EVENT_INTERFACE_PDEF = 623,
309  EVENT_INTERFACE_PHEAD = 624,
310  EVENT_INTERFACE_PBODY = 625,
311  EVENT_INTERFACE_PLROT = 626,
312  EVENT_INTERFACE_PRROT = 627,
313  EVENT_INTERFACE_PC0a = 640,
314  EVENT_INTERFACE_PC1a = 641,
315  EVENT_INTERFACE_PC2a = 642,
316  EVENT_INTERFACE_PC3a = 643,
317  EVENT_INTERFACE_PC4a = 644,
318  EVENT_INTERFACE_PC5a = 645,
319  EVENT_INTERFACE_PC6a = 646,
320  EVENT_INTERFACE_PC7a = 647,
321  EVENT_INTERFACE_PC8a = 648,
322  EVENT_INTERFACE_PC9a = 649,
323  EVENT_INTERFACE_PCRa = 650,
324  EVENT_INTERFACE_PCGa = 651,
325  EVENT_INTERFACE_PCBa = 652,
326  EVENT_INTERFACE_PC0b = 660,
327  EVENT_INTERFACE_PC1b = 661,
328  EVENT_INTERFACE_PC2b = 662,
329  EVENT_INTERFACE_PC3b = 663,
330  EVENT_INTERFACE_PC4b = 664,
331  EVENT_INTERFACE_PC5b = 665,
332  EVENT_INTERFACE_PC6b = 666,
333  EVENT_INTERFACE_PC7b = 667,
334  EVENT_INTERFACE_PC8b = 668,
335  EVENT_INTERFACE_PC9b = 669,
336  EVENT_INTERFACE_PCRb = 670,
337  EVENT_INTERFACE_PCGb = 671,
338  EVENT_INTERFACE_PCBb = 672,
339  EVENT_INTERFACE_PFACE1 = 680,
340  EVENT_INTERFACE_PFACE2 = 681,
341  EVENT_INTERFACE_PFACE3 = 682,
342  EVENT_INTERFACE_PFACE4 = 683,
343  EVENT_INTERFACE_PGLASS0 = 690,
344  EVENT_INTERFACE_PGLASS1 = 691,
345  EVENT_INTERFACE_PGLASS2 = 692,
346  EVENT_INTERFACE_PGLASS3 = 693,
347  EVENT_INTERFACE_PGLASS4 = 694,
348  EVENT_INTERFACE_PGLASS5 = 695,
349  EVENT_INTERFACE_PGLASS6 = 696,
350  EVENT_INTERFACE_PGLASS7 = 697,
351  EVENT_INTERFACE_PGLASS8 = 698,
352  EVENT_INTERFACE_PGLASS9 = 699,
353 
354  EVENT_DT_GROUP0 = 700,
355  EVENT_DT_GROUP1 = 701,
356  EVENT_DT_GROUP2 = 702,
357  EVENT_DT_GROUP3 = 703,
358  EVENT_DT_GROUP4 = 704,
359  EVENT_DT_LABEL0 = 710,
360  EVENT_DT_LABEL1 = 711,
361  EVENT_DT_LABEL2 = 712,
362  EVENT_DT_LABEL3 = 713,
363  EVENT_DT_LABEL4 = 714,
364  EVENT_DT_VISIT0 = 720,
365  EVENT_DT_VISIT1 = 721,
366  EVENT_DT_VISIT2 = 722,
367  EVENT_DT_VISIT3 = 723,
368  EVENT_DT_VISIT4 = 724,
369  EVENT_DT_END = 725,
370 
371  EVENT_CMD = 800,
372  EVENT_SPEED = 801,
373 
374  EVENT_HYPER_PREV = 900,
375  EVENT_HYPER_NEXT = 901,
376  EVENT_HYPER_HOME = 902,
377  EVENT_HYPER_COPY = 903,
378  EVENT_HYPER_SIZE1 = 904,
379  EVENT_HYPER_SIZE2 = 905,
380  EVENT_HYPER_SIZE3 = 906,
381  EVENT_HYPER_SIZE4 = 907,
382  EVENT_HYPER_SIZE5 = 908,
383 
384  EVENT_SATCOM_HUSTON = 920,
385  EVENT_SATCOM_SAT = 921,
386  EVENT_SATCOM_LOADING = 922,
387  EVENT_SATCOM_OBJECT = 923,
388  EVENT_SATCOM_PROG = 924,
389  EVENT_SATCOM_SOLUCE = 925,
390 
391  EVENT_OBJECT_DESELECT = 1000,
392  EVENT_OBJECT_LEFT = 1001,
393  EVENT_OBJECT_RIGHT = 1002,
394  EVENT_OBJECT_UP = 1003,
395  EVENT_OBJECT_DOWN = 1004,
396  EVENT_OBJECT_GASUP = 1005,
397  EVENT_OBJECT_GASDOWN = 1006,
398  EVENT_OBJECT_HTAKE = 1020,
399  EVENT_OBJECT_MTAKE = 1021,
400  EVENT_OBJECT_MFRONT = 1022,
401  EVENT_OBJECT_MBACK = 1023,
402  EVENT_OBJECT_MPOWER = 1024,
403  EVENT_OBJECT_BHELP = 1040,
404  EVENT_OBJECT_BTAKEOFF = 1041,
405  EVENT_OBJECT_BDESTROY = 1042,
406  EVENT_OBJECT_BDERRICK = 1050,
407  EVENT_OBJECT_BSTATION = 1051,
408  EVENT_OBJECT_BFACTORY = 1052,
409  EVENT_OBJECT_BCONVERT = 1053,
410  EVENT_OBJECT_BTOWER = 1054,
411  EVENT_OBJECT_BREPAIR = 1055,
412  EVENT_OBJECT_BRESEARCH = 1056,
413  EVENT_OBJECT_BRADAR = 1057,
414  EVENT_OBJECT_BENERGY = 1058,
415  EVENT_OBJECT_BLABO = 1059,
416  EVENT_OBJECT_BNUCLEAR = 1060,
417  EVENT_OBJECT_BPARA = 1061,
418  EVENT_OBJECT_BINFO = 1062,
419  EVENT_OBJECT_BDESTROYER = 1063,
420  //EVENT_OBJECT_BXXXX = 1063,
421  EVENT_OBJECT_GFLAT = 1070,
422  EVENT_OBJECT_FCREATE = 1071,
423  EVENT_OBJECT_FDELETE = 1072,
424  EVENT_OBJECT_FCOLORb = 1073,
425  EVENT_OBJECT_FCOLORr = 1074,
426  EVENT_OBJECT_FCOLORg = 1075,
427  EVENT_OBJECT_FCOLORy = 1076,
428  EVENT_OBJECT_FCOLORv = 1077,
429  EVENT_OBJECT_FACTORYwa = 1080,
430  EVENT_OBJECT_FACTORYta = 1081,
431  EVENT_OBJECT_FACTORYfa = 1082,
432  EVENT_OBJECT_FACTORYia = 1083,
433  EVENT_OBJECT_FACTORYwc = 1084,
434  EVENT_OBJECT_FACTORYtc = 1085,
435  EVENT_OBJECT_FACTORYfc = 1086,
436  EVENT_OBJECT_FACTORYic = 1087,
437  EVENT_OBJECT_FACTORYwi = 1088,
438  EVENT_OBJECT_FACTORYti = 1089,
439  EVENT_OBJECT_FACTORYfi = 1090,
440  EVENT_OBJECT_FACTORYii = 1091,
441  EVENT_OBJECT_FACTORYws = 1092,
442  EVENT_OBJECT_FACTORYts = 1093,
443  EVENT_OBJECT_FACTORYfs = 1094,
444  EVENT_OBJECT_FACTORYis = 1095,
445  EVENT_OBJECT_FACTORYrt = 1096,
446  EVENT_OBJECT_FACTORYrc = 1097,
447  EVENT_OBJECT_FACTORYrr = 1098,
448  EVENT_OBJECT_FACTORYrs = 1099,
449  EVENT_OBJECT_FACTORYsa = 1100,
450  EVENT_OBJECT_SEARCH = 1200,
451  EVENT_OBJECT_TERRAFORM = 1201,
452  EVENT_OBJECT_FIRE = 1202,
453  EVENT_OBJECT_FIREANT = 1203,
454  EVENT_OBJECT_SPIDEREXPLO= 1204,
455  EVENT_OBJECT_RECOVER = 1220,
456  EVENT_OBJECT_BEGSHIELD = 1221,
457  EVENT_OBJECT_ENDSHIELD = 1222,
458  EVENT_OBJECT_RTANK = 1223,
459  EVENT_OBJECT_RFLY = 1224,
460  EVENT_OBJECT_RTHUMP = 1225,
461  EVENT_OBJECT_RCANON = 1226,
462  EVENT_OBJECT_RTOWER = 1227,
463  EVENT_OBJECT_RPHAZER = 1228,
464  EVENT_OBJECT_RSHIELD = 1229,
465  EVENT_OBJECT_RATOMIC = 1230,
466  EVENT_OBJECT_RiPAW = 1231,
467  EVENT_OBJECT_RiGUN = 1232,
468  EVENT_OBJECT_RESET = 1233,
469  EVENT_OBJECT_DIMSHIELD = 1234,
470  EVENT_OBJECT_TARGET = 1235,
471  EVENT_OBJECT_PROGLIST = 1310,
472  EVENT_OBJECT_PROGRUN = 1311,
473  EVENT_OBJECT_PROGEDIT = 1312,
474  EVENT_OBJECT_PROGSTART = 1313,
475  EVENT_OBJECT_PROGSTOP = 1314,
476  EVENT_OBJECT_INFOOK = 1340,
477  EVENT_OBJECT_DELETE = 1350,
478  EVENT_OBJECT_GENERGY = 1360,
479  EVENT_OBJECT_GSHIELD = 1361,
480  EVENT_OBJECT_GRANGE = 1362,
481  EVENT_OBJECT_COMPASS = 1363,
482  EVENT_OBJECT_MAP = 1364,
483  EVENT_OBJECT_MAPZOOM = 1365,
484  EVENT_OBJECT_GPROGRESS = 1366,
485  EVENT_OBJECT_GRADAR = 1367,
486  EVENT_OBJECT_GINFO = 1368,
487  EVENT_OBJECT_TYPE = 1369,
488  EVENT_OBJECT_CROSSHAIR = 1370,
489  EVENT_OBJECT_CORNERul = 1371,
490  EVENT_OBJECT_CORNERur = 1372,
491  EVENT_OBJECT_CORNERdl = 1373,
492  EVENT_OBJECT_CORNERdr = 1374,
493  EVENT_OBJECT_MAPi = 1375,
494  EVENT_OBJECT_MAPg = 1376,
495  EVENT_OBJECT_CAMERA = 1400,
496  EVENT_OBJECT_HELP = 1401,
497  EVENT_OBJECT_SOLUCE = 1402,
498  EVENT_OBJECT_CAMERAleft = 1403,
499  EVENT_OBJECT_CAMERAright= 1404,
500  EVENT_OBJECT_CAMERAnear = 1405,
501  EVENT_OBJECT_CAMERAaway = 1406,
502  EVENT_OBJECT_SHORTCUT00 = 1500,
503  EVENT_OBJECT_SHORTCUT01 = 1501,
504  EVENT_OBJECT_SHORTCUT02 = 1502,
505  EVENT_OBJECT_SHORTCUT03 = 1503,
506  EVENT_OBJECT_SHORTCUT04 = 1504,
507  EVENT_OBJECT_SHORTCUT05 = 1505,
508  EVENT_OBJECT_SHORTCUT06 = 1506,
509  EVENT_OBJECT_SHORTCUT07 = 1507,
510  EVENT_OBJECT_SHORTCUT08 = 1508,
511  EVENT_OBJECT_SHORTCUT09 = 1509,
512  EVENT_OBJECT_SHORTCUT10 = 1510,
513  EVENT_OBJECT_SHORTCUT11 = 1511,
514  EVENT_OBJECT_SHORTCUT12 = 1512,
515  EVENT_OBJECT_SHORTCUT13 = 1513,
516  EVENT_OBJECT_SHORTCUT14 = 1514,
517  EVENT_OBJECT_SHORTCUT15 = 1515,
518  EVENT_OBJECT_SHORTCUT16 = 1516,
519  EVENT_OBJECT_SHORTCUT17 = 1517,
520  EVENT_OBJECT_SHORTCUT18 = 1518,
521  EVENT_OBJECT_SHORTCUT19 = 1519,
522  EVENT_OBJECT_MOVIELOCK = 1550,
523  EVENT_OBJECT_EDITLOCK = 1551,
524  EVENT_OBJECT_LIMIT = 1560,
525 
526  EVENT_OBJECT_PEN0 = 1570,
527  EVENT_OBJECT_PEN1 = 1571,
528  EVENT_OBJECT_PEN2 = 1572,
529  EVENT_OBJECT_PEN3 = 1573,
530  EVENT_OBJECT_PEN4 = 1574,
531  EVENT_OBJECT_PEN5 = 1575,
532  EVENT_OBJECT_PEN6 = 1576,
533  EVENT_OBJECT_PEN7 = 1577,
534  EVENT_OBJECT_PEN8 = 1578,
535  EVENT_OBJECT_REC = 1580,
536  EVENT_OBJECT_STOP = 1581,
537 
538  EVENT_STUDIO_OK = 2000,
539  EVENT_STUDIO_CANCEL = 2001,
540  EVENT_STUDIO_EDIT = 2002,
541  EVENT_STUDIO_LIST = 2003,
542  EVENT_STUDIO_NEW = 2010,
543  EVENT_STUDIO_OPEN = 2011,
544  EVENT_STUDIO_SAVE = 2012,
545  EVENT_STUDIO_UNDO = 2013,
546  EVENT_STUDIO_CUT = 2014,
547  EVENT_STUDIO_COPY = 2015,
548  EVENT_STUDIO_PASTE = 2016,
549  EVENT_STUDIO_SIZE = 2017,
550  EVENT_STUDIO_TOOL = 2018,
551  EVENT_STUDIO_HELP = 2019,
552  EVENT_STUDIO_COMPILE = 2050,
553  EVENT_STUDIO_RUN = 2051,
554  EVENT_STUDIO_REALTIME = 2052,
555  EVENT_STUDIO_STEP = 2053,
556 
559 
560  EVENT_USER = 10000,
561  EVENT_FORCE_LONG = 0x7fffffff
562 };
563 
564 
570 {
572  bool virt;
574  unsigned int key;
577  unsigned int unicode;
578 };
579 
587 {
588  MOUSE_BUTTON_LEFT = (1<<1),
589  MOUSE_BUTTON_MIDDLE = (1<<2),
590  MOUSE_BUTTON_RIGHT = (1<<3),
593 };
594 
600 {
603 };
604 
610 {
611  WHEEL_UP,
612  WHEEL_DOWN
613 };
614 
620 {
623 };
624 
630 {
632  unsigned char axis;
634  int value;
635 };
636 
642 {
644  unsigned char button;
645 };
646 
652 {
654  ACTIVE_APP = 0x01,
656  ACTIVE_INPUT = 0x02,
659 
660 };
661 
667 {
669  unsigned char flags;
671  bool gain;
672 };
673 
674 
686 struct Event
687 {
690 
693  // TODO: gradually replace the usage of this with new CApplication's time functions
694  float rTime;
695 
699 
702  unsigned int kmodState;
703 
706  unsigned int trackedKeysState;
707 
711 
714  unsigned int mouseButtonsState;
715 
719 
721  union
722  {
735  };
736 
737  explicit Event(EventType _type = EVENT_NULL)
738  : type(_type)
739  , rTime(0.0f)
740  , kmodState(0)
741  , trackedKeysState(0)
742  , mouseButtonsState(0)
743  , customParam(0)
744  {}
745 };
746 
747 
749 EventType GetUniqueEventType();
750 
752 void InitializeEventTypeTexts();
753 
755 std::string ParseEventType(EventType eventType);
756 
765 {
766 public:
768  static const int MAX_EVENT_QUEUE = 100;
769 
770 public:
772  CEventQueue();
774  ~CEventQueue();
775 
777  void Flush();
779  bool AddEvent(const Event &event);
781  bool GetEvent(Event &event);
782 
783 protected:
784  Event m_fifo[MAX_EVENT_QUEUE];
785  int m_head;
786  int m_tail;
787  int m_total;
788 };
789