summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qtouchdevice.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/kernel/qtouchdevice.cpp')
-rw-r--r--src/gui/kernel/qtouchdevice.cpp292
1 files changed, 0 insertions, 292 deletions
diff --git a/src/gui/kernel/qtouchdevice.cpp b/src/gui/kernel/qtouchdevice.cpp
deleted file mode 100644
index 8293fddc59..0000000000
--- a/src/gui/kernel/qtouchdevice.cpp
+++ /dev/null
@@ -1,292 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtGui 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 "qtouchdevice.h"
-#include "qtouchdevice_p.h"
-#include <QList>
-#include <QMutex>
-#include <QCoreApplication>
-
-#include <private/qdebug_p.h>
-#include <private/qlocking_p.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \class QTouchDevice
- \brief The QTouchDevice class describes the device from which touch events originate.
- \since 5.0
- \ingroup touch
- \inmodule QtGui
-
- Each QTouchEvent contains a QTouchDevice pointer to allow accessing
- device-specific properties like type and capabilities. It is the
- responsibility of the platform or generic plug-ins to register the
- available touch devices via QWindowSystemInterface before generating any
- touch events. Applications do not need to instantiate this class, they
- should just access the global instances pointed to by QTouchEvent::device().
-*/
-
-/*! \enum QTouchDevice::DeviceType
-
- This enum represents the type of device that generated a QTouchEvent.
-
- \value TouchScreen In this type of device, the touch surface and display are integrated. This
- means the surface and display typically have the same size, such that there
- is a direct relationship between the touch points' physical positions and the
- coordinate reported by QTouchEvent::TouchPoint. As a result, Qt allows the
- user to interact directly with multiple QWidgets and QGraphicsItems at the
- same time.
-
- \value TouchPad In this type of device, the touch surface is separate from the display. There
- is not a direct relationship between the physical touch location and the
- on-screen coordinates. Instead, they are calculated relative to the current
- mouse position, and the user must use the touch-pad to move this reference
- point. Unlike touch-screens, Qt allows users to only interact with a single
- QWidget or QGraphicsItem at a time.
-*/
-
-/*! \enum QTouchDevice::CapabilityFlag
-
- This enum is used with QTouchDevice::capabilities() to indicate what kind of information the
- touch device or its driver can provide.
-
- \value Position Indicates that position information is available, meaning
- that the pos() family of functions in the touch points return valid points.
-
- \value Area Indicates that touch area information is available, meaning that the rect() family
- of functions in the touch points return valid rectangles.
-
- \value Pressure Indicates that pressure information is available, meaning that pressure()
- returns a valid value.
-
- \value Velocity Indicates that velocity information is available, meaning that velocity()
- returns a valid vector.
-
- \value RawPositions Indicates that the list returned by QTouchEvent::TouchPoint::rawScreenPositions()
- may contain one or more positions for each touch point. This is relevant when
- the touch input gets filtered or corrected on driver level.
-
- \value NormalizedPosition Indicates that the normalized position is available, meaning that normalizedPos()
- returns a valid value.
-
- \value MouseEmulation Indicates that the device synthesizes mouse events.
- This enum value has been introduced in Qt 5.5.
-*/
-
-/*!
- Creates a new touch device instance.
- By default the name is empty, the only capability is Position and type is TouchScreen.
- */
-QTouchDevice::QTouchDevice()
- : d(new QTouchDevicePrivate)
-{
-}
-
-/*!
- Destroys a touch device instance.
- */
-QTouchDevice::~QTouchDevice()
-{
- delete d;
-}
-
-/*!
- Returns the touch device type.
-*/
-QTouchDevice::DeviceType QTouchDevice::type() const
-{
- return d->type;
-}
-
-/*!
- Returns the touch device capabilities.
- */
-QTouchDevice::Capabilities QTouchDevice::capabilities() const
-{
- return d->caps;
-}
-
-/*!
- Returns the maximum number of simultaneous touch points (fingers) that
- can be detected.
- \since 5.2
- */
-int QTouchDevice::maximumTouchPoints() const
-{
- return d->maxTouchPoints;
-}
-
-/*!
- Returns the touch device name.
-
- This string may often be empty. It is however useful for systems that have
- more than one touch input device because there it can be used to
- differentiate between the devices (i.e. to tell from which device a
- QTouchEvent originates from).
-*/
-QString QTouchDevice::name() const
-{
- return d->name;
-}
-
-/*!
- Sets the device type \a devType.
- */
-void QTouchDevice::setType(DeviceType devType)
-{
- d->type = devType;
-}
-
-/*!
- Sets the capabilities \a caps supported by the device and its driver.
- */
-void QTouchDevice::setCapabilities(Capabilities caps)
-{
- d->caps = caps;
-}
-
-/*!
- Sets the maximum number of simultaneous touchpoints \a max
- supported by the device and its driver.
- */
-void QTouchDevice::setMaximumTouchPoints(int max)
-{
- d->maxTouchPoints = max;
-}
-
-/*!
- Sets the \a name (a unique identifier) for the device. In most systems it is
- enough to leave this unset and keep the default empty name. This identifier
- becomes important when having multiple touch devices and a need to
- differentiate between them.
- */
-void QTouchDevice::setName(const QString &name)
-{
- d->name = name;
-}
-
-static QBasicMutex devicesMutex;
-
-struct TouchDevices {
- TouchDevices();
- QList<const QTouchDevice *> list;
-};
-Q_GLOBAL_STATIC(TouchDevices, deviceList)
-
-TouchDevices::TouchDevices()
-{
- qAddPostRoutine([]{
- const auto locker = qt_scoped_lock(devicesMutex);
- qDeleteAll(qExchange(deviceList->list, {}));
- });
-}
-
-/*!
- Returns a list of all registered devices.
-
- \note The returned list cannot be used to add new devices. To add a simulated
- touch screen for an autotest, QTest::createTouchDevice() can be used.
- To add real touch screens to QPA plugins, the private
- \c QWindowSystemInterface::registerTouchDevice() function can be used.
- */
-QList<const QTouchDevice *> QTouchDevice::devices()
-{
- const auto locker = qt_scoped_lock(devicesMutex);
- return deviceList->list;
-}
-
-/*!
- \internal
- */
-bool QTouchDevicePrivate::isRegistered(const QTouchDevice *dev)
-{
- const auto locker = qt_scoped_lock(devicesMutex);
- return deviceList->list.contains(dev);
-}
-
-const QTouchDevice *QTouchDevicePrivate::deviceById(quint8 id)
-{
- const auto locker = qt_scoped_lock(devicesMutex);
- for (const QTouchDevice *dev : qAsConst(deviceList->list))
- if (QTouchDevicePrivate::get(const_cast<QTouchDevice *>(dev))->id == id)
- return dev;
- return nullptr;
-}
-
-/*!
- \internal
- */
-void QTouchDevicePrivate::registerDevice(const QTouchDevice *dev)
-{
- const auto locker = qt_scoped_lock(devicesMutex);
- deviceList->list.append(dev);
-}
-
-/*!
- \internal
- */
-void QTouchDevicePrivate::unregisterDevice(const QTouchDevice *dev)
-{
- const auto locker = qt_scoped_lock(devicesMutex);
- deviceList->list.removeOne(dev);
-}
-
-#ifndef QT_NO_DEBUG_STREAM
-QDebug operator<<(QDebug debug, const QTouchDevice *device)
-{
- QDebugStateSaver saver(debug);
- debug.nospace();
- debug.noquote();
- debug << "QTouchDevice(";
- if (device) {
- debug << '"' << device->name() << "\", type=";
- QtDebugUtils::formatQEnum(debug, device->type());
- debug << ", capabilities=";
- QtDebugUtils::formatQFlags(debug, device->capabilities());
- debug << ", maximumTouchPoints=" << device->maximumTouchPoints();
- } else {
- debug << '0';
- }
- debug << ')';
- return debug;
-}
-#endif // !QT_NO_DEBUG_STREAM
-
-QT_END_NAMESPACE