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