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
00026
00027 #ifndef OSDL_MOUSE_HANDLER_H_
00028 #define OSDL_MOUSE_HANDLER_H_
00029
00030
00031
00032 #include "OSDLInputDeviceHandler.h"
00033 #include "OSDLMouseCommon.h"
00034
00035
00036 #include <string>
00037 #include <list>
00038
00039
00040
00041
00042 namespace OSDL
00043 {
00044
00045
00046
00047 namespace MVC
00048 {
00049
00050
00051
00052
00053
00054
00055 class Controller ;
00056
00057 }
00058
00059
00060
00061 namespace Events
00062 {
00063
00064
00065
00066
00067 class Mouse ;
00068
00069
00070
00083 class OSDL_DLL MouseHandler: public InputDeviceHandler
00084 {
00085
00086
00087
00088
00089
00090
00091
00092 friend class OSDL::Events::EventsModule ;
00093
00094
00095 public:
00096
00097
00098
00099
00114 explicit MouseHandler( bool useClassicalMice = true ) ;
00115
00116
00117
00122 virtual ~MouseHandler() throw() ;
00123
00124
00125
00132 bool hasDefaultMouse() const ;
00133
00134
00135
00142 Mouse & getDefaultMouse() ;
00143
00144
00145
00160 virtual void linkToController(
00161 OSDL::MVC::Controller & controller ) ;
00162
00163
00164
00182 virtual void linkToController( MouseNumber index,
00183 OSDL::MVC::Controller & controller ) ;
00184
00185
00186
00198 virtual const std::string toString(
00199 Ceylan::VerbosityLevels level = Ceylan::high ) const ;
00200
00201
00202
00203
00204
00205
00206
00207
00215 static MouseNumber GetAvailableMiceCount() ;
00216
00217
00218
00219
00220 protected:
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00241 virtual void focusGained(
00242 const FocusEvent & mouseFocusEvent ) const ;
00243
00244
00245
00255 virtual void focusLost(
00256 const FocusEvent & mouseFocusEvent ) const ;
00257
00258
00259
00267 virtual void mouseMoved(
00268 const MouseMotionEvent & mouseMovedEvent ) const ;
00269
00270
00271
00279 virtual void buttonPressed(
00280 const MouseButtonEvent & mouseButtonPressedEvent ) const ;
00281
00282
00283
00291 virtual void buttonReleased(
00292 const MouseButtonEvent & mouseButtonReleasedEvent ) const ;
00293
00294
00295
00301 virtual void blank() ;
00302
00303
00304
00314 virtual void checkMouseAt( MouseNumber index ) const ;
00315
00316
00317
00318
00323 MouseNumber _miceCount ;
00324
00325
00326
00336 Mouse ** _mice ;
00337
00338
00339
00345 bool _useClassicalMice ;
00346
00347
00348
00349
00350 private:
00351
00352
00353
00362 explicit MouseHandler( const MouseHandler & source ) ;
00363
00364
00365
00374 MouseHandler & operator = ( const MouseHandler & source ) ;
00375
00376
00377 } ;
00378
00379
00380 }
00381
00382 }
00383
00384
00385
00386 #endif // OSDL_MOUSE_HANDLER_H_
00387