tmouse.h - plan9port - [fork] Plan 9 from user space
(HTM) git clone git://src.adamsgaard.dk/plan9port
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
tmouse.h (1159B)
---
1 #ifndef _MOUSE_H_
2 #define _MOUSE_H_ 1
3 #if defined(__cplusplus)
4 extern "C" {
5 #endif
6 typedef struct Menu Menu;
7 typedef struct Mousectl Mousectl;
8
9 struct Mouse
10 {
11 int buttons; /* bit array: LMR=124 */
12 Point xy;
13 ulong msec;
14 };
15
16 struct Mousectl
17 {
18 Mouse m;
19 struct Channel *c; /* chan(Mouse) */
20 struct Channel *resizec; /* chan(int)[2] */
21 /* buffered in case client is waiting for a mouse action before handling resize */
22
23 Display *display; /* associated display */
24 };
25
26 struct Menu
27 {
28 char **item;
29 char *(*gen)(int);
30 int lasthit;
31 };
32
33 /*
34 * Mouse
35 */
36 extern Mousectl* initmouse(char*, Image*);
37 extern void moveto(Mousectl*, Point);
38 extern int readmouse(Mousectl*);
39 extern void closemouse(Mousectl*);
40 struct Cursor;
41 struct Cursor2;
42 extern void setcursor(Mousectl*, struct Cursor*);
43 extern void setcursor2(Mousectl*, struct Cursor*, struct Cursor2*);
44 extern void drawgetrect(Rectangle, int);
45 extern Rectangle getrect(int, Mousectl*);
46 extern int menuhit(int, Mousectl*, Menu*, Screen*);
47
48 extern void bouncemouse(Mouse*);
49 extern int _windowhasfocus; /* XXX do better */
50 extern int _wantfocuschanges;
51
52 #if defined(__cplusplus)
53 }
54 #endif
55 #endif