Warning: That file was not part of the compilation database. It may have many parsing errors.

1/****************************************************************************
2**
3** Copyright (C) 2017 The Qt Company Ltd.
4** Contact: https://www.qt.io/licensing/
5**
6** This file is part of the QtWaylandCompositor module of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:GPL$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see https://www.qt.io/terms-conditions. For further
15** information use the contact form at https://www.qt.io/contact-us.
16**
17** GNU General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU
19** General Public License version 3 or (at your option) any later version
20** approved by the KDE Free Qt Foundation. The licenses are as published by
21** the Free Software Foundation and appearing in the file LICENSE.GPL3
22** included in the packaging of this file. Please review the following
23** information to ensure the GNU General Public License requirements will
24** be met: https://www.gnu.org/licenses/gpl-3.0.html.
25**
26** $QT_END_LICENSE$
27**
28****************************************************************************/
29
30#ifndef QWAYLANDPOINTER_H
31#define QWAYLANDPOINTER_H
32
33#include <QtWaylandCompositor/QWaylandCompositorExtension>
34
35struct wl_resource;
36
37QT_BEGIN_NAMESPACE
38
39class QWaylandPointer;
40class QWaylandPointerPrivate;
41class QWaylandSeat;
42class QWaylandView;
43class QWaylandOutput;
44class QWaylandClient;
45
46class Q_WAYLAND_COMPOSITOR_EXPORT QWaylandPointer : public QWaylandObject
47{
48 Q_OBJECT
49 Q_DECLARE_PRIVATE(QWaylandPointer)
50 Q_PROPERTY(bool isButtonPressed READ isButtonPressed NOTIFY buttonPressedChanged)
51public:
52 QWaylandPointer(QWaylandSeat *seat, QObject *parent = nullptr);
53
54 QWaylandSeat *seat() const;
55 QWaylandCompositor *compositor() const;
56
57 QWaylandOutput *output() const;
58 void setOutput(QWaylandOutput *output);
59
60 virtual uint sendMousePressEvent(Qt::MouseButton button);
61 virtual uint sendMouseReleaseEvent(Qt::MouseButton button);
62 virtual void sendMouseMoveEvent(QWaylandView *view, const QPointF &localPos, const QPointF &outputSpacePos);
63 virtual void sendMouseWheelEvent(Qt::Orientation orientation, int delta);
64
65 QWaylandView *mouseFocus() const;
66 QPointF currentLocalPosition() const;
67 QPointF currentSpacePosition() const;
68
69 bool isButtonPressed() const;
70
71 virtual void addClient(QWaylandClient *client, uint32_t id, uint32_t version);
72
73 wl_resource *focusResource() const;
74
75 static uint32_t toWaylandButton(Qt::MouseButton button);
76 uint sendButton(struct wl_resource *resource, uint32_t time, Qt::MouseButton button, uint32_t state);
77Q_SIGNALS:
78 void outputChanged();
79 void buttonPressedChanged();
80
81private:
82 void enteredSurfaceDestroyed(void *data);
83 void pointerFocusChanged(QWaylandView *newFocus, QWaylandView *oldFocus);
84};
85
86QT_END_NAMESPACE
87
88#endif /*QWAYLANDPOINTER_H*/
89

Warning: That file was not part of the compilation database. It may have many parsing errors.

Provided by KDAB

Privacy Policy
Learn Advanced QML with KDAB
Find out more

source code of qtwayland/src/compositor/compositor_api/qwaylandpointer.h