Oops ... NOW, fix the bug in bounce effect using mouse wheel
[kineticlist.git] / kineticview.h
blobf50263b28b00cbd9e3dad2db8b45ae07d5621769
1 /***********************************************************************/
2 /* kineticview.h */
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 #ifndef KINETICLAYOUT_H
23 #define KINETICLAYOUT_H
25 #include <QGraphicsWidget>
26 #include <QGraphicsSceneMouseEvent>
28 class QGraphicsGridLayout;
29 class ScrollBar;
30 class KineticScrollingPrivate;
31 class QPropertyAnimation;
33 class KineticView : public QGraphicsWidget
35 Q_OBJECT
37 public:
38 KineticView(QGraphicsWidget *parent = 0);
39 ~KineticView();
41 void setWidget(QGraphicsWidget *item);
43 private:
45 QGraphicsGridLayout *layout;
46 ScrollBar *verticalScrollbar;
47 KineticScrollingPrivate *d;
48 QPropertyAnimation *scrollAnimation;
50 protected:
51 void resizeEvent( QGraphicsSceneResizeEvent *event );
52 bool eventFilter( QObject *watched, QEvent *event );
54 void mousePressEvent(QGraphicsSceneMouseEvent *event);
55 void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
56 void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
57 void wheelEvent(QGraphicsSceneWheelEvent *event);
59 int thresholdPosition( int value );
60 void resetAnimation( int finalPosition, int duration );
62 public Q_SLOTS:
63 void setVerticalScrollValue(int value);
64 void overshoot();
66 private:
67 void adjustScrollBar();
70 #endif