xref: /plan9-contrib/sys/include/mouse.h (revision d9306527b4a7229dcf0cf3c58aed36bb9da82854)
17dd7cddfSDavid du Colombier #pragma src "/sys/src/libdraw"
27dd7cddfSDavid du Colombier 
3*d9306527SDavid du Colombier typedef struct	Channel Channel;
47dd7cddfSDavid du Colombier typedef struct	Cursor Cursor;
57dd7cddfSDavid du Colombier typedef struct	Menu Menu;
67dd7cddfSDavid du Colombier typedef struct 	Mousectl Mousectl;
77dd7cddfSDavid du Colombier 
87dd7cddfSDavid du Colombier struct	Mouse
97dd7cddfSDavid du Colombier {
107dd7cddfSDavid du Colombier 	int	buttons;	/* bit array: LMR=124 */
117dd7cddfSDavid du Colombier 	Point	xy;
127dd7cddfSDavid du Colombier 	ulong	msec;
137dd7cddfSDavid du Colombier };
147dd7cddfSDavid du Colombier 
157dd7cddfSDavid du Colombier struct Mousectl
167dd7cddfSDavid du Colombier {
177dd7cddfSDavid du Colombier 	Mouse;
187dd7cddfSDavid du Colombier 	Channel	*c;	/* chan(Mouse) */
197dd7cddfSDavid du Colombier 	Channel	*resizec;	/* chan(int)[2] */
207dd7cddfSDavid du Colombier 			/* buffered in case client is waiting for a mouse action before handling resize */
217dd7cddfSDavid du Colombier 
227dd7cddfSDavid du Colombier 	char		*file;
237dd7cddfSDavid du Colombier 	int		mfd;		/* to mouse file */
247dd7cddfSDavid du Colombier 	int		cfd;		/* to cursor file */
257dd7cddfSDavid du Colombier 	int		pid;		/* of slave proc */
267dd7cddfSDavid du Colombier 	Image*	image;	/* of associated window/display */
277dd7cddfSDavid du Colombier };
287dd7cddfSDavid du Colombier 
297dd7cddfSDavid du Colombier struct Menu
307dd7cddfSDavid du Colombier {
317dd7cddfSDavid du Colombier 	char	**item;
327dd7cddfSDavid du Colombier 	char	*(*gen)(int);
337dd7cddfSDavid du Colombier 	int	lasthit;
347dd7cddfSDavid du Colombier };
357dd7cddfSDavid du Colombier 
367dd7cddfSDavid du Colombier /*
377dd7cddfSDavid du Colombier  * Mouse
387dd7cddfSDavid du Colombier  */
397dd7cddfSDavid du Colombier extern Mousectl*	initmouse(char*, Image*);
407dd7cddfSDavid du Colombier extern void		moveto(Mousectl*, Point);
417dd7cddfSDavid du Colombier extern int			readmouse(Mousectl*);
427dd7cddfSDavid du Colombier extern void		closemouse(Mousectl*);
437dd7cddfSDavid du Colombier extern void		setcursor(Mousectl*, Cursor*);
447dd7cddfSDavid du Colombier extern void		drawgetrect(Rectangle, int);
457dd7cddfSDavid du Colombier extern Rectangle	getrect(int, Mousectl*);
467dd7cddfSDavid du Colombier extern int	 		menuhit(int, Mousectl*, Menu*, Screen*);
47