summaryrefslogtreecommitdiffstats
path: root/src/input/frontend/qmousedevice.cpp
diff options
context:
space:
mode:
authorFranck Arrecot <franck.arrecot@kdab.com>2016-03-09 14:26:02 +0100
committerFranck Arrecot <franck.arrecot@gmail.com>2016-03-11 13:54:57 +0000
commit55e681ac6cad2a059785a08ac920748b5f60acf9 (patch)
tree5abae65ced03df2d8e988a06c797cf24ba555559 /src/input/frontend/qmousedevice.cpp
parent4551f221b5a90a1d14c68c04edcc799d5f8316cc (diff)
QMouseController changes and rename
Task-number: QTBUG-51450 Change-Id: I7f2dbe9cf4afbd41450f42fbb6da10baa2ca7116 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/input/frontend/qmousedevice.cpp')
-rw-r--r--src/input/frontend/qmousedevice.cpp154
1 files changed, 154 insertions, 0 deletions
diff --git a/src/input/frontend/qmousedevice.cpp b/src/input/frontend/qmousedevice.cpp
new file mode 100644
index 000000000..b2af501ca
--- /dev/null
+++ b/src/input/frontend/qmousedevice.cpp
@@ -0,0 +1,154 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 Klaralvdalens Datakonsult AB (KDAB).
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt3D module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qmousedevice.h"
+#include "qmousedevice_p.h"
+
+#include <Qt3DCore/qentity.h>
+
+
+QT_BEGIN_NAMESPACE
+
+namespace Qt3DInput {
+/*! \internal */
+QMouseDevicePrivate::QMouseDevicePrivate()
+ : QAbstractPhysicalDevicePrivate()
+ , m_sensitivity(0.1f)
+{
+}
+/*!
+ * \qmltype MouseDevice
+ * \instantiates Qt3DInput::QMouseDevice
+ * \inqmlmodule Qt3D.Input
+ * \since 5.5
+ * \brief Delegates mouse events to the attached MouseHandler objects.
+ * \TODO
+ * \sa MouseHandler
+ */
+
+/*!
+ * \class Qt3DInput::QMouseDevice
+ * \inmodule Qt3DInput
+ *
+ * \brief QMouseDevice is in charge of dispatching mouse events to
+ * attached QMouseHandler objects.
+ *
+ * \since 5.5
+ * \sa QMouseHandler
+ */
+QMouseDevice::QMouseDevice(QNode *parent)
+ : QAbstractPhysicalDevice(*new QMouseDevicePrivate, parent)
+{
+}
+
+/*!
+ Destroys this QMouseDevice object.
+*/
+QMouseDevice::~QMouseDevice()
+{
+ QNode::cleanup();
+}
+
+int QMouseDevice::axisCount() const
+{
+ // TO DO: we could have mouse wheel later on
+ return 2;
+}
+
+int QMouseDevice::buttonCount() const
+{
+ return 3;
+}
+
+QStringList QMouseDevice::axisNames() const
+{
+ return QStringList()
+ << QStringLiteral("X")
+ << QStringLiteral("Y");
+}
+
+QStringList QMouseDevice::buttonNames() const
+{
+ return QStringList()
+ << QStringLiteral("Left")
+ << QStringLiteral("Right")
+ << QStringLiteral("Center");
+}
+
+int QMouseDevice::axisIdentifier(const QString &name) const
+{
+ if (name == QStringLiteral("X"))
+ return X;
+ else if (name == QStringLiteral("Y"))
+ return Y;
+ return -1;
+}
+
+float QMouseDevice::sensitivity() const
+{
+ Q_D(const QMouseDevice);
+ return d->m_sensitivity;
+}
+
+void QMouseDevice::setSensitivity(float value)
+{
+ Q_D(QMouseDevice);
+ if (qFuzzyCompare(value, d->m_sensitivity))
+ return;
+
+ d->m_sensitivity = value;
+ emit sensitivityChanged(value);
+}
+
+void QMouseDevice::copy(const Qt3DCore::QNode *ref)
+{
+ QNode::copy(ref);
+ const QMouseDevice *object = static_cast<const QMouseDevice *>(ref);
+ d_func()->m_sensitivity = object->d_func()->m_sensitivity;
+}
+
+void QMouseDevice::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &change)
+{
+ Q_UNUSED(change);
+ // TODO: To be completed as the mouse input aspect takes shape
+}
+
+} // namespace Qt3DInput
+
+QT_END_NAMESPACE