
#define mouseinclude

#define leftmousebuttonaction 0
#define rightmousebuttonaction 1
#define centermousebuttonaction 2
#define wheelmousebuttonaction 3


typedef struct tymouserecord {
	
	boolean fldoubleclick;
	
	Point localpt;
	
	long mouseuptime; 
	
	long mousedowntime; 
	
	Point mouseuppoint;
	
	Point mousedownpoint;
	
	boolean fldoubleclickdisabled;

	short whichbutton;
	} tymouserecord;
	
	
extern tymouserecord mousestatus;


/*prototypes*/

void setmousedoubleclickstatus (boolean fl);

extern boolean mousebuttondown (void);

extern void waitmousebutton (boolean);

extern void waitmouseclick (void);

extern boolean mousestilldown (void);

extern boolean rightmousestilldown (void); /*7.0b26 PBS*/

extern void getmousepoint (Point *);

extern boolean getmousewindowpos (WindowPtr *, Point *);

extern boolean mousetrack (Rect, void (*) (boolean));

extern void mousedoubleclickdisable (void);

extern void mouseup (long eventwhen, long eventposx, long eventposy, long eventwhat);

extern void mousedown (long eventwhen, long eventposx, long eventposy, long eventwhat);

extern boolean mousedoubleclick ();

extern boolean ismouseleftclick (void);

extern boolean ismouserightclick (void);

extern boolean ismousecenterclick (void);

extern boolean ismousewheelclick (void);

extern void smashmouse (Point);

extern void showmousecursor (void);

extern void hidemousecursor (void);

extern boolean mousecheckautoscroll (Point, Rect, boolean, tydirection *);

extern long getmousedoubleclicktime(void);

