diff options
| author | rsc <devnull@localhost> | 2003-09-30 17:47:42 +0000 |
|---|---|---|
| committer | rsc <devnull@localhost> | 2003-09-30 17:47:42 +0000 |
| commit | 76193d7cb0457807b2f0b95f909ab5de19480cd7 (patch) | |
| tree | 97e538c7e38181431e90289a0fe8b6b7ce1f8f3c /src/libdraw/mouse.h | |
| parent | ed7c8e8d02c02bdbff1e88a6d8d1419f39af48ad (diff) | |
| download | plan9port-76193d7cb0457807b2f0b95f909ab5de19480cd7.tar.gz plan9port-76193d7cb0457807b2f0b95f909ab5de19480cd7.zip | |
Initial revision
Diffstat (limited to 'src/libdraw/mouse.h')
| -rw-r--r-- | src/libdraw/mouse.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/libdraw/mouse.h b/src/libdraw/mouse.h new file mode 100644 index 00000000..f0a0f697 --- /dev/null +++ b/src/libdraw/mouse.h @@ -0,0 +1,44 @@ +typedef struct Menu Menu; +typedef struct Mousectl Mousectl; + +struct Mouse +{ + int buttons; /* bit array: LMR=124 */ + Point xy; + ulong msec; +}; + +struct Mousectl +{ + Mouse m; + struct Channel *c; /* chan(Mouse) */ + struct Channel *resizec; /* chan(int)[2] */ + /* buffered in case client is waiting for a mouse action before handling resize */ + + char *file; + int mfd; /* to mouse file */ + int cfd; /* to cursor file */ + int pid; /* of slave proc */ + Display *display; + /*Image* image; / * of associated window/display */ +}; + +struct Menu +{ + char **item; + char *(*gen)(int); + int lasthit; +}; + +/* + * Mouse + */ +extern Mousectl* initmouse(char*, Image*); +extern void moveto(Mousectl*, Point); +extern int readmouse(Mousectl*); +extern void closemouse(Mousectl*); +struct Cursor; +extern void setcursor(Mousectl*, struct Cursor*); +extern void drawgetrect(Rectangle, int); +extern Rectangle getrect(int, Mousectl*); +extern int menuhit(int, Mousectl*, Menu*, Screen*); |
