Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qspi_struct_marshallers.cpp
Go to the documentation of this file.
1// Copyright (C) 2016 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
6
7#include <atspi/atspi-constants.h>
8#include <QtCore/qdebug.h>
9#include <QtDBus/qdbusmetatype.h>
10
12
13#if QT_CONFIG(accessibility)
14QT_BEGIN_NAMESPACE
15
16QT_IMPL_METATYPE_EXTERN(QSpiIntList)
17QT_IMPL_METATYPE_EXTERN(QSpiUIntList)
18QT_IMPL_METATYPE_EXTERN(QSpiObjectReference)
19QT_IMPL_METATYPE_EXTERN(QSpiObjectReferenceArray)
20QT_IMPL_METATYPE_EXTERN(QSpiAccessibleCacheItem)
21QT_IMPL_METATYPE_EXTERN(QSpiAccessibleCacheArray)
22QT_IMPL_METATYPE_EXTERN(QSpiAction)
23QT_IMPL_METATYPE_EXTERN(QSpiActionArray)
24QT_IMPL_METATYPE_EXTERN(QSpiEventListener)
25QT_IMPL_METATYPE_EXTERN(QSpiEventListenerArray)
26QT_IMPL_METATYPE_EXTERN(QSpiRelationArrayEntry)
27QT_IMPL_METATYPE_EXTERN(QSpiRelationArray)
28QT_IMPL_METATYPE_EXTERN(QSpiTextRange)
29QT_IMPL_METATYPE_EXTERN(QSpiTextRangeList)
30QT_IMPL_METATYPE_EXTERN(QSpiAttributeSet)
31QT_IMPL_METATYPE_EXTERN(QSpiAppUpdate)
32QT_IMPL_METATYPE_EXTERN(QSpiDeviceEvent)
33QT_IMPL_METATYPE_EXTERN(QSpiMatchRule)
34
35QSpiObjectReference::QSpiObjectReference()
36 : path(QDBusObjectPath(ATSPI_DBUS_PATH_NULL))
37{}
38
39/* QSpiAccessibleCacheArray */
40/*---------------------------------------------------------------------------*/
41
42QDBusArgument &operator<<(QDBusArgument &argument, const QSpiAccessibleCacheItem &item)
43{
44 argument.beginStructure();
45 argument << item.path;
46 argument << item.application;
47 argument << item.parent;
48 argument << item.children;
49 argument << item.supportedInterfaces;
50 argument << item.name;
51 argument << item.role;
52 argument << item.description;
53 argument << item.state;
54 argument.endStructure();
55 return argument;
56}
57
58const QDBusArgument &operator>>(const QDBusArgument &argument, QSpiAccessibleCacheItem &item)
59{
60 argument.beginStructure();
61 argument >> item.path;
62 argument >> item.application;
63 argument >> item.parent;
64 argument >> item.children;
65 argument >> item.supportedInterfaces;
66 argument >> item.name;
67 argument >> item.role;
68 argument >> item.description;
69 argument >> item.state;
70 argument.endStructure();
71 return argument;
72}
73
74/* QSpiObjectReference */
75/*---------------------------------------------------------------------------*/
76
77QDBusArgument &operator<<(QDBusArgument &argument, const QSpiObjectReference &address)
78{
79 argument.beginStructure();
80 argument << address.service;
81 argument << address.path;
82 argument.endStructure();
83 return argument;
84}
85
86const QDBusArgument &operator>>(const QDBusArgument &argument, QSpiObjectReference &address)
87{
88 argument.beginStructure();
89 argument >> address.service;
90 argument >> address.path;
91 argument.endStructure();
92 return argument;
93}
94
95/* QSpiAction */
96/*---------------------------------------------------------------------------*/
97
98QDBusArgument &operator<<(QDBusArgument &argument, const QSpiAction &action)
99{
100 argument.beginStructure();
101 argument << action.name;
102 argument << action.description;
103 argument << action.keyBinding;
104 argument.endStructure();
105 return argument;
106}
107
108const QDBusArgument &operator>>(const QDBusArgument &argument, QSpiAction &action)
109{
110 argument.beginStructure();
111 argument >> action.name;
112 argument >> action.description;
113 argument >> action.keyBinding;
114 argument.endStructure();
115 return argument;
116}
117
118
119QDBusArgument &operator<<(QDBusArgument &argument, const QSpiEventListener &ev)
120{
121 argument.beginStructure();
122 argument << ev.listenerAddress;
123 argument << ev.eventName;
124 argument.endStructure();
125 return argument;
126}
127
128const QDBusArgument &operator>>(const QDBusArgument &argument, QSpiEventListener &ev)
129{
130 argument.beginStructure();
131 argument >> ev.listenerAddress;
132 argument >> ev.eventName;
133 argument.endStructure();
134 return argument;
135}
136
137/* QSpiAppUpdate */
138/*---------------------------------------------------------------------------*/
139
140QDBusArgument &operator<<(QDBusArgument &argument, const QSpiAppUpdate &update) {
141 argument.beginStructure();
142 argument << update.type << update.address;
143 argument.endStructure();
144 return argument;
145}
146
147const QDBusArgument &operator>>(const QDBusArgument &argument, QSpiAppUpdate &update) {
148 argument.beginStructure();
149 argument >> update.type >> update.address;
150 argument.endStructure();
151 return argument;
152}
153
154/* QSpiRelationArrayEntry */
155/*---------------------------------------------------------------------------*/
156
157QDBusArgument &operator<<(QDBusArgument &argument, const QSpiRelationArrayEntry &entry) {
158 argument.beginStructure();
159 argument << entry.first << entry.second;
160 argument.endStructure();
161 return argument;
162}
163
164const QDBusArgument &operator>>(const QDBusArgument &argument, QSpiRelationArrayEntry &entry) {
165 argument.beginStructure();
166 argument >> entry.first >> entry.second;
167 argument.endStructure();
168 return argument;
169}
170
171/* QSpiDeviceEvent */
172/*---------------------------------------------------------------------------*/
173
174QDBusArgument &operator<<(QDBusArgument &argument, const QSpiDeviceEvent &event) {
175 argument.beginStructure();
176 argument << event.type
177 << event.id
178 << event.hardwareCode
179 << event.modifiers
180 << event.timestamp
181 << event.text
182 << event.isText;
183 argument.endStructure();
184 return argument;
185}
186
187const QDBusArgument &operator>>(const QDBusArgument &argument, QSpiDeviceEvent &event) {
188 argument.beginStructure();
189 argument >> event.type
190 >> event.id
191 >> event.hardwareCode
192 >> event.modifiers
193 >> event.timestamp
194 >> event.text
195 >> event.isText;
196 argument.endStructure();
197 return argument;
198}
199
200/* QSpiMatchRule */
201/*---------------------------------------------------------------------------*/
202
203QDBusArgument &operator<<(QDBusArgument &argument, const QSpiMatchRule &matchRule) {
204 argument.beginStructure();
205 argument << matchRule.states
206 << matchRule.stateMatchType
207 << matchRule.attributes
208 << matchRule.attributeMatchType
209 << matchRule.interfaces
210 << matchRule.interfaceMatchType
211 << matchRule.roles
212 << matchRule.roleMatchType
213 << matchRule.invert;
214 argument.endStructure();
215 return argument;
216}
217
218const QDBusArgument &operator>>(const QDBusArgument &argument, QSpiMatchRule &matchRule) {
219 argument.beginStructure();
220 argument >> matchRule.states
221 >> matchRule.stateMatchType
222 >> matchRule.attributes
223 >> matchRule.attributeMatchType
224 >> matchRule.roles
225 >> matchRule.roleMatchType
226 >> matchRule.interfaces
227 >> matchRule.interfaceMatchType
228 >> matchRule.invert;
229 argument.endStructure();
230 return argument;
231}
232
233void qSpiInitializeStructTypes()
234{
235 qDBusRegisterMetaType<QSpiIntList>();
236 qDBusRegisterMetaType<QSpiUIntList>();
237 qDBusRegisterMetaType<QSpiAccessibleCacheItem>();
238 qDBusRegisterMetaType<QSpiAccessibleCacheArray>();
239 qDBusRegisterMetaType<QSpiObjectReference>();
240 qDBusRegisterMetaType<QSpiObjectReferenceArray>();
241 qDBusRegisterMetaType<QSpiAttributeSet>();
242 qDBusRegisterMetaType<QSpiAction>();
243 qDBusRegisterMetaType<QSpiActionArray>();
244 qDBusRegisterMetaType<QSpiEventListener>();
245 qDBusRegisterMetaType<QSpiEventListenerArray>();
246 qDBusRegisterMetaType<QSpiDeviceEvent>();
247 qDBusRegisterMetaType<QSpiMatchRule>();
248 qDBusRegisterMetaType<QSpiAppUpdate>();
249 qDBusRegisterMetaType<QSpiRelationArrayEntry>();
250 qDBusRegisterMetaType<QSpiRelationArray>();
251}
252
253QT_END_NAMESPACE
254#endif // QT_CONFIG(accessibility)