summaryrefslogtreecommitdiffstats
path: root/examples/opengl/paintedwindow/paintedwindow.h
diff options
context:
space:
mode:
Diffstat (limited to 'examples/opengl/paintedwindow/paintedwindow.h')
-rw-r--r--examples/opengl/paintedwindow/paintedwindow.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/examples/opengl/paintedwindow/paintedwindow.h b/examples/opengl/paintedwindow/paintedwindow.h
index dcf8110e24..28e06ec4df 100644
--- a/examples/opengl/paintedwindow/paintedwindow.h
+++ b/examples/opengl/paintedwindow/paintedwindow.h
@@ -44,7 +44,10 @@
#include <QtGui/qopenglshaderprogram.h>
#include <QtGui/qopenglframebufferobject.h>
+#include <QPropertyAnimation>
+
#include <QColor>
+#include <QImage>
#include <QTime>
QT_BEGIN_NAMESPACE
@@ -54,16 +57,39 @@ QT_END_NAMESPACE
class PaintedWindow : public QWindow
{
Q_OBJECT
+ Q_PROPERTY(qreal rotation READ rotation WRITE setRotation NOTIFY rotationChanged)
+
public:
PaintedWindow();
+ qreal rotation() const { return m_rotation; }
+
+signals:
+ void rotationChanged(qreal rotation);
+
private slots:
void paint();
+ void setRotation(qreal r);
+ void orientationChanged(Qt::ScreenOrientation newOrientation);
+ void rotationDone();
private:
void resizeEvent(QResizeEvent *);
void exposeEvent(QExposeEvent *);
void mousePressEvent(QMouseEvent *);
+ void paint(QPainter *painter, const QRect &rect);
+
QOpenGLContext *m_context;
+ qreal m_rotation;
+
+ QImage m_prevImage;
+ QImage m_nextImage;
+ qreal m_deltaRotation;
+
+ Qt::ScreenOrientation m_targetOrientation;
+ Qt::ScreenOrientation m_nextTargetOrientation;
+
+ QPropertyAnimation *m_animation;
+ QTimer *m_paintTimer;
};