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 | |