7#include <atspi/atspi-constants.h>
8#include <QtCore/qdebug.h>
9#include <QtDBus/qdbusmetatype.h>
13#if QT_CONFIG(accessibility)
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)
35QSpiObjectReference::QSpiObjectReference()
36 : path(QDBusObjectPath(ATSPI_DBUS_PATH_NULL))
42QDBusArgument &operator<<(QDBusArgument &argument,
const QSpiAccessibleCacheItem &item)
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();
58const QDBusArgument &operator>>(
const QDBusArgument &argument, QSpiAccessibleCacheItem &item)
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();
77QDBusArgument &operator<<(QDBusArgument &argument,
const QSpiObjectReference &address)
79 argument.beginStructure();
80 argument << address.service;
81 argument << address.path;
82 argument.endStructure();
86const QDBusArgument &operator>>(
const QDBusArgument &argument, QSpiObjectReference &address)
88 argument.beginStructure();
89 argument >> address.service;
90 argument >> address.path;
91 argument.endStructure();
98QDBusArgument &operator<<(QDBusArgument &argument,
const QSpiAction &action)
100 argument.beginStructure();
101 argument << action.name;
102 argument << action.description;
103 argument << action.keyBinding;
104 argument.endStructure();
108const QDBusArgument &operator>>(
const QDBusArgument &argument, QSpiAction &action)
110 argument.beginStructure();
111 argument >> action.name;
112 argument >> action.description;
113 argument >> action.keyBinding;
114 argument.endStructure();
119QDBusArgument &operator<<(QDBusArgument &argument,
const QSpiEventListener &ev)
121 argument.beginStructure();
122 argument << ev.listenerAddress;
123 argument << ev.eventName;
124 argument.endStructure();
128const QDBusArgument &operator>>(
const QDBusArgument &argument, QSpiEventListener &ev)
130 argument.beginStructure();
131 argument >> ev.listenerAddress;
132 argument >> ev.eventName;
133 argument.endStructure();
140QDBusArgument &operator<<(QDBusArgument &argument,
const QSpiAppUpdate &update) {
141 argument.beginStructure();
142 argument << update.type << update.address;
143 argument.endStructure();
147const QDBusArgument &operator>>(
const QDBusArgument &argument, QSpiAppUpdate &update) {
148 argument.beginStructure();
149 argument >> update.type >> update.address;
150 argument.endStructure();
157QDBusArgument &operator<<(QDBusArgument &argument,
const QSpiRelationArrayEntry &entry) {
158 argument.beginStructure();
159 argument << entry.first << entry.second;
160 argument.endStructure();
164const QDBusArgument &operator>>(
const QDBusArgument &argument, QSpiRelationArrayEntry &entry) {
165 argument.beginStructure();
166 argument >> entry.first >> entry.second;
167 argument.endStructure();
174QDBusArgument &operator<<(QDBusArgument &argument,
const QSpiDeviceEvent &event) {
175 argument.beginStructure();
176 argument << event.type
178 << event.hardwareCode
183 argument.endStructure();
187const QDBusArgument &operator>>(
const QDBusArgument &argument, QSpiDeviceEvent &event) {
188 argument.beginStructure();
189 argument >> event.type
191 >> event.hardwareCode
196 argument.endStructure();
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
212 << matchRule.roleMatchType
214 argument.endStructure();
218const QDBusArgument &operator>>(
const QDBusArgument &argument, QSpiMatchRule &matchRule) {
219 argument.beginStructure();
220 argument >> matchRule.states
221 >> matchRule.stateMatchType
222 >> matchRule.attributes
223 >> matchRule.attributeMatchType
225 >> matchRule.roleMatchType
226 >> matchRule.interfaces
227 >> matchRule.interfaceMatchType
229 argument.endStructure();
233void qSpiInitializeStructTypes()
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>();