diff options
Diffstat (limited to 'src/gui/accessible/qaccessible.h')
-rw-r--r-- | src/gui/accessible/qaccessible.h | 48 |
1 files changed, 45 insertions, 3 deletions
diff --git a/src/gui/accessible/qaccessible.h b/src/gui/accessible/qaccessible.h index ac1bacd85a..3d8daa4b3c 100644 --- a/src/gui/accessible/qaccessible.h +++ b/src/gui/accessible/qaccessible.h @@ -43,6 +43,7 @@ class QAccessibleTableInterface; class QAccessibleTableCellInterface; class QAccessibleHyperlinkInterface; class QAccessibleSelectionInterface; +class QAccessibleAttributesInterface; class QAccessibleTableModelChangeEvent; class Q_GUI_EXPORT QAccessibleInterface @@ -103,12 +104,12 @@ public: inline QAccessibleHyperlinkInterface *hyperlinkInterface() { return reinterpret_cast<QAccessibleHyperlinkInterface *>(interface_cast(QAccessible::HyperlinkInterface)); } - /*! - \since 6.5 - */ inline QAccessibleSelectionInterface *selectionInterface() { return reinterpret_cast<QAccessibleSelectionInterface *>(interface_cast(QAccessible::SelectionInterface)); } + inline QAccessibleAttributesInterface *attributesInterface() + { return reinterpret_cast<QAccessibleAttributesInterface *>(interface_cast(QAccessible::AttributesInterface)); } + virtual void virtual_hook(int id, void *data); virtual void *interface_cast(QAccessible::InterfaceType) @@ -287,6 +288,15 @@ public: virtual bool clear() = 0; }; +class Q_GUI_EXPORT QAccessibleAttributesInterface +{ +public: + virtual ~QAccessibleAttributesInterface(); + virtual QList<QAccessible::Attribute> attributeKeys() const = 0; + virtual QVariant attributeValue(QAccessible::Attribute key) const = 0; +}; + + class Q_GUI_EXPORT QAccessibleEvent { Q_DISABLE_COPY(QAccessibleEvent) @@ -306,6 +316,7 @@ public: Q_ASSERT(m_type != QAccessible::TextRemoved); Q_ASSERT(m_type != QAccessible::TextUpdated); Q_ASSERT(m_type != QAccessible::TableModelChanged); + Q_ASSERT(m_type != QAccessible::Announcement); } inline QAccessibleEvent(QAccessibleInterface *iface, QAccessible::Event typ) @@ -320,6 +331,7 @@ public: Q_ASSERT(m_type != QAccessible::TextRemoved); Q_ASSERT(m_type != QAccessible::TextUpdated); Q_ASSERT(m_type != QAccessible::TableModelChanged); + Q_ASSERT(m_type != QAccessible::Announcement); m_uniqueId = QAccessible::uniqueId(iface); m_object = iface->object(); } @@ -595,6 +607,36 @@ protected: int m_lastColumn; }; +class Q_GUI_EXPORT QAccessibleAnnouncementEvent : public QAccessibleEvent +{ +public: + inline QAccessibleAnnouncementEvent(QObject *object, const QString &message) + : QAccessibleEvent(object, QAccessible::InvalidEvent) + , m_message(message) + , m_priority(QAccessible::AnnouncementPriority::Polite) + { + m_type = QAccessible::Announcement; + } + + inline QAccessibleAnnouncementEvent(QAccessibleInterface *iface, const QString &message) + : QAccessibleEvent(iface, QAccessible::InvalidEvent) + , m_message(message) + , m_priority(QAccessible::AnnouncementPriority::Polite) + { + m_type = QAccessible::Announcement; + } + + ~QAccessibleAnnouncementEvent(); + + QString message() const { return m_message; } + QAccessible::AnnouncementPriority priority() const { return m_priority; } + void setPriority(QAccessible::AnnouncementPriority priority) { m_priority = priority; }; + +protected: + QString m_message; + QAccessible::AnnouncementPriority m_priority; +}; + #ifndef Q_QDOC #define QAccessibleInterface_iid "org.qt-project.Qt.QAccessibleInterface" Q_DECLARE_INTERFACE(QAccessibleInterface, QAccessibleInterface_iid) |