46 lines · 1003 B · C
RawDownload
#pragma src "/sys/src/libdraw" typedef struct	Channel Channel;typedef struct	Cursor Cursor;typedef struct	Menu Menu;typedef struct 	Mousectl Mousectl; struct	Mouse{	int	buttons;	/* bit array: LMR=124 */	Point	xy;	ulong	msec;}; struct Mousectl{	Mouse;	Channel	*c;	/* chan(Mouse) */	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 */	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*);extern void		setcursor(Mousectl*, Cursor*);extern void		drawgetrect(Rectangle, int);extern Rectangle	getrect(int, Mousectl*);extern int	 		menuhit(int, Mousectl*, Menu*, Screen*);