Imported Upstream version 2.9.0
[debian/cc1111] / sim / ucsim / gui.src / obsolete / eventcl.h
1 /*
2  * Simulator of microcontrollers (eventcl.h)
3  *
4  * Copyright (C) 1999,99 Drotos Daniel, Talker Bt.
5  * 
6  * To contact author send email to drdani@mazsola.iit.uni-miskolc.hu
7  *
8  */
9
10 /* This file is part of microcontroller simulator: ucsim.
11
12 UCSIM is free software; you can redistribute it and/or modify
13 it under the terms of the GNU General Public License as published by
14 the Free Software Foundation; either version 2 of the License, or
15 (at your option) any later version.
16
17 UCSIM is distributed in the hope that it will be useful,
18 but WITHOUT ANY WARRANTY; without even the implied warranty of
19 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20 GNU General Public License for more details.
21
22 You should have received a copy of the GNU General Public License
23 along with UCSIM; see the file COPYING.  If not, write to the Free
24 Software Foundation, 59 Temple Place - Suite 330, Boston, MA
25 02111-1307, USA. */
26 /*@1@*/
27
28 #ifndef EVENTCL_HEADER
29 #define EVENTCL_HEADER
30
31 #include "ddconfig.h"
32
33 #if FD_HEADER_OK
34 # include HEADER_FD
35 #endif
36
37 #include "pobjcl.h"
38
39 #include "viewcl.h"
40
41
42 #define EV_NOTHING      0x0000
43 #define EV_MOUSE_DOWN   0x0001
44 #define EV_MOUSE_UP     0x0002
45 #define EV_MOUSE_MOVE   0x0004
46 #define EV_MOUSE_AUTO   0x0008
47 #define EV_KEY          0x0010
48 #define EV_COMMAND      0x0100
49 #define EV_BROADCAST    0x0200
50
51 // cathegories
52 #define EV_MOUSE        (EV_MOUSE_DOWN|EV_MOUSE_UP|EV_MOUSE_MOVE|EV_MOUSE_AUTO)
53 #define EV_KEYBOARD     EV_KEY
54 #define EV_MESSAGE      0xff00
55
56 #define CMD_QUIT        0
57
58 struct t_event {
59   int what;
60   union {
61     wchar_t key;
62     struct {
63       int cmd;
64       long param;
65     } msg;
66   } event;
67 };
68
69
70 class cl_input_src: public cl_base
71 {
72 public:
73   FILE *file;
74   class cl_view *view;
75   cl_input_src(FILE *ifile, class cl_view *iview);
76 };
77
78 class cl_gin: public cl_base
79 {
80 public:
81   fd_set in_set;
82   int max_fdes;
83   cl_list *inputs;
84 public:
85   cl_gin(void);
86   ~cl_gin(void);
87
88   virtual int add_input(FILE *ifile, class cl_view *iview);
89   virtual class cl_input_src *get_input_src(int fdes);
90   virtual int get_event(struct t_event *event);
91 };
92
93
94 #endif
95
96 /* End of gui.src/eventcl.h */