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
8QT_BEGIN_NAMESPACE
9
10class QXcbScrollingDevicePrivate : public QPointingDevicePrivate
11{
12 Q_DECLARE_PUBLIC(QPointingDevice)
13public:
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
28class QXcbScrollingDevice : public QPointingDevice
29{
30 Q_OBJECT
31public:
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
53QT_END_NAMESPACE
54

source code of qtbase/src/plugins/platforms/xcb/qxcbscrollingdevice_p.h