1// Copyright (C) 2018 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#ifndef QWAYLANDCLIPBOARD_H
5#define QWAYLANDCLIPBOARD_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <qpa/qplatformclipboard.h>
19#include <QtCore/QVariant>
20#include <QtCore/QMimeData>
21
22#include <QtWaylandClient/qtwaylandclientglobal.h>
23#include <QtCore/private/qglobal_p.h>
24
25QT_REQUIRE_CONFIG(clipboard);
26
27QT_BEGIN_NAMESPACE
28
29namespace QtWaylandClient {
30
31class QWaylandDisplay;
32
33class Q_WAYLANDCLIENT_EXPORT QWaylandClipboard : public QPlatformClipboard
34{
35public:
36 QWaylandClipboard(QWaylandDisplay *display);
37
38 ~QWaylandClipboard() override;
39
40 QMimeData *mimeData(QClipboard::Mode mode = QClipboard::Clipboard) override;
41 void setMimeData(QMimeData *data, QClipboard::Mode mode = QClipboard::Clipboard) override;
42 bool supportsMode(QClipboard::Mode mode) const override;
43 bool ownsMode(QClipboard::Mode mode) const override;
44
45private:
46 QWaylandDisplay *mDisplay = nullptr;
47 QMimeData m_emptyData;
48 QMimeData *m_clientClipboard[2];
49};
50
51}
52
53QT_END_NAMESPACE
54
55#endif // QWAYLANDCLIPBOARD_H
56

source code of qtwayland/src/client/qwaylandclipboard_p.h