Blob


1 typedef struct Event Event;
2 typedef struct Menu Menu;
4 enum
5 {
6 Emouse = 1,
7 Ekeyboard = 2,
8 };
10 enum
11 {
12 MAXSLAVE = 32,
13 EMAXMSG = 128+8192, /* size of 9p header+data */
14 };
16 struct Mouse
17 {
18 int buttons; /* bit array: LMR=124 */
19 Point xy;
20 ulong msec;
21 };
23 struct Event
24 {
25 int kbdc;
26 Mouse mouse;
27 int n; /* number of characters in message */
28 void *v; /* data unpacked by general event-handling function */
29 uchar data[EMAXMSG]; /* message from an arbitrary file descriptor */
30 };
32 struct Menu
33 {
34 char **item;
35 char *(*gen)(int);
36 int lasthit;
37 };
39 /*
40 * Events
41 */
42 extern void einit(ulong);
43 extern ulong estart(ulong, int, int);
44 extern ulong estartfn(ulong, int, int, int (*fn)(int, Event*, uchar*, int));
45 extern ulong etimer(ulong, int);
46 extern ulong event(Event*);
47 extern ulong eread(ulong, Event*);
48 extern Mouse emouse(void);
49 extern int ekbd(void);
50 extern int ecanread(ulong);
51 extern int ecanmouse(void);
52 extern int ecankbd(void);
53 extern void eresized(int); /* supplied by user */
54 extern int emenuhit(int, Mouse*, Menu*);
55 extern int eatomouse(Mouse*, char*, int);
56 extern Rectangle getrect(int, Mouse*);
57 struct Cursor;
58 extern void esetcursor(struct Cursor*);
59 extern void emoveto(Point);
60 extern Rectangle egetrect(int, Mouse*);
61 extern void edrawgetrect(Rectangle, int);
62 extern int ereadmouse(Mouse*);
63 extern int eatomouse(Mouse*, char*, int);