//Class Mouse handles the common mouse functions available
//Author: Tommy Grandefors
//Date: April 1997

#ifndef MOUSE_HH
#define MOUSE_HH

#include "typedef.hh"	//Type defines such as 'unsigned char' means 'UBYTE'

class Mouse
{
public:
  Mouse(void); //Constructor, just initialize some variables.
  ~Mouse(void); //Desctructor.
  //Is the first method to be called after the creation of the object.
  //Returns positive value if mouse is available, else value zero is returned.
  WORD IsMouseAvailable(void);
  WORD NoOfMouseButtonsAvaliable(void);
  void HideMousePointer(void);
  void DisplayMousePointer(void);
  void SetSensitivity(WORD xAxis, WORD yAxis, WORD doubleSpeed);
  void GetMousePositionAndButtons(WORD &x, WORD &y, WORD &leftButton, WORD &middleButton, WORD &rightButton);
  void GetMouseRelMotions(WORD &x, WORD &y);
private:
  WORD nrOfButtons; //Will hold the number of buttons available on mouse.
};

#endif
