summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/qabstract3dgraph.h
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-01-07 11:09:34 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-01-07 13:26:02 +0200
commitf8f57fe64c29408a8d3c41c536639e08f84747e4 (patch)
tree0d977c948945aef29e2724412dea638c512a7cb6 /src/datavisualization/engine/qabstract3dgraph.h
parent8566d712a87d9e3a78be15b6bd3498c2cf8afe57 (diff)
Abstract base class for graphs
Rename the Q3DWindow -> QAbstract3DGraph Moved common properties and functionality from subclasses to QAbstract3DGraph Task-number: QTRD-2213 Change-Id: Icc1733f7efb1b06bdda024f1cf42b8bc24d96885 Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'src/datavisualization/engine/qabstract3dgraph.h')
-rw-r--r--src/datavisualization/engine/qabstract3dgraph.h100
1 files changed, 100 insertions, 0 deletions
diff --git a/src/datavisualization/engine/qabstract3dgraph.h b/src/datavisualization/engine/qabstract3dgraph.h
new file mode 100644
index 00000000..f2d7eb48
--- /dev/null
+++ b/src/datavisualization/engine/qabstract3dgraph.h
@@ -0,0 +1,100 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtDataVisualization module.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+**
+****************************************************************************/
+
+#ifndef QABSTRACT3DGRAPH_H
+#define QABSTRACT3DGRAPH_H
+
+#include <QtDataVisualization/qdatavisualizationenums.h>
+
+#include <QWindow>
+#include <QOpenGLFunctions>
+#include <QScreen>
+
+class QPainter;
+
+QT_DATAVISUALIZATION_BEGIN_NAMESPACE
+
+class QAbstract3DGraphPrivate;
+class Abstract3DController;
+class QAbstract3DInputHandler;
+class Q3DTheme;
+class Q3DScene;
+
+class QT_DATAVISUALIZATION_EXPORT QAbstract3DGraph : public QWindow, protected QOpenGLFunctions
+{
+ Q_OBJECT
+ Q_PROPERTY(QAbstract3DInputHandler* activeInputHandler READ activeInputHandler WRITE setActiveInputHandler NOTIFY activeInputHandlerChanged)
+ Q_PROPERTY(Q3DTheme* activeTheme READ activeTheme WRITE setActiveTheme NOTIFY activeThemeChanged)
+ Q_PROPERTY(QtDataVisualization::QDataVis::SelectionFlags selectionMode READ selectionMode WRITE setSelectionMode NOTIFY selectionModeChanged)
+ Q_PROPERTY(QtDataVisualization::QDataVis::ShadowQuality shadowQuality READ shadowQuality WRITE setShadowQuality NOTIFY shadowQualityChanged)
+ Q_PROPERTY(Q3DScene* scene READ scene)
+
+protected:
+ explicit QAbstract3DGraph(QAbstract3DGraphPrivate *d, QWindow *parent = 0);
+public:
+ virtual ~QAbstract3DGraph();
+
+ void addInputHandler(QAbstract3DInputHandler *inputHandler);
+ void releaseInputHandler(QAbstract3DInputHandler *inputHandler);
+ void setActiveInputHandler(QAbstract3DInputHandler *inputHandler);
+ QAbstract3DInputHandler *activeInputHandler();
+
+ void addTheme(Q3DTheme *theme);
+ void releaseTheme(Q3DTheme *theme);
+ void setActiveTheme(Q3DTheme *theme);
+ Q3DTheme *activeTheme() const;
+ QList<Q3DTheme *> themes() const;
+
+ void setSelectionMode(QDataVis::SelectionFlags mode);
+ QDataVis::SelectionFlags selectionMode() const;
+
+ void setShadowQuality(QDataVis::ShadowQuality quality);
+ QDataVis::ShadowQuality shadowQuality() const;
+
+ Q3DScene *scene() const;
+
+protected:
+ bool event(QEvent *event);
+ void resizeEvent(QResizeEvent *event);
+ void exposeEvent(QExposeEvent *event);
+
+ void mouseDoubleClickEvent(QMouseEvent *event);
+ void touchEvent(QTouchEvent *event);
+ void mousePressEvent(QMouseEvent *event);
+ void mouseReleaseEvent(QMouseEvent *event);
+ void mouseMoveEvent(QMouseEvent *event);
+ void wheelEvent(QWheelEvent *event);
+
+
+signals:
+ void activeInputHandlerChanged(QAbstract3DInputHandler *inputHandler);
+ void activeThemeChanged(Q3DTheme *theme);
+ void selectionModeChanged(QDataVis::SelectionFlags mode);
+ void shadowQualityChanged(QDataVis::ShadowQuality quality);
+
+private:
+ QScopedPointer<QAbstract3DGraphPrivate> d_ptr;
+
+ friend class Q3DBars;
+ friend class Q3DScatter;
+ friend class Q3DSurface;
+};
+
+QT_DATAVISUALIZATION_END_NAMESPACE
+
+#endif