4#ifndef QQUICKACCESSIBLEATTACHED_H
5#define QQUICKACCESSIBLEATTACHED_H
18#include <QtQuick/qquickitem.h>
20#include <QtCore/qobject.h>
21#include <QtCore/qstring.h>
23#if QT_CONFIG(accessibility)
25#include <QtGui/qaccessible.h>
26#include <private/qtquickglobal_p.h>
31#define STATE_PROPERTY(P) \
32 Q_PROPERTY(bool P READ P WRITE set_ ## P NOTIFY P ## Changed FINAL) \
33 bool P() const { return m_state.P ; } \
34 void set_ ## P(bool arg) \
36 m_stateExplicitlySet.P = true; \
37 if (m_state.P == arg) \
40 Q_EMIT P ## Changed(arg); \
41 QAccessible::State changedState; \
42 changedState.P = true; \
43 QAccessibleStateChangeEvent ev(parent(), changedState); \
44 QAccessible::updateAccessibility(&ev); \
46 Q_SIGNAL void P ## Changed(bool arg);
48class Q_QUICK_PRIVATE_EXPORT QQuickAccessibleAttached :
public QObject
51 Q_PROPERTY(QAccessible::Role role READ role WRITE setRole NOTIFY roleChanged FINAL)
53 Q_PROPERTY(
QString description READ description WRITE setDescription NOTIFY descriptionChanged FINAL)
54 Q_PROPERTY(
bool ignored READ ignored WRITE setIgnored NOTIFY ignoredChanged FINAL)
63 STATE_PROPERTY(checkable)
64 STATE_PROPERTY(checked)
65 STATE_PROPERTY(editable)
66 STATE_PROPERTY(focusable)
67 STATE_PROPERTY(focused)
68 STATE_PROPERTY(multiLine)
69 STATE_PROPERTY(readOnly)
70 STATE_PROPERTY(selected)
71 STATE_PROPERTY(selectable)
72 STATE_PROPERTY(pressed)
73 STATE_PROPERTY(checkStateMixed)
74 STATE_PROPERTY(defaultButton)
75 STATE_PROPERTY(passwordEdit)
76 STATE_PROPERTY(selectableText)
77 STATE_PROPERTY(searchEdit)
80 ~QQuickAccessibleAttached();
83 void setRole(QAccessible::Role role);
85 if (m_state.passwordEdit)
90 bool wasNameExplicitlySet()
const;
92 m_nameExplicitlySet =
true;
96 QAccessibleEvent ev(
parent(), QAccessible::NameChanged);
97 QAccessible::updateAccessibility(&ev);
102 QString description()
const {
return m_description; }
103 void setDescription(
const QString &description)
105 if (m_description != description) {
106 m_description = description;
107 Q_EMIT descriptionChanged();
108 QAccessibleEvent ev(
parent(), QAccessible::DescriptionChanged);
109 QAccessible::updateAccessibility(&ev);
114 static QQuickAccessibleAttached *qmlAttachedProperties(
QObject *
obj);
116 static QQuickAccessibleAttached *attachedProperties(
const QObject *
obj)
118 return qobject_cast<QQuickAccessibleAttached*>(qmlAttachedPropertiesObject<QQuickAccessibleAttached>(
obj,
false));
131 QObject *
obj = qmlAttachedPropertiesObject<QQuickAccessibleAttached>(
object,
true);
133 qWarning(
"cannot set property Accessible.%s of QObject %s", propertyName,
object->metaObject()->className());
136 return obj->setProperty(propertyName,
value);
139 static QObject *findAccessible(
QObject *
object, QAccessible::Role role = QAccessible::NoRole)
142 QQuickAccessibleAttached *att = QQuickAccessibleAttached::attachedProperties(
object);
143 if (att && (role == QAccessible::NoRole || att->role() == role)) {
146 object =
object->parent();
152 bool ignored()
const;
153 bool doAction(
const QString &actionName);
159 void valueChanged() {
161 QAccessible::updateAccessibility(&ev);
163 void cursorPositionChanged() {
165 QAccessible::updateAccessibility(&ev);
168 void setIgnored(
bool ignored);
173 void descriptionChanged();
174 void ignoredChanged();
177 void increaseAction();
178 void decreaseAction();
179 void scrollUpAction();
180 void scrollDownAction();
181 void scrollLeftAction();
182 void scrollRightAction();
183 void previousPageAction();
184 void nextPageAction();
189 QAccessible::Role m_role;
193 bool m_nameExplicitlySet =
false;
The QAccessible class provides enums and static functions related to accessibility.
QObject * parent() const
Returns a pointer to the parent object.
QVariant property(const char *name) const
Returns the value of the object's name property.
bool setProperty(const char *name, const QVariant &value)
Sets the value of the object's name property to value.
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
\macro QT_RESTRICTED_CAST_FROM_ASCII
employee setName("Richard Schmit")
Combined button and popup list for selecting options.
static const QCssKnownValue properties[NumProperties - 1]
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
#define QML_DECLARE_TYPE(TYPE)
#define QML_UNCREATABLE(REASON)
#define QML_NAMED_ELEMENT(NAME)
#define QML_EXTENDED_NAMESPACE(EXTENDED_NAMESPACE)
#define QML_ADDED_IN_VERSION(MAJOR, MINOR)
#define QML_ATTACHED(ATTACHED_TYPE)
static QQuickAttachedPropertyPropagator * attachedObject(const QMetaObject *type, QObject *object, bool create=false)
QQuickItem * qobject_cast< QQuickItem * >(QObject *o)
static int toInt(const QChar &qc, int R)
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent