diff options
author | Franck Arrecot <franck.arrecot@kdab.com> | 2016-03-09 14:26:02 +0100 |
---|---|---|
committer | Franck Arrecot <franck.arrecot@gmail.com> | 2016-03-11 13:54:57 +0000 |
commit | 55e681ac6cad2a059785a08ac920748b5f60acf9 (patch) | |
tree | 5abae65ced03df2d8e988a06c797cf24ba555559 /src/input/frontend/qmousedevice.cpp | |
parent | 4551f221b5a90a1d14c68c04edcc799d5f8316cc (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.cpp | 154 |
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 |