00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "mouse.h"
00021 #include "mouseprivate.h"
00022
00023 #include <QtCore/QDebug>
00024
00025 using namespace GluonInput;
00026
00027 Mouse::Mouse( InputThread* inputThread, QObject* parent )
00028 : InputDevice( inputThread, parent )
00029 , d( new MousePrivate )
00030 {
00031 d->originalPosition = d->position = QPoint( 0, 0 );
00032 d->sensibility = 1;
00033
00034 connect( inputThread, SIGNAL( relAxisMoved( int, int ) ), SLOT( mouseMoved( int, int ) ), Qt::DirectConnection );
00035 }
00036
00037 QPoint Mouse::position()
00038 {
00039 return d->position;
00040 }
00041
00042 void Mouse::setSensibility( double s )
00043 {
00044 d->sensibility = s;
00045 }
00046
00047 void Mouse::setOrigin( const QPoint p )
00048 {
00049 d->originalPosition = p;
00050 }
00051
00052 int Mouse::wheelPosition() const
00053 {
00054 return d->wheelPos;
00055 }
00056
00057 int Mouse::hWheelPosition() const
00058 {
00059 return d->hWheelPos;
00060 }
00061
00062 double Mouse::sensibility() const
00063 {
00064 return d->sensibility;
00065 }
00066
00067 void Mouse::mouseMoved( int axis, int distance )
00068 {
00069 switch( axis )
00070 {
00071 case GluonButtons::X_REL:
00072 d->position.setX( d->position.x() + distance );
00073 break;
00074
00075 case GluonButtons::Y_REL:
00076 d->position.setY( d->position.y() - distance );
00077 break;
00078 case GluonButtons::HWHEEL:
00079 d->hWheelPos = distance;
00080 break;
00081 case GluonButtons::WHEEL_REL:
00082 d->wheelPos = distance;
00083 break;
00084 }
00085 }
00086
00087
00088 #include "mouse.moc"