Blame


1 f7012583 2003-11-25 devnull #ifndef _MOUSE_H_
2 f7012583 2003-11-25 devnull #define _MOUSE_H_ 1
3 f7012583 2003-11-25 devnull #if defined(__cplusplus)
4 f7012583 2003-11-25 devnull extern "C" {
5 f7012583 2003-11-25 devnull #endif
6 b2cfc4e2 2003-09-30 devnull typedef struct Menu Menu;
7 b2cfc4e2 2003-09-30 devnull typedef struct Mousectl Mousectl;
8 b2cfc4e2 2003-09-30 devnull
9 b2cfc4e2 2003-09-30 devnull struct Mouse
10 b2cfc4e2 2003-09-30 devnull {
11 b2cfc4e2 2003-09-30 devnull int buttons; /* bit array: LMR=124 */
12 b2cfc4e2 2003-09-30 devnull Point xy;
13 b2cfc4e2 2003-09-30 devnull ulong msec;
14 b2cfc4e2 2003-09-30 devnull };
15 b2cfc4e2 2003-09-30 devnull
16 b2cfc4e2 2003-09-30 devnull struct Mousectl
17 b2cfc4e2 2003-09-30 devnull {
18 b2cfc4e2 2003-09-30 devnull Mouse m;
19 b2cfc4e2 2003-09-30 devnull struct Channel *c; /* chan(Mouse) */
20 b2cfc4e2 2003-09-30 devnull struct Channel *resizec; /* chan(int)[2] */
21 b2cfc4e2 2003-09-30 devnull /* buffered in case client is waiting for a mouse action before handling resize */
22 b2cfc4e2 2003-09-30 devnull
23 b2cfc4e2 2003-09-30 devnull char *file;
24 b2cfc4e2 2003-09-30 devnull int mfd; /* to mouse file */
25 b2cfc4e2 2003-09-30 devnull int cfd; /* to cursor file */
26 b2cfc4e2 2003-09-30 devnull int pid; /* of slave proc */
27 b2cfc4e2 2003-09-30 devnull Display *display;
28 b2cfc4e2 2003-09-30 devnull /*Image* image; / * of associated window/display */
29 dd4afdf4 2005-02-08 devnull
30 dd4afdf4 2005-02-08 devnull /* clumsy hack for X11 */
31 dd4afdf4 2005-02-08 devnull struct Channel *ccursor;
32 dd4afdf4 2005-02-08 devnull struct Channel *ccursorwait;
33 dd4afdf4 2005-02-08 devnull QLock cursorlock;
34 b2cfc4e2 2003-09-30 devnull };
35 b2cfc4e2 2003-09-30 devnull
36 b2cfc4e2 2003-09-30 devnull struct Menu
37 b2cfc4e2 2003-09-30 devnull {
38 b2cfc4e2 2003-09-30 devnull char **item;
39 b2cfc4e2 2003-09-30 devnull char *(*gen)(int);
40 b2cfc4e2 2003-09-30 devnull int lasthit;
41 b2cfc4e2 2003-09-30 devnull };
42 b2cfc4e2 2003-09-30 devnull
43 b2cfc4e2 2003-09-30 devnull /*
44 b2cfc4e2 2003-09-30 devnull * Mouse
45 b2cfc4e2 2003-09-30 devnull */
46 b2cfc4e2 2003-09-30 devnull extern Mousectl* initmouse(char*, Image*);
47 b2cfc4e2 2003-09-30 devnull extern void moveto(Mousectl*, Point);
48 b2cfc4e2 2003-09-30 devnull extern int readmouse(Mousectl*);
49 b2cfc4e2 2003-09-30 devnull extern void closemouse(Mousectl*);
50 b2cfc4e2 2003-09-30 devnull struct Cursor;
51 b2cfc4e2 2003-09-30 devnull extern void setcursor(Mousectl*, struct Cursor*);
52 b2cfc4e2 2003-09-30 devnull extern void drawgetrect(Rectangle, int);
53 b2cfc4e2 2003-09-30 devnull extern Rectangle getrect(int, Mousectl*);
54 b2cfc4e2 2003-09-30 devnull extern int menuhit(int, Mousectl*, Menu*, Screen*);
55 f7012583 2003-11-25 devnull
56 4f30f3b4 2004-03-30 devnull extern void bouncemouse(Mouse*);
57 4f30f3b4 2004-03-30 devnull extern int _windowhasfocus; /* XXX do better */
58 4f30f3b4 2004-03-30 devnull extern int _wantfocuschanges;
59 f7012583 2003-11-25 devnull
60 f7012583 2003-11-25 devnull #if defined(__cplusplus)
61 f7012583 2003-11-25 devnull }
62 f7012583 2003-11-25 devnull #endif
63 f7012583 2003-11-25 devnull #endif