1 /////////////////////////////////////////////////////////////////////////
2 // kineticscroll.cpp //
4 // Copyright(C) 2009 Igor Trindade Oliveira <igor.oliveira@indt.org.br>//
5 // Copyright(C) 2009 Adenilson Cavalcanti <adenilson.silva@idnt.org.br>//
7 // This library is free software; you can redistribute it and/or //
8 // modify it under the terms of the GNU Lesser General Public //
9 // License as published by the Free Software Foundation; either //
10 // version 2.1 of the License, or (at your option) any later version. //
12 // This library is distributed in the hope that it will be useful, //
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of //
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU //
15 // Lesser General Public License for more details. //
17 // You should have received a copy of the GNU Lesser General Public //
18 // License along with this library; if not, write to the Free Software //
19 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA //
21 /////////////////////////////////////////////////////////////////////////
22 #include "kineticscroll_p.h"
23 #include "kineticscroll.h"
26 void KineticScrollingPrivate::count()
28 t
= QTime::currentTime();
32 unsigned int KineticScrollingPrivate::elapsed()
37 KineticScrolling::KineticScrolling(): d( 0 )
39 d
= new KineticScrollingPrivate
;
42 KineticScrolling::~KineticScrolling()
47 int KineticScrolling::movement()
52 int KineticScrolling::kin_movement()
54 return d
->kin_movement
;
57 qreal
KineticScrolling::duration()
62 void KineticScrolling::mousePressEvent( QGraphicsSceneMouseEvent
*event
)
66 d
->scrollVelocity
= 0;
71 void KineticScrolling::mouseMoveEvent( QGraphicsSceneMouseEvent
*event
)
73 int temp
= event
->lastPos().y() - event
->pos().y();
76 d
->kin_movement
+= temp
;
80 void KineticScrolling::mouseReleaseEvent( QGraphicsSceneMouseEvent
*event
)
82 d
->timeDelta
= d
->elapsed();
83 int temp
= event
->lastPos().y() - event
->pos().y();
85 d
->kin_movement
+= temp
;
87 if ( d
->timeDelta
> 200) {
88 if ( d
->kin_movement
> 0 )
95 void KineticScrolling::wheelReleaseEvent( QGraphicsSceneWheelEvent
*event
)
97 d
->timeDelta
= d
->elapsed();
98 int temp
= event
->delta();
100 d
->kin_movement
+= temp
;