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(QSpiDeviceEvent)
32QT_IMPL_METATYPE_EXTERN(QSpiMatchRule)
33
34QSpiObjectReference::QSpiObjectReference()
35 : path(QDBusObjectPath(ATSPI_DBUS_PATH_NULL))
36{}
37
38/* QSpiAccessibleCacheArray */
39/*---------------------------------------------------------------------------*/
40
41QDBusArgument &operator<<(QDBusArgument &argument, const QSpiAccessibleCacheItem &item)
42{
43 argument.beginStructure();
44 argument << item.path;
45 argument << item.application;
46 argument << item.parent;
47 argument << item.children;
48 argument << item.supportedInterfaces;
49 argument << item.name;
50 argument << item.role;
51 argument << item.description;
52 argument << item.state;
53 argument.endStructure();
54 return argument;
55}
56
57const QDBusArgument &operator>>(const QDBusArgument &argument, QSpiAccessibleCacheItem &item)
58{
59 argument.beginStructure();
60 argument >> item.path;
61 argument >> item.application;
62 argument >> item.parent;
63 argument >> item.children;
64 argument >> item.supportedInterfaces;
65 argument >> item.name;
66 argument >> item.role;
67 argument >> item.description;
68 argument >> item.state;
69 argument.endStructure();
70 return argument;
71}
72
73/* QSpiObjectReference */
74/*---------------------------------------------------------------------------*/
75
76QDBusArgument &operator<<(QDBusArgument &argument, const QSpiObjectReference &address)
77{
78 argument.beginStructure();
79 argument << address.service;
80 argument << address.path;
81 argument.endStructure();
82 return argument;
83}
84
85const QDBusArgument &operator>>(const QDBusArgument &argument, QSpiObjectReference &address)
86{
87 argument.beginStructure();
88 argument >> address.service;
89 argument >> address.path;
90 argument.endStructure();
91 return argument;
92}
93
94/* QSpiAction */
95/*---------------------------------------------------------------------------*/
96
97QDBusArgument &operator<<(QDBusArgument &argument, const QSpiAction &action)
98{
99 argument.beginStructure();
100 argument << action.name;
101 argument << action.description;
102 argument << action.keyBinding;
103 argument.endStructure();
104 return argument;
105}
106
107const QDBusArgument &operator>>(const QDBusArgument &argument, QSpiAction &action)
108{
109 argument.beginStructure();
110 argument >> action.name;
111 argument >> action.description;
112 argument >> action.keyBinding;
113 argument.endStructure();
114 return argument;
115}
116
117
118QDBusArgument &operator<<(QDBusArgument &argument, const QSpiEventListener &ev)
119{
120 argument.beginStructure();
121 argument << ev.listenerAddress;
122 argument << ev.eventName;
123 argument.endStructure();
124 return argument;
125}
126
127const QDBusArgument &operator>>(const QDBusArgument &argument, QSpiEventListener &ev)
128{
129 argument.beginStructure();
130 argument >> ev.listenerAddress;
131 argument >> ev.eventName;
132 argument.endStructure();
133 return argument;
134}
135
136/* QSpiRelationArrayEntry */
137/*---------------------------------------------------------------------------*/
138
139QDBusArgument &operator<<(QDBusArgument &argument, const QSpiRelationArrayEntry &entry) {
140 argument.beginStructure();
141 argument << entry.first << entry.second;
142 argument.endStructure();
143 return argument;
144}
145
146const QDBusArgument &operator>>(const QDBusArgument &argument, QSpiRelationArrayEntry &entry) {
147 argument.beginStructure();
148 argument >> entry.first >> entry.second;
149 argument.endStructure();
150 return argument;
151}
152
153/* QSpiDeviceEvent */
154/*---------------------------------------------------------------------------*/
155
156QDBusArgument &operator<<(QDBusArgument &argument, const QSpiDeviceEvent &event) {
157 argument.beginStructure();
158 argument << event.type
159 << event.id
160 << event.hardwareCode
161 << event.modifiers
162 << event.timestamp
163 << event.text
164 << event.isText;
165 argument.endStructure();
166 return argument;
167}
168
169const QDBusArgument &operator>>(const QDBusArgument &argument, QSpiDeviceEvent &event) {
170 argument.beginStructure();
171 argument >> event.type
172 >> event.id
173 >> event.hardwareCode
174 >> event.modifiers
175 >> event.timestamp
176 >> event.text
177 >> event.isText;
178 argument.endStructure();
179 return argument;
180}
181
182/* QSpiMatchRule */
183/*---------------------------------------------------------------------------*/
184
185QDBusArgument &operator<<(QDBusArgument &argument, const QSpiMatchRule &matchRule) {
186 argument.beginStructure();
187 argument << matchRule.states
188 << matchRule.stateMatchType
189 << matchRule.attributes
190 << matchRule.attributeMatchType
191 << matchRule.interfaces
192 << matchRule.interfaceMatchType
193 << matchRule.roles
194 << matchRule.roleMatchType
195 << matchRule.invert;
196 argument.endStructure();
197 return argument;
198}
199
200const QDBusArgument &operator>>(const QDBusArgument &argument, QSpiMatchRule &matchRule) {
201 argument.beginStructure();
202 argument >> matchRule.states
203 >> matchRule.stateMatchType
204 >> matchRule.attributes
205 >> matchRule.attributeMatchType
206 >> matchRule.roles
207 >> matchRule.roleMatchType
208 >> matchRule.interfaces
209 >> matchRule.interfaceMatchType
210 >> matchRule.invert;
211 argument.endStructure();
212 return argument;
213}
214
215void qSpiInitializeStructTypes()
216{
217 qDBusRegisterMetaType<QSpiIntList>();
218 qDBusRegisterMetaType<QSpiUIntList>();
219 qDBusRegisterMetaType<QSpiAccessibleCacheItem>();
220 qDBusRegisterMetaType<QSpiAccessibleCacheArray>();
221 qDBusRegisterMetaType<QSpiObjectReference>();
222 qDBusRegisterMetaType<QSpiObjectReferenceArray>();
223 qDBusRegisterMetaType<QSpiAttributeSet>();
224 qDBusRegisterMetaType<QSpiAction>();
225 qDBusRegisterMetaType<QSpiActionArray>();
226 qDBusRegisterMetaType<QSpiEventListener>();
227 qDBusRegisterMetaType<QSpiEventListenerArray>();
228 qDBusRegisterMetaType<QSpiDeviceEvent>();
229 qDBusRegisterMetaType<QSpiMatchRule>();
230 qDBusRegisterMetaType<QSpiRelationArrayEntry>();
231 qDBusRegisterMetaType<QSpiRelationArray>();
232}
233
234QT_END_NAMESPACE
235#endif // QT_CONFIG(accessibility)