00001
00044
00045 #ifndef _CMOUSESIMPLE_H_
00046 #define _CMOUSESIMPLE_H_
00047
00048
00049
00057
00058 class CMouseSimple
00059 {
00060 public:
00061
00065 enum{
00066 MOUSE_LEFT,
00067 MOUSE_MIDDLE,
00068 MOUSE_RIGHT,
00069 MINIMUM_DRAG_TIME = 250
00070 };
00071
00072 CMouseSimple();
00073 ~CMouseSimple();
00074
00075 int GetNumButtons(void) const { return m_NumButtons; }
00076 bool GetButton(int button);
00077 bool SetButton(int button, bool state);
00078
00079 inline int GetMouseXi(void) const { return m_X; }
00080 inline int GetMouseYi(void) const { return m_Y; }
00081 inline float GetMouseXf(void) const { return m_fX; }
00082 inline float GetMouseYf(void) const { return m_fY; }
00083 void SetMouseXY(int x, int y);
00084
00085 int GetDragTime(int button);
00086 bool ButtonClick(int button);
00087 void UnClickButton(int button);
00088 void SetLimitRegion(int x1, int y1, int x2, int y2);
00089 bool LimitMouseToRegion(void);
00090 void SetScreenSize(int w, int h);
00091
00092 private:
00093 float m_fX;
00094 float m_fY;
00095 int m_X;
00096 int m_Y;
00097 int m_NumButtons;
00098 bool *m_Buttons;
00099 time_t *m_DragTime;
00100 int m_iDisplayWidth;
00101 int m_iDisplayHeight;
00102 int m_iDisplayWidthHalf;
00103 int m_iDisplayHeightHalf;
00104 int m_Limit[4];
00105 };
00106
00107
00108
00113
00114 extern CMouseSimple *g_pMouseSimple;
00115
00116
00117 #endif
00118