Small is beautiful.
[kineticlist.git] / kineticscroll.cpp
blobbdf14be2edc8979d55120d286feb39f2e3386003
1 /////////////////////////////////////////////////////////////////////////
2 // kineticscroll.cpp //
3 // //
4 // Copyright(C) 2009 Igor Trindade Oliveira <igor.oliveira@indt.org.br>//
5 // Copyright(C) 2009 Adenilson Cavalcanti <adenilson.silva@idnt.org.br>//
6 // //
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. //
11 // //
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. //
16 // //
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 //
20 // 02110-1301 USA //
21 /////////////////////////////////////////////////////////////////////////
22 #include "kineticscroll_p.h"
23 #include "kineticscroll.h"
24 #include <QDebug>
26 void KineticScrollingPrivate::count()
28 t = QTime::currentTime();
29 t.start();
32 unsigned int KineticScrollingPrivate::elapsed()
34 return t.restart();
37 KineticScrolling::KineticScrolling(): d( 0 )
39 d = new KineticScrollingPrivate;
42 KineticScrolling::~KineticScrolling()
44 delete d;
47 int KineticScrolling::movement()
49 return d->movement;
52 int KineticScrolling::kin_movement()
54 return d->kin_movement;
57 qreal KineticScrolling::duration()
59 return d->timeDelta;
62 void KineticScrolling::mousePressEvent( QGraphicsSceneMouseEvent *event )
64 Q_UNUSED( event );
65 d->count();
66 d->scrollVelocity = 0;
67 d->movement = 0;
68 d->kin_movement = 0;
71 void KineticScrolling::mouseMoveEvent( QGraphicsSceneMouseEvent *event )
73 int temp = event->lastPos().y() - event->pos().y();
74 if ( temp ) {
75 d->movement = temp;
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();
84 if ( temp )
85 d->kin_movement += temp;
87 if ( d->timeDelta > 200) {
88 if ( d->kin_movement > 0 )
89 d->kin_movement = 3;
90 else
91 d->kin_movement = -3;
95 void KineticScrolling::wheelReleaseEvent( QGraphicsSceneWheelEvent *event )
97 d->timeDelta = d->elapsed();
98 int temp = event->delta();
99 temp *= -1;
100 d->kin_movement += temp;