diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-01-07 11:09:34 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-01-07 13:26:02 +0200 |
commit | f8f57fe64c29408a8d3c41c536639e08f84747e4 (patch) | |
tree | 0d977c948945aef29e2724412dea638c512a7cb6 /src/datavisualization/engine/qabstract3dgraph.h | |
parent | 8566d712a87d9e3a78be15b6bd3498c2cf8afe57 (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.h | 100 |
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 |