6#if QT_CONFIG(accessibility)
8#include <QtGui/QGuiApplication>
9#include <QtGui/QWindow>
12#include "qmetaobject.h"
16class QAccessibleObjectPrivate
19 QPointer<QObject> object;
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
40
41
42QAccessibleObject::QAccessibleObject(QObject *object)
44 d =
new QAccessibleObjectPrivate;
49
50
51
52
53
54QAccessibleObject::~QAccessibleObject()
60
61
62QObject *QAccessibleObject::object()
const
68
69
70bool QAccessibleObject::isValid()
const
72 return !d->object.isNull();
76QRect QAccessibleObject::rect()
const
82void QAccessibleObject::setText(QAccessible::Text,
const QString &)
87QAccessibleInterface *QAccessibleObject::childAt(
int x,
int y)
const
89 for (
int i = 0; i < childCount(); ++i) {
90 QAccessibleInterface *childIface = child(i);
92 if (childIface->isValid() && childIface->rect().contains(x,y))
99
100
101
102
103
104
105
108
109
110QAccessibleApplication::QAccessibleApplication()
111: QAccessibleObject(qApp)
115QWindow *QAccessibleApplication::window()
const
123static QObjectList topLevelObjects()
126 const QWindowList tlw(QGuiApplication::topLevelWindows());
127 for (
int i = 0; i < tlw.size(); ++i) {
128 QWindow *w = tlw.at(i);
129 if (w->type() != Qt::Popup) {
130 if (QAccessibleInterface *root = w->accessibleRoot()) {
132 list.append(root->object());
141int QAccessibleApplication::childCount()
const
143 return topLevelObjects().size();
147int QAccessibleApplication::indexOfChild(
const QAccessibleInterface *child)
const
151 const QObjectList tlw(topLevelObjects());
152 return tlw.indexOf(child->object());
155QAccessibleInterface *QAccessibleApplication::parent()
const
160QAccessibleInterface *QAccessibleApplication::child(
int index)
const
162 const QObjectList tlo(topLevelObjects());
163 if (index >= 0 && index < tlo.size())
164 return QAccessible::queryAccessibleInterface(tlo.at(index));
170QAccessibleInterface *QAccessibleApplication::focusChild()
const
172 if (QWindow *window = QGuiApplication::focusWindow())
173 return window->accessibleRoot();
178QString QAccessibleApplication::text(QAccessible::Text t)
const
181 case QAccessible::Name:
182 return QGuiApplication::applicationName();
183 case QAccessible::Description:
184 return QGuiApplication::applicationFilePath();
185 case QAccessible::Identifier:
186 return QGuiApplication::desktopFileName();
194QAccessible::Role QAccessibleApplication::role()
const
196 return QAccessible::Application;
200QAccessible::State QAccessibleApplication::state()
const
202 return QAccessible::State();