1 /***********************************************************************/
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 #ifndef KINETICLAYOUT_H
23 #define KINETICLAYOUT_H
25 #include <QGraphicsWidget>
26 #include <QGraphicsSceneMouseEvent>
28 class QGraphicsGridLayout
;
30 class KineticScrolling
;
32 class KineticView
: public QGraphicsWidget
37 KineticView( QGraphicsWidget
*parent
= 0 );
40 void setWidget( QGraphicsWidget
*item
);
43 QGraphicsWidget
* mWindow
;
44 QGraphicsWidget
*mViewPort
;
45 QGraphicsGridLayout
*layout
;
46 ScrollBar
*verticalScrollbar
;
47 qreal mScrollVelocity
;
48 enum { NONE
, UP
, DOWN
};
49 int timerID
, overshut
, cposition
, direction
, minimalPos
, maximumPos
;
51 void doneOvershut(void);
52 KineticScrolling
*scroller
;
55 void resizeEvent( QGraphicsSceneResizeEvent
*event
);
57 void mousePressEvent( QGraphicsSceneMouseEvent
*event
);
58 void mouseMoveEvent( QGraphicsSceneMouseEvent
*event
);
59 void mouseReleaseEvent( QGraphicsSceneMouseEvent
*event
);
60 void wheelEvent(QGraphicsSceneWheelEvent
*event
);
61 void timerEvent( QTimerEvent
*event
);
65 void setKineticScrollValue( int value
);
66 void setVerticalScrollValue( int value
);
69 void startTimer(int interval
);
70 void adjustScrollBar();