plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

event.h (1562B)


      1 #ifndef _EVENT_H_
      2 #define _EVENT_H_ 1
      3 #if defined(__cplusplus)
      4 extern "C" { 
      5 #endif
      6 
      7 typedef struct	Event Event;
      8 typedef struct	Menu Menu;
      9 
     10 enum
     11 {
     12 	Emouse		= 1,
     13 	Ekeyboard	= 2
     14 };
     15 
     16 enum
     17 {
     18 	MAXSLAVE = 32,
     19 	EMAXMSG = 128+8192	/* size of 9p header+data */
     20 };
     21 
     22 struct	Mouse
     23 {
     24 	int	buttons;	/* bit array: LMR=124 */
     25 	Point	xy;
     26 	ulong	msec;
     27 };
     28 
     29 struct	Event
     30 {
     31 	int	kbdc;
     32 	Mouse	mouse;
     33 	int	n;		/* number of characters in message */
     34 	void	*v;		/* data unpacked by general event-handling function */
     35 	uchar	data[EMAXMSG];	/* message from an arbitrary file descriptor */
     36 };
     37 
     38 struct Menu
     39 {
     40 	char	**item;
     41 	char	*(*gen)(int);
     42 	int	lasthit;
     43 };
     44 
     45 /*
     46  * Events
     47  */
     48 extern void	 einit(ulong);
     49 extern ulong	 estart(ulong, int, int);
     50 extern ulong	 estartfn(ulong, int, int, int (*fn)(int, Event*, uchar*, int));
     51 extern ulong	 etimer(ulong, int);
     52 extern ulong	 event(Event*);
     53 extern ulong	 eread(ulong, Event*);
     54 extern Mouse	 emouse(void);
     55 extern int	 ekbd(void);
     56 extern int	 ecanread(ulong);
     57 extern int	 ecanmouse(void);
     58 extern int	 ecankbd(void);
     59 extern void	 eresized(int);	/* supplied by user */
     60 extern int	 emenuhit(int, Mouse*, Menu*);
     61 extern int	eatomouse(Mouse*, char*, int);
     62 extern Rectangle	getrect(int, Mouse*);
     63 struct Cursor;
     64 struct Cursor2;
     65 extern void	 esetcursor(struct Cursor*);
     66 extern void	 esetcursor2(struct Cursor*, struct Cursor2*);
     67 extern void	 emoveto(Point);
     68 extern Rectangle	egetrect(int, Mouse*);
     69 extern void		edrawgetrect(Rectangle, int);
     70 extern int		ereadmouse(Mouse*);
     71 extern int		eatomouse(Mouse*, char*, int);
     72 
     73 #if defined(__cplusplus)
     74 }
     75 #endif
     76 #endif