00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef MOUSE_STATE_H_
00026 #define MOUSE_STATE_H_
00027
00028 namespace Lamp{
00029
00030 class BinaryWriter;
00031 class BinaryReader;
00032
00033
00034
00035
00036
00037 class MouseState{
00038 friend class MouseDevice;
00039 public:
00040
00041 static const int maxButtonCount = 8;
00042
00043
00044
00045
00046
00047 MouseState(){ clear(); }
00048
00049
00050
00051
00052 virtual ~MouseState(){}
00053
00054
00055
00056
00057 virtual void clear(){
00058 xAxis_ = yAxis_ = zAxis_ = 0;
00059 for(int i = 0; i < maxButtonCount; i++){ buttons_[i] = false; }
00060 }
00061
00062
00063
00064
00065
00066
00067 virtual void setXAxis(int xAxis){ xAxis_ = xAxis; }
00068
00069
00070
00071
00072
00073 virtual int getXAxis() const{ return xAxis_; }
00074
00075
00076
00077
00078
00079 virtual void setYAxis(int yAxis){ yAxis_ = yAxis; }
00080
00081
00082
00083
00084
00085 virtual int getYAxis() const{ return yAxis_; }
00086
00087
00088
00089
00090
00091 virtual void setZAxis(int zAxis){ zAxis_ = zAxis; }
00092
00093
00094
00095
00096
00097 virtual int getZAxis() const{ return zAxis_; }
00098
00099
00100
00101
00102
00103
00104
00105 virtual void setButtonPressed(int id, bool pressed){
00106 Assert((id >= 0) && (id < maxButtonCount));
00107 buttons_[id] = pressed;
00108 }
00109
00110
00111
00112
00113
00114
00115 virtual bool buttonPressed(int id) const{
00116 Assert((id >= 0) && (id < maxButtonCount));
00117 return buttons_[id];
00118 }
00119
00120
00121
00122
00123
00124
00125 virtual String toString() const{
00126 String result;
00127 result.format("( X = %4d , Y = %4d , Z = %4d )\n"
00128 "Press %d %d %d %d %d %d %d %d\n",
00129 getXAxis(), getYAxis(), getZAxis(),
00130 buttonPressed(0), buttonPressed(1), buttonPressed(2),
00131 buttonPressed(3), buttonPressed(4), buttonPressed(5),
00132 buttonPressed(6), buttonPressed(7));
00133 return result;
00134 }
00135
00136
00137
00138
00139
00140
00141 virtual void writeBinary(BinaryWriter* binaryWriter) const;
00142
00143
00144
00145
00146
00147 virtual void readBinary(BinaryReader* binaryReader);
00148
00149
00150 private:
00151
00152 int xAxis_;
00153
00154 int yAxis_;
00155
00156 int zAxis_;
00157
00158 bool buttons_[maxButtonCount];
00159 };
00160
00161
00162 }
00163 #endif // End of _H_
00164
00165