#ifndef _MOUSE
#define _MOUSE

/* Note that this C/C++ bit might not work properly with your compiler.  If
   you are using C++ and your linker reports that these functions are not
   found, try explicitly forcing the extern "C" syntax by removing these
   preprocessor directives. */

#ifdef __cplusplus
extern "C" {
#endif

void initNewMouse(void huge (*drawPointer)(int x, int y, void far *image),
		  void huge (*drawBitmap)(int x, int y, void far *image),
		  void huge (*getBitmap)(int ulx, int uly, int lrx, int lry,
		  	void far *image));
void deInitNewMouse(void);
void disableNewMouse(void);
void enableNewMouse(void);

void setupMousePointer(int pointerNum);
void setPointerColours(void);

int far resetMouse(void);
int far getButtonsMouse(void);
void far showMouse(void);
void far hideMouse(void);
void far getPosMouse(int far *x, int far *y);
void far setPosMouse(unsigned x, unsigned y);
int far buttonMouse(void);
int far leftButtonMouse(void);
int far rightButtonMouse(void);
int far centerButtonMouse(void);
unsigned far buttonPressMouse(unsigned button, int far *x, int far *y);
unsigned far buttonReleaseMouse(unsigned button, int far *x, int far *y);
void far setHorizLimitsMouse(unsigned min, unsigned max);
void far setVertLimitsMouse(unsigned min, unsigned max);
void far setPointerMouse(int xoff, int yoff, void far *p);
unsigned getSaveSizeMouse(void);
void saveStateMouse(void far *buf);
void restoreStateMouse(void far *buf);
void far softResetMouse(void);
void far waitReleaseMouse(int button);
void far setRatioMouse(int horiz, int vert);
void far getSensitivityMouse(int *horiz, int *vert, int *doubleSpeed);

#ifdef __cplusplus
};
#endif

#define	LEFTBUTTON	1
#define RIGHTBUTTON	2
#define	CENTERBUTTON	3

#define	ARROW_POINTER		1
#define TARGET_POINTER		2

#endif