Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qwaylandcompositorextension.h
Go to the documentation of this file.
1
// Copyright (C) 2017 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
#
ifndef
QWAYLANDEXTENSION_H
6
#
define
QWAYLANDEXTENSION_H
7
8
#
include
<
QtWaylandCompositor
/
qtwaylandcompositorglobal
.
h
>
9
#
include
<
QtWaylandCompositor
/
qtwaylandqmlinclude
.
h
>
10
11
#
include
<
QtCore
/
QObject
>
12
13
struct
wl_interface;
14
15
QT_BEGIN_NAMESPACE
16
17
class
QWaylandCompositor;
18
class
QWaylandCompositorExtension;
19
class
QWaylandCompositorExtensionPrivate;
20
21
class
Q_WAYLANDCOMPOSITOR_EXPORT
QWaylandObject
:
public
QObject
22
{
23
Q_OBJECT
24
public
:
25
~QWaylandObject() override;
26
27
QWaylandCompositorExtension *extension(
const
QByteArray &name);
28
QWaylandCompositorExtension *extension(
const
wl_interface *interface);
29
QList<QWaylandCompositorExtension *> extensions()
const
;
30
void
addExtension(QWaylandCompositorExtension *extension);
31
void
removeExtension(QWaylandCompositorExtension *extension);
32
33
protected
:
34
QWaylandObject(QObject *parent =
nullptr
);
35
QWaylandObject(QObjectPrivate &d, QObject *parent =
nullptr
);
36
QList<QWaylandCompositorExtension *> extension_vector;
37
};
38
39
class
Q_WAYLANDCOMPOSITOR_EXPORT
QWaylandCompositorExtension
:
public
QWaylandObject
40
{
41
Q_OBJECT
42
Q_DECLARE_PRIVATE(QWaylandCompositorExtension)
43
QML_NAMED_ELEMENT(WaylandExtension)
44
QML_ADDED_IN_VERSION(1, 0)
45
QML_UNCREATABLE(
""
)
46
public
:
47
QWaylandCompositorExtension();
48
QWaylandCompositorExtension(QWaylandObject *container);
49
~QWaylandCompositorExtension() override;
50
51
QWaylandObject *extensionContainer()
const
;
52
void
setExtensionContainer(QWaylandObject *container);
53
54
virtual
void
initialize();
55
bool
isInitialized()
const
;
56
57
virtual
const
struct
wl_interface *extensionInterface()
const
= 0;
58
59
protected
:
60
QWaylandCompositorExtension(QWaylandCompositorExtensionPrivate &dd);
61
QWaylandCompositorExtension(QWaylandObject *container, QWaylandCompositorExtensionPrivate &dd);
62
63
bool
event(QEvent *event) override;
64
};
65
66
template
<
typename
T
>
67
class
Q_WAYLANDCOMPOSITOR_EXPORT
QWaylandCompositorExtensionTemplate
:
public
QWaylandCompositorExtension
68
{
69
public
:
70
QWaylandCompositorExtensionTemplate()
71
: QWaylandCompositorExtension()
72
{ }
73
74
QWaylandCompositorExtensionTemplate(QWaylandObject *container)
75
: QWaylandCompositorExtension(container)
76
{ }
77
78
const
struct
wl_interface *extensionInterface()
const
override
79
{
80
return
T::interface();
81
}
82
83
static
T *findIn(QWaylandObject *container)
84
{
85
if
(!container)
return
nullptr
;
86
return
qobject_cast<T *>(container->extension(T::interfaceName()));
87
}
88
89
protected
:
90
QWaylandCompositorExtensionTemplate(QWaylandCompositorExtensionPrivate &dd)
91
: QWaylandCompositorExtension(dd)
92
{ }
93
94
QWaylandCompositorExtensionTemplate(QWaylandObject *container, QWaylandCompositorExtensionPrivate &dd)
95
: QWaylandCompositorExtension(container,dd)
96
{ }
97
};
98
99
QT_END_NAMESPACE
100
101
#
endif
QWaylandCompositorExtensionTemplate
\inmodule QtWaylandCompositor
Definition
qwaylandcompositorextension.h:68
QWaylandCompositorExtension
\inmodule QtWaylandCompositor
Definition
qwaylandcompositorextension.h:40
QWaylandObject
\inmodule QtWaylandCompositor
Definition
qwaylandcompositorextension.h:22
qtwayland
src
compositor
global
qwaylandcompositorextension.h
Generated on
for Qt by
1.18.0