| 1 | // Copyright (C) 2020 The Qt Company Ltd. |
| 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only |
| 3 | |
| 4 | #pragma once |
| 5 | |
| 6 | #include <QtGui/private/qpointingdevice_p.h> |
| 7 | |
| 8 | QT_BEGIN_NAMESPACE |
| 9 | |
| 10 | class QXcbScrollingDevicePrivate : public QPointingDevicePrivate |
| 11 | { |
| 12 | Q_DECLARE_PUBLIC(QPointingDevice) |
| 13 | public: |
| 14 | QXcbScrollingDevicePrivate(const QString &name, qint64 id, QPointingDevice::Capabilities caps, |
| 15 | int buttonCount = 3, const QString &seatName = QString()); |
| 16 | |
| 17 | // scrolling-related data |
| 18 | int verticalIndex = 0; |
| 19 | int horizontalIndex = 0; |
| 20 | double verticalIncrement = 0; |
| 21 | double horizontalIncrement = 0; |
| 22 | Qt::Orientations orientations; |
| 23 | Qt::Orientations legacyOrientations; |
| 24 | mutable QPointF lastScrollPosition; |
| 25 | // end of scrolling-related data |
| 26 | }; |
| 27 | |
| 28 | class QXcbScrollingDevice : public QPointingDevice |
| 29 | { |
| 30 | Q_OBJECT |
| 31 | public: |
| 32 | QXcbScrollingDevice(QXcbScrollingDevicePrivate &d, QObject *parent) |
| 33 | : QPointingDevice(d, parent) {} |
| 34 | |
| 35 | QXcbScrollingDevice(const QString &name, qint64 deviceId, Capabilities caps, int buttonCount, |
| 36 | const QString &seatName = QString(), QObject *parent = nullptr) |
| 37 | : QPointingDevice(*new QXcbScrollingDevicePrivate(name, deviceId, caps, buttonCount, seatName), parent) |
| 38 | { |
| 39 | } |
| 40 | |
| 41 | inline static QXcbScrollingDevicePrivate *get(QXcbScrollingDevice *q) |
| 42 | { |
| 43 | return static_cast<QXcbScrollingDevicePrivate *>(QObjectPrivate::get(o: q)); |
| 44 | } |
| 45 | |
| 46 | inline static const QXcbScrollingDevicePrivate *get(const QXcbScrollingDevice *q) |
| 47 | { |
| 48 | return static_cast<const QXcbScrollingDevicePrivate *>(QObjectPrivate::get(o: q)); |
| 49 | } |
| 50 | |
| 51 | }; |
| 52 | |
| 53 | QT_END_NAMESPACE |
| 54 | |