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_H_
00028 #define OSDL_MOUSE_H_
00029
00030
00031 #include "OSDLMouseCommon.h"
00032 #include "OSDLInputDevice.h"
00033 #include "OSDLVideoTypes.h"
00034
00035
00036 #include <string>
00037 #include <list>
00038
00039
00040
00041
00042
00043 namespace OSDL
00044 {
00045
00046
00047
00048 namespace Video
00049 {
00050
00051
00052 namespace TwoDimensional
00053 {
00054
00055
00056 class Point2D ;
00057
00058 }
00059
00060
00061 }
00062
00063
00064
00065 namespace Events
00066 {
00067
00068
00069
00070
00084 class OSDL_DLL Mouse: public OSDL::Events::InputDevice
00085 {
00086
00087
00088
00089
00090
00091
00092
00093 friend class OSDL::Events::MouseHandler ;
00094
00095
00096
00097 public:
00098
00099
00100
00114 explicit Mouse( MouseNumber index,
00115 bool classicalMouseMode = true ) ;
00116
00117
00118
00123 virtual ~Mouse() throw() ;
00124
00125
00126
00127
00128
00129
00130
00131
00132
00137 virtual Video::Coordinate getCursorAbscissa() const ;
00138
00139
00140
00145 virtual Video::Coordinate getCursorOrdinate() const ;
00146
00147
00148
00157 virtual void setCursorPosition(
00158 const Video::TwoDimensional::Point2D & newPosition ) const ;
00159
00160
00161
00172 virtual void setCursorPosition( Video::Coordinate x,
00173 Video::Coordinate y ) const ;
00174
00175
00176
00183 virtual bool getCursorVisibility() const ;
00184
00185
00186
00195 virtual void setCursorVisibility( bool on ) ;
00196
00197
00198
00199
00200
00201
00202
00203
00209 virtual MouseButtonNumber getNumberOfButtons() const ;
00210
00211
00212
00219 virtual MouseWheelNumber getNumberOfWheels() const ;
00220
00221
00222
00230 virtual bool isLeftButtonPressed() const ;
00231
00232
00233
00241 virtual bool isMiddleButtonPressed() const ;
00242
00243
00244
00252 virtual bool isRightButtonPressed() const ;
00253
00254
00255
00268 virtual bool isButtonPressed( MouseButtonNumber buttonNumber )
00269 const ;
00270
00271
00272
00283 virtual MouseButtonMask getButtonStates() const ;
00284
00285
00286
00292 virtual void update() ;
00293
00294
00295
00307 virtual const std::string toString(
00308 Ceylan::VerbosityLevels level = Ceylan::high ) const ;
00309
00310
00311
00325 static bool IsPressed( MouseButtonMask mask,
00326 MouseButtonNumber buttonToInspect ) ;
00327
00328
00329
00335 static const MouseButtonNumber DefaultButtonTotalNumber ;
00336
00337
00338
00344 static const MouseButtonNumber DefaultButtonActualNumber ;
00345
00346
00347
00352 static const MouseWheelNumber DefaultWheelNumber ;
00353
00354
00355
00356
00357 protected:
00358
00359
00360
00367 virtual MouseNumber getIndex() const ;
00368
00369
00370
00371
00372
00373
00374
00375
00376
00377
00378
00379
00380
00381
00382
00383
00392 virtual void focusGained(
00393 const FocusEvent & mouseFocusEvent ) ;
00394
00395
00396
00405 virtual void focusLost( const FocusEvent & mouseFocusEvent ) ;
00406
00407
00408
00409
00410
00411
00412
00413
00421 virtual void mouseMoved(
00422 const MouseMotionEvent & mouseEvent ) ;
00423
00424
00425
00433 virtual void buttonPressed(
00434 const MouseButtonEvent & mouseEvent ) ;
00435
00436
00437
00445 virtual void buttonReleased(
00446 const MouseButtonEvent & mouseEvent ) ;
00447
00448
00449
00450
00452 MouseNumber _index ;
00453
00454
00455
00457 bool _inClassicalMode ;
00458
00459
00460
00462 MouseButtonNumber _buttonTotalCount ;
00463
00464
00466 Video::Coordinate _lastRelativeAbscissa ;
00467
00468
00470 Video::Coordinate _lastRelativeOrdinate ;
00471
00472
00473
00474
00475 private:
00476
00477
00478
00487 explicit Mouse( const Mouse & source ) ;
00488
00489
00490
00499 Mouse & operator = ( const Mouse & source ) ;
00500
00501
00502
00503 } ;
00504
00505
00506 }
00507
00508 }
00509
00510
00511
00512 #endif // OSDL_MOUSE_H_
00513