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(QSpiDeviceEvent)
32QT_IMPL_METATYPE_EXTERN(QSpiMatchRule)
34QSpiObjectReference::QSpiObjectReference()
35 : path(QDBusObjectPath(ATSPI_DBUS_PATH_NULL))
41QDBusArgument &operator<<(QDBusArgument &argument,
const QSpiAccessibleCacheItem &item)
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();
57const QDBusArgument &operator>>(
const QDBusArgument &argument, QSpiAccessibleCacheItem &item)
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();
76QDBusArgument &operator<<(QDBusArgument &argument,
const QSpiObjectReference &address)
78 argument.beginStructure();
79 argument << address.service;
80 argument << address.path;
81 argument.endStructure();
85const QDBusArgument &operator>>(
const QDBusArgument &argument, QSpiObjectReference &address)
87 argument.beginStructure();
88 argument >> address.service;
89 argument >> address.path;
90 argument.endStructure();
97QDBusArgument &operator<<(QDBusArgument &argument,
const QSpiAction &action)
99 argument.beginStructure();
100 argument << action.name;
101 argument << action.description;
102 argument << action.keyBinding;
103 argument.endStructure();
107const QDBusArgument &operator>>(
const QDBusArgument &argument, QSpiAction &action)
109 argument.beginStructure();
110 argument >> action.name;
111 argument >> action.description;
112 argument >> action.keyBinding;
113 argument.endStructure();
118QDBusArgument &operator<<(QDBusArgument &argument,
const QSpiEventListener &ev)
120 argument.beginStructure();
121 argument << ev.listenerAddress;
122 argument << ev.eventName;
123 argument.endStructure();
127const QDBusArgument &operator>>(
const QDBusArgument &argument, QSpiEventListener &ev)
129 argument.beginStructure();
130 argument >> ev.listenerAddress;
131 argument >> ev.eventName;
132 argument.endStructure();
139QDBusArgument &operator<<(QDBusArgument &argument,
const QSpiRelationArrayEntry &entry) {
140 argument.beginStructure();
141 argument << entry.first << entry.second;
142 argument.endStructure();
146const QDBusArgument &operator>>(
const QDBusArgument &argument, QSpiRelationArrayEntry &entry) {
147 argument.beginStructure();
148 argument >> entry.first >> entry.second;
149 argument.endStructure();
156QDBusArgument &operator<<(QDBusArgument &argument,
const QSpiDeviceEvent &event) {
157 argument.beginStructure();
158 argument << event.type
160 << event.hardwareCode
165 argument.endStructure();
169const QDBusArgument &operator>>(
const QDBusArgument &argument, QSpiDeviceEvent &event) {
170 argument.beginStructure();
171 argument >> event.type
173 >> event.hardwareCode
178 argument.endStructure();
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
194 << matchRule.roleMatchType
196 argument.endStructure();
200const QDBusArgument &operator>>(
const QDBusArgument &argument, QSpiMatchRule &matchRule) {
201 argument.beginStructure();
202 argument >> matchRule.states
203 >> matchRule.stateMatchType
204 >> matchRule.attributes
205 >> matchRule.attributeMatchType
207 >> matchRule.roleMatchType
208 >> matchRule.interfaces
209 >> matchRule.interfaceMatchType
211 argument.endStructure();
215void qSpiInitializeStructTypes()
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>();