Changed the section to user/hidden as required for Nokia Store
[ghostsoverboard] / orientationcontrolledgraphicspixmapobject.h
1 /**************************************************************************
2         Ghosts Overboard - a game for 'Meego 1.2 Harmattan'
3
4         Copyright (C) 2011  Heli Hyvättinen
5
6         This file is part of Ghosts Overboard
7
8         Ghosts Overboard is free software: you can redistribute it and/or modify
9         it under the terms of the GNU General Public License as published by
10         the Free Software Foundation, either version 2 of the License, or
11         (at your option) any later version.
12
13         This program is distributed in the hope that it will be useful,
14         but WITHOUT ANY WARRANTY; without even the implied warranty of
15         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16         GNU General Public License for more details.
17
18         You should have received a copy of the GNU General Public License
19         along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
21 **************************************************************************/
22
23 #ifndef ORIENTATIONCONTROLLEDGRAPHICSPIXMAPOBJECT_H
24 #define ORIENTATIONCONTROLLEDGRAPHICSPIXMAPOBJECT_H
25
26 #include <QGraphicsPixmapItem>
27 #include <QRotationSensor>
28 #include <QTimer>
29
30 QTM_USE_NAMESPACE
31
32
33
34 class OrientationControlledGraphicsPixmapObject : public QObject, public QGraphicsPixmapItem
35 {
36     Q_OBJECT
37
38     Q_PROPERTY(QPointF pos READ pos WRITE setPos)
39
40 public:
41 //    explicit OrientationControlledGraphicsPixmapObject(QGraphicsItem *parent = 0);
42     explicit OrientationControlledGraphicsPixmapObject(QPixmap pixmap = 0, QGraphicsItem *parent = 0);
43
44
45 signals:
46
47
48 public slots:
49     void startMoving();
50     void stopMoving();
51     void readRotationSensor();
52     virtual void setPos(const QPointF &pos);
53     void rotationSensorReady();
54
55
56 protected:
57     /*! Returns true if the new position is to be maintained and false if a revert back to the old position is needed.
58         This stub always just returns true. Actual collision handling is left for subclasses to implement (by reimplementing this function).
59 */
60     virtual bool handleCollisions();
61
62
63 private:
64
65     QRotationSensor rotationSensor_;
66     QPointF oldOldPos_;
67     QTimer rotationReadingTimer_;
68     bool rotationReadingInitialized_;
69
70
71
72
73 };
74
75 #endif // ORIENTATIONCONTROLLEDGRAPHICSPIXMAPOBJECT_H