summaryrefslogtreecommitdiffstats
path: root/examples/custominput/custominputhandler.cpp
diff options
context:
space:
mode:
authorKeränen Pasi <pasi.keranen@digia.com>2013-11-28 08:42:27 +0200
committerPasi Keränen <pasi.keranen@digia.com>2013-11-28 13:02:50 +0200
commita7e8a3279547dbea4b5343f44f3b7563c0212f1e (patch)
tree7e82c0645dc34397c2593f86f440c22606b672df /examples/custominput/custominputhandler.cpp
parent5fde532408da5b6b3ddef13aff5e07f32015e7d9 (diff)
InputHandler C++ Example Code.
QDocs to follow in separate task. Change-Id: I9f1352c190818ba43637345881e151e566188160 Task-id: QTRD-2562 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'examples/custominput/custominputhandler.cpp')
-rw-r--r--examples/custominput/custominputhandler.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/examples/custominput/custominputhandler.cpp b/examples/custominput/custominputhandler.cpp
new file mode 100644
index 00000000..dad7c851
--- /dev/null
+++ b/examples/custominput/custominputhandler.cpp
@@ -0,0 +1,49 @@
+/****************************************************************************
+**
+** 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
+**
+****************************************************************************/
+
+#include "custominputhandler.h"
+
+#include <QtDataVisualization/Q3DCamera>
+
+CustomInputHandler::CustomInputHandler(QObject *parent) :
+ QAbstract3DInputHandler(parent)
+{
+}
+
+void CustomInputHandler::mouseMoveEvent(QMouseEvent *event, const QPoint &mousePos)
+{
+ setInputPosition(mousePos);
+}
+
+void CustomInputHandler::wheelEvent(QWheelEvent *event)
+{
+ // Adjust zoom level based on what zoom range we're in.
+ int zoomLevel = scene()->activeCamera()->zoomLevel();
+ if (zoomLevel > 100)
+ zoomLevel += event->angleDelta().y() / 12;
+ else if (zoomLevel > 50)
+ zoomLevel += event->angleDelta().y() / 60;
+ else
+ zoomLevel += event->angleDelta().y() / 120;
+ if (zoomLevel > 500)
+ zoomLevel = 500;
+ else if (zoomLevel < 10)
+ zoomLevel = 10;
+
+ scene()->activeCamera()->setZoomLevel(zoomLevel);
+}