Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qaccessible.h
Go to the documentation of this file.
1// Copyright (C) 2020 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4
5#if 0
6// keep existing syncqt header working after the move of the class
7// into qaccessible_base
8#pragma qt_class(QAccessible)
9#endif
10
11#ifndef QACCESSIBLE_H
12#define QACCESSIBLE_H
13#include <QtGui/qtguiglobal.h>
14
15#if QT_CONFIG(accessibility)
16
17#include <QtCore/qcoreapplication.h>
18#include <QtCore/qglobal.h>
19#include <QtCore/qlist.h>
20#include <QtCore/qobject.h>
21#include <QtCore/qrect.h>
22#include <QtCore/qset.h>
23#include <QtCore/qvariant.h>
24#include <QtGui/qcolor.h>
25#include <QtGui/qevent.h>
26#include <QtGui/qaccessible_base.h>
27
28QT_BEGIN_NAMESPACE
29
30class QDebug;
31class QAccessibleInterface;
32class QAccessibleEvent;
33class QWindow;
34class QTextCursor;
35
36class QAccessible2Interface;
37class QAccessibleTextInterface;
38class QAccessibleEditableTextInterface;
39class QAccessibleValueInterface;
40class QAccessibleActionInterface;
41class QAccessibleImageInterface;
42class QAccessibleTableInterface;
43class QAccessibleTableCellInterface;
44class QAccessibleHyperlinkInterface;
45class QAccessibleSelectionInterface;
46class QAccessibleAttributesInterface;
47class QAccessibleTableModelChangeEvent;
48class QAccessibleViewportInterface;
49
50class Q_GUI_EXPORT QAccessibleInterface
51{
52protected:
53 virtual ~QAccessibleInterface();
54
55public:
56 // check for valid pointers
57 virtual bool isValid() const = 0;
58 virtual QObject *object() const = 0;
59 virtual QWindow *window() const;
60
61 // relations
62 virtual QList<std::pair<QAccessibleInterface *, QAccessible::Relation>>
63 relations(QAccessible::Relation match = QAccessible::AllRelations) const;
64 virtual QAccessibleInterface *focusChild() const;
65
66 virtual QAccessibleInterface *childAt(int x, int y) const = 0;
67
68 // navigation, hierarchy
69 virtual QAccessibleInterface *parent() const = 0;
70 virtual QAccessibleInterface *child(int index) const = 0;
71 virtual int childCount() const = 0;
72 virtual int indexOfChild(const QAccessibleInterface *) const = 0;
73
74 // properties and state
75 virtual QString text(QAccessible::Text t) const = 0;
76 virtual void setText(QAccessible::Text t, const QString &text) = 0;
77 virtual QRect rect() const = 0;
78 virtual QAccessible::Role role() const = 0;
79 virtual QAccessible::State state() const = 0;
80
81 virtual QColor foregroundColor() const;
82 virtual QColor backgroundColor() const;
83
84 inline QAccessibleTextInterface *textInterface()
85 { return reinterpret_cast<QAccessibleTextInterface *>(interface_cast(QAccessible::TextInterface)); }
86
87 inline QAccessibleEditableTextInterface *editableTextInterface()
88 { return reinterpret_cast<QAccessibleEditableTextInterface *>(interface_cast(QAccessible::EditableTextInterface)); }
89
90 inline QAccessibleValueInterface *valueInterface()
91 { return reinterpret_cast<QAccessibleValueInterface *>(interface_cast(QAccessible::ValueInterface)); }
92
93 inline QAccessibleActionInterface *actionInterface()
94 { return reinterpret_cast<QAccessibleActionInterface *>(interface_cast(QAccessible::ActionInterface)); }
95
96 inline QAccessibleImageInterface *imageInterface()
97 { return reinterpret_cast<QAccessibleImageInterface *>(interface_cast(QAccessible::ImageInterface)); }
98
99 inline QAccessibleTableInterface *tableInterface()
100 { return reinterpret_cast<QAccessibleTableInterface *>(interface_cast(QAccessible::TableInterface)); }
101
102 inline QAccessibleTableCellInterface *tableCellInterface()
103 { return reinterpret_cast<QAccessibleTableCellInterface *>(interface_cast(QAccessible::TableCellInterface)); }
104
105 inline QAccessibleHyperlinkInterface *hyperlinkInterface()
106 { return reinterpret_cast<QAccessibleHyperlinkInterface *>(interface_cast(QAccessible::HyperlinkInterface)); }
107
108 inline QAccessibleSelectionInterface *selectionInterface()
109 { return reinterpret_cast<QAccessibleSelectionInterface *>(interface_cast(QAccessible::SelectionInterface)); }
110
111 inline QAccessibleAttributesInterface *attributesInterface()
112 { return reinterpret_cast<QAccessibleAttributesInterface *>(interface_cast(QAccessible::AttributesInterface)); }
113
114 inline QAccessibleViewportInterface *viewportInterface()
115 { return reinterpret_cast<QAccessibleViewportInterface *>(interface_cast(QAccessible::ViewportInterface)); }
116
117 virtual void virtual_hook(int id, void *data);
118
119 virtual void *interface_cast(QAccessible::InterfaceType)
120 { return nullptr; }
121
122protected:
123 friend class QAccessibleCache;
124};
125
126class Q_GUI_EXPORT QAccessibleTextInterface
127{
128public:
129 virtual ~QAccessibleTextInterface();
130 // selection
131 virtual void selection(int selectionIndex, int *startOffset, int *endOffset) const = 0;
132 virtual int selectionCount() const = 0;
133 virtual void addSelection(int startOffset, int endOffset) = 0;
134 virtual void removeSelection(int selectionIndex) = 0;
135 virtual void setSelection(int selectionIndex, int startOffset, int endOffset) = 0;
136
137 // cursor
138 virtual int cursorPosition() const = 0;
139 virtual void setCursorPosition(int position) = 0;
140
141 // text
142 virtual QString text(int startOffset, int endOffset) const = 0;
143 virtual QString textBeforeOffset(int offset, QAccessible::TextBoundaryType boundaryType,
144 int *startOffset, int *endOffset) const;
145 virtual QString textAfterOffset(int offset, QAccessible::TextBoundaryType boundaryType,
146 int *startOffset, int *endOffset) const;
147 virtual QString textAtOffset(int offset, QAccessible::TextBoundaryType boundaryType,
148 int *startOffset, int *endOffset) const;
149 virtual int characterCount() const = 0;
150
151 // character <-> geometry
152 virtual QRect characterRect(int offset) const = 0;
153 virtual int offsetAtPoint(const QPoint &point) const = 0;
154
155 virtual void scrollToSubstring(int startIndex, int endIndex) = 0;
156 virtual QString attributes(int offset, int *startOffset, int *endOffset) const = 0;
157};
158
159class Q_GUI_EXPORT QAccessibleEditableTextInterface
160{
161public:
162 virtual ~QAccessibleEditableTextInterface();
163
164 virtual void deleteText(int startOffset, int endOffset) = 0;
165 virtual void insertText(int offset, const QString &text) = 0;
166 virtual void replaceText(int startOffset, int endOffset, const QString &text) = 0;
167};
168
169class Q_GUI_EXPORT QAccessibleValueInterface
170{
171public:
172 virtual ~QAccessibleValueInterface();
173
174 virtual QVariant currentValue() const = 0;
175 virtual void setCurrentValue(const QVariant &value) = 0;
176 virtual QVariant maximumValue() const = 0;
177 virtual QVariant minimumValue() const = 0;
178 virtual QVariant minimumStepSize() const = 0;
179};
180
181class Q_GUI_EXPORT QAccessibleTableCellInterface
182{
183public:
184 virtual ~QAccessibleTableCellInterface();
185
186 virtual bool isSelected() const = 0;
187
188 virtual QList<QAccessibleInterface*> columnHeaderCells() const = 0;
189 virtual QList<QAccessibleInterface*> rowHeaderCells() const = 0;
190 virtual int columnIndex() const = 0;
191 virtual int rowIndex() const = 0;
192 virtual int columnExtent() const = 0;
193 virtual int rowExtent() const = 0;
194
195 virtual QAccessibleInterface* table() const = 0;
196};
197
198class Q_GUI_EXPORT QAccessibleTableInterface
199{
200public:
201 virtual ~QAccessibleTableInterface();
202
203 virtual QAccessibleInterface *caption() const = 0;
204 virtual QAccessibleInterface *summary() const = 0;
205
206 virtual QAccessibleInterface *cellAt (int row, int column) const = 0;
207 virtual int selectedCellCount() const = 0;
208 virtual QList<QAccessibleInterface*> selectedCells() const = 0;
209
210 virtual QString columnDescription(int column) const = 0;
211 virtual QString rowDescription(int row) const = 0;
212 virtual int selectedColumnCount() const = 0;
213 virtual int selectedRowCount() const = 0;
214 virtual int columnCount() const = 0;
215 virtual int rowCount() const = 0;
216 virtual QList<int> selectedColumns() const = 0;
217 virtual QList<int> selectedRows() const = 0;
218 virtual bool isColumnSelected(int column) const = 0;
219 virtual bool isRowSelected(int row) const = 0;
220 virtual bool selectRow(int row) = 0;
221 virtual bool selectColumn(int column) = 0;
222 virtual bool unselectRow(int row) = 0;
223 virtual bool unselectColumn(int column) = 0;
224
225 virtual void modelChange(QAccessibleTableModelChangeEvent *event) = 0;
226
227protected:
228friend class QAbstractItemView;
229friend class QAbstractItemViewPrivate;
230};
231
232class Q_GUI_EXPORT QAccessibleActionInterface
233{
234 Q_DECLARE_TR_FUNCTIONS(QAccessibleActionInterface)
235public:
236 virtual ~QAccessibleActionInterface();
237
238 virtual QStringList actionNames() const = 0;
239 virtual QString localizedActionName(const QString &name) const;
240 virtual QString localizedActionDescription(const QString &name) const;
241 virtual void doAction(const QString &actionName) = 0;
242 virtual QStringList keyBindingsForAction(const QString &actionName) const = 0;
243
244 static const QString &pressAction();
245 static const QString &increaseAction();
246 static const QString &decreaseAction();
247 static const QString &showMenuAction();
248 static const QString &setFocusAction();
249 static const QString &showOnScreenAction();
250 static const QString &toggleAction();
251 static QString scrollLeftAction();
252 static QString scrollRightAction();
253 static QString scrollUpAction();
254 static QString scrollDownAction();
255 static QString nextPageAction();
256 static QString previousPageAction();
257};
258
259class Q_GUI_EXPORT QAccessibleImageInterface
260{
261public:
262 virtual ~QAccessibleImageInterface();
263
264 virtual QString imageDescription() const = 0;
265 virtual QSize imageSize() const = 0;
266 virtual QPoint imagePosition() const = 0;
267};
268
269class Q_GUI_EXPORT QAccessibleHyperlinkInterface
270{
271public:
272 virtual ~QAccessibleHyperlinkInterface();
273
274 virtual QString anchor() const = 0;
275 virtual QString anchorTarget() const = 0;
276 virtual int startIndex() const = 0;
277 virtual int endIndex() const = 0;
278 virtual bool isValid() const = 0;
279};
280
281class Q_GUI_EXPORT QAccessibleSelectionInterface
282{
283public:
284 virtual ~QAccessibleSelectionInterface();
285
286 virtual int selectedItemCount() const = 0;
287 virtual QList<QAccessibleInterface*> selectedItems() const = 0;
288 virtual QAccessibleInterface* selectedItem(int selectionIndex) const;
289 virtual bool isSelected(QAccessibleInterface *childItem) const;
290 virtual bool select(QAccessibleInterface *childItem) = 0;
291 virtual bool unselect(QAccessibleInterface *childItem) = 0;
292 virtual bool selectAll() = 0;
293 virtual bool clear() = 0;
294};
295
296class Q_GUI_EXPORT QAccessibleAttributesInterface
297{
298public:
299 virtual ~QAccessibleAttributesInterface();
300 virtual QList<QAccessible::Attribute> attributeKeys() const = 0;
301 virtual QVariant attributeValue(QAccessible::Attribute key) const = 0;
302};
303
304class Q_GUI_EXPORT QAccessibleViewportInterface
305{
306public:
307 virtual ~QAccessibleViewportInterface();
308
309 virtual QSizeF contentSize() const = 0;
310 virtual QPointF position() const = 0;
311 virtual QSizeF viewportSize() const = 0;
312 virtual bool isIndexed() const = 0;
313 virtual void setPosition(const QPointF &position) = 0;
314};
315
316
317class Q_GUI_EXPORT QAccessibleEvent
318{
319 Q_DISABLE_COPY(QAccessibleEvent)
320public:
321
322 inline QAccessibleEvent(QObject *obj, QAccessible::Event typ)
323 : m_type(typ), m_object(obj), m_child(-1)
324 {
325 if (m_type != QAccessible::ObjectDestroyed)
326 Q_ASSERT(obj);
327 // All events below have a subclass of QAccessibleEvent.
328 // Use the subclass, since it's expected that it's possible to cast to that.
329 Q_ASSERT(m_type != QAccessible::ValueChanged);
330 Q_ASSERT(m_type != QAccessible::StateChanged);
331 Q_ASSERT(m_type != QAccessible::TextCaretMoved);
332 Q_ASSERT(m_type != QAccessible::TextSelectionChanged);
333 Q_ASSERT(m_type != QAccessible::TextInserted);
334 Q_ASSERT(m_type != QAccessible::TextRemoved);
335 Q_ASSERT(m_type != QAccessible::TextUpdated);
336 Q_ASSERT(m_type != QAccessible::TableModelChanged);
337 Q_ASSERT(m_type != QAccessible::Announcement);
338 }
339
340 inline QAccessibleEvent(QAccessibleInterface *iface, QAccessible::Event typ)
341 : m_type(typ)
342 {
343 Q_ASSERT(iface);
344 Q_ASSERT(m_type != QAccessible::ValueChanged);
345 Q_ASSERT(m_type != QAccessible::StateChanged);
346 Q_ASSERT(m_type != QAccessible::TextCaretMoved);
347 Q_ASSERT(m_type != QAccessible::TextSelectionChanged);
348 Q_ASSERT(m_type != QAccessible::TextInserted);
349 Q_ASSERT(m_type != QAccessible::TextRemoved);
350 Q_ASSERT(m_type != QAccessible::TextUpdated);
351 Q_ASSERT(m_type != QAccessible::TableModelChanged);
352 Q_ASSERT(m_type != QAccessible::Announcement);
353 m_uniqueId = QAccessible::uniqueId(iface);
354 m_object = iface->object();
355 }
356
357 virtual ~QAccessibleEvent();
358
359 QAccessible::Event type() const { return m_type; }
360 QObject *object() const { return m_object; }
361 QAccessible::Id uniqueId() const;
362
363 void setChild(int chld);
364 int child() const { return m_child; }
365
366 virtual QAccessibleInterface *accessibleInterface() const;
367
368protected:
369 QAccessible::Event m_type;
370 QObject *m_object;
371 union {
372 int m_child;
373 QAccessible::Id m_uniqueId;
374 };
375
376 friend class QTestAccessibility;
377};
378
379class Q_GUI_EXPORT QAccessibleStateChangeEvent :public QAccessibleEvent
380{
381public:
382 inline QAccessibleStateChangeEvent(QObject *obj, QAccessible::State state)
383 : QAccessibleEvent(obj, QAccessible::InvalidEvent), m_changedStates(state)
384 {
385 m_type = QAccessible::StateChanged;
386 }
387 inline QAccessibleStateChangeEvent(QAccessibleInterface *iface, QAccessible::State state)
388 : QAccessibleEvent(iface, QAccessible::InvalidEvent), m_changedStates(state)
389 {
390 m_type = QAccessible::StateChanged;
391 }
392 ~QAccessibleStateChangeEvent();
393
394 QAccessible::State changedStates() const {
395 return m_changedStates;
396 }
397
398protected:
399 QAccessible::State m_changedStates;
400};
401
402// Update the cursor and optionally the selection.
403class Q_GUI_EXPORT QAccessibleTextCursorEvent : public QAccessibleEvent
404{
405public:
406 inline QAccessibleTextCursorEvent(QObject *obj, int cursorPos)
407 : QAccessibleEvent(obj, QAccessible::InvalidEvent)
408 , m_cursorPosition(cursorPos)
409 {
410 m_type = QAccessible::TextCaretMoved;
411 }
412 inline QAccessibleTextCursorEvent(QAccessibleInterface *iface, int cursorPos)
413 : QAccessibleEvent(iface, QAccessible::InvalidEvent)
414 , m_cursorPosition(cursorPos)
415 {
416 m_type = QAccessible::TextCaretMoved;
417 }
418
419 ~QAccessibleTextCursorEvent();
420
421 void setCursorPosition(int position) { m_cursorPosition = position; }
422 int cursorPosition() const { return m_cursorPosition; }
423
424protected:
425 int m_cursorPosition;
426};
427
428// Updates the cursor position simultaneously. By default the cursor is set to the end of the selection.
429class Q_GUI_EXPORT QAccessibleTextSelectionEvent : public QAccessibleTextCursorEvent
430{
431public:
432 inline QAccessibleTextSelectionEvent(QObject *obj, int start, int end)
433 : QAccessibleTextCursorEvent(obj, (start == -1) ? 0 : end)
434 , m_selectionStart(start), m_selectionEnd(end)
435 {
436 m_type = QAccessible::TextSelectionChanged;
437 }
438 inline QAccessibleTextSelectionEvent(QAccessibleInterface *iface, int start, int end)
439 : QAccessibleTextCursorEvent(iface, (start == -1) ? 0 : end)
440 , m_selectionStart(start), m_selectionEnd(end)
441 {
442 m_type = QAccessible::TextSelectionChanged;
443 }
444
445 ~QAccessibleTextSelectionEvent();
446
447 void setSelection(int start, int end) {
448 m_selectionStart = start;
449 m_selectionEnd = end;
450 }
451
452 int selectionStart() const { return m_selectionStart; }
453 int selectionEnd() const { return m_selectionEnd; }
454
455protected:
456 int m_selectionStart;
457 int m_selectionEnd;
458};
459
460class Q_GUI_EXPORT QAccessibleTextInsertEvent : public QAccessibleTextCursorEvent
461{
462public:
463 inline QAccessibleTextInsertEvent(QObject *obj, int position, const QString &text)
464 : QAccessibleTextCursorEvent(obj, position + int(text.size()))
465 , m_position(position), m_text(text)
466 {
467 m_type = QAccessible::TextInserted;
468 }
469 inline QAccessibleTextInsertEvent(QAccessibleInterface *iface, int position, const QString &text)
470 : QAccessibleTextCursorEvent(iface, position + int(text.size()))
471 , m_position(position), m_text(text)
472 {
473 m_type = QAccessible::TextInserted;
474 }
475
476 ~QAccessibleTextInsertEvent();
477
478 QString textInserted() const {
479 return m_text;
480 }
481 int changePosition() const {
482 return m_position;
483 }
484
485protected:
486 int m_position;
487 QString m_text;
488};
489
490class Q_GUI_EXPORT QAccessibleTextRemoveEvent : public QAccessibleTextCursorEvent
491{
492public:
493 inline QAccessibleTextRemoveEvent(QObject *obj, int position, const QString &text)
494 : QAccessibleTextCursorEvent(obj, position)
495 , m_position(position), m_text(text)
496 {
497 m_type = QAccessible::TextRemoved;
498 }
499 inline QAccessibleTextRemoveEvent(QAccessibleInterface *iface, int position, const QString &text)
500 : QAccessibleTextCursorEvent(iface, position)
501 , m_position(position), m_text(text)
502 {
503 m_type = QAccessible::TextRemoved;
504 }
505
506 ~QAccessibleTextRemoveEvent();
507
508 QString textRemoved() const {
509 return m_text;
510 }
511 int changePosition() const {
512 return m_position;
513 }
514
515protected:
516 int m_position;
517 QString m_text;
518};
519
520class Q_GUI_EXPORT QAccessibleTextUpdateEvent : public QAccessibleTextCursorEvent
521{
522public:
523 inline QAccessibleTextUpdateEvent(QObject *obj, int position, const QString &oldText, const QString &text)
524 : QAccessibleTextCursorEvent(obj, position + int(text.size()))
525 , m_position(position), m_oldText(oldText), m_text(text)
526 {
527 m_type = QAccessible::TextUpdated;
528 }
529 inline QAccessibleTextUpdateEvent(QAccessibleInterface *iface, int position, const QString &oldText, const QString &text)
530 : QAccessibleTextCursorEvent(iface, position + int(text.size()))
531 , m_position(position), m_oldText(oldText), m_text(text)
532 {
533 m_type = QAccessible::TextUpdated;
534 }
535
536 ~QAccessibleTextUpdateEvent();
537
538 QString textRemoved() const {
539 return m_oldText;
540 }
541 QString textInserted() const {
542 return m_text;
543 }
544 int changePosition() const {
545 return m_position;
546 }
547
548protected:
549 int m_position;
550 QString m_oldText;
551 QString m_text;
552};
553
554class Q_GUI_EXPORT QAccessibleValueChangeEvent : public QAccessibleEvent
555{
556public:
557 inline QAccessibleValueChangeEvent(QObject *obj, const QVariant &val)
558 : QAccessibleEvent(obj, QAccessible::InvalidEvent)
559 , m_value(val)
560 {
561 m_type = QAccessible::ValueChanged;
562 }
563 inline QAccessibleValueChangeEvent(QAccessibleInterface *iface, const QVariant &val)
564 : QAccessibleEvent(iface, QAccessible::InvalidEvent)
565 , m_value(val)
566 {
567 m_type = QAccessible::ValueChanged;
568 }
569
570 ~QAccessibleValueChangeEvent();
571
572 void setValue(const QVariant & val) { m_value= val; }
573 QVariant value() const { return m_value; }
574
575protected:
576 QVariant m_value;
577};
578
579class Q_GUI_EXPORT QAccessibleTableModelChangeEvent : public QAccessibleEvent
580{
581public:
582 enum ModelChangeType {
583 ModelReset,
584 DataChanged,
585 RowsInserted,
586 ColumnsInserted,
587 RowsRemoved,
588 ColumnsRemoved
589 };
590
591 inline QAccessibleTableModelChangeEvent(QObject *obj, ModelChangeType changeType)
592 : QAccessibleEvent(obj, QAccessible::InvalidEvent)
593 , m_modelChangeType(changeType)
594 , m_firstRow(-1), m_firstColumn(-1), m_lastRow(-1), m_lastColumn(-1)
595 {
596 m_type = QAccessible::TableModelChanged;
597 }
598 inline QAccessibleTableModelChangeEvent(QAccessibleInterface *iface, ModelChangeType changeType)
599 : QAccessibleEvent(iface, QAccessible::InvalidEvent)
600 , m_modelChangeType(changeType)
601 , m_firstRow(-1), m_firstColumn(-1), m_lastRow(-1), m_lastColumn(-1)
602 {
603 m_type = QAccessible::TableModelChanged;
604 }
605
606 ~QAccessibleTableModelChangeEvent();
607
608 void setModelChangeType(ModelChangeType changeType) { m_modelChangeType = changeType; }
609 ModelChangeType modelChangeType() const { return m_modelChangeType; }
610
611 void setFirstRow(int row) { m_firstRow = row; }
612 void setFirstColumn(int col) { m_firstColumn = col; }
613 void setLastRow(int row) { m_lastRow = row; }
614 void setLastColumn(int col) { m_lastColumn = col; }
615 int firstRow() const { return m_firstRow; }
616 int firstColumn() const { return m_firstColumn; }
617 int lastRow() const { return m_lastRow; }
618 int lastColumn() const { return m_lastColumn; }
619
620protected:
621 ModelChangeType m_modelChangeType;
622 int m_firstRow;
623 int m_firstColumn;
624 int m_lastRow;
625 int m_lastColumn;
626};
627
628class Q_GUI_EXPORT QAccessibleAnnouncementEvent : public QAccessibleEvent
629{
630public:
631 explicit QAccessibleAnnouncementEvent(QObject *object, const QString &message)
632 : QAccessibleEvent(object, QAccessible::InvalidEvent)
633 , m_message(message)
634 , m_politeness(QAccessible::AnnouncementPoliteness::Polite)
635 {
636 m_type = QAccessible::Announcement;
637 }
638
639 explicit QAccessibleAnnouncementEvent(QAccessibleInterface *iface, const QString &message)
640 : QAccessibleEvent(iface, QAccessible::InvalidEvent)
641 , m_message(message)
642 , m_politeness(QAccessible::AnnouncementPoliteness::Polite)
643 {
644 m_type = QAccessible::Announcement;
645 }
646
647 ~QAccessibleAnnouncementEvent() override;
648
649 QString message() const { return m_message; }
650 QAccessible::AnnouncementPoliteness politeness() const { return m_politeness; }
651 void setPoliteness(QAccessible::AnnouncementPoliteness politeness)
652 { m_politeness = politeness; }
653
654protected:
655 QString m_message;
656 QAccessible::AnnouncementPoliteness m_politeness;
657};
658
659#ifndef Q_QDOC
660#define QAccessibleInterface_iid "org.qt-project.Qt.QAccessibleInterface"
661Q_DECLARE_INTERFACE(QAccessibleInterface, QAccessibleInterface_iid)
662#endif
663
664Q_GUI_EXPORT const char *qAccessibleRoleString(QAccessible::Role role);
665Q_GUI_EXPORT const char *qAccessibleEventString(QAccessible::Event event);
666Q_GUI_EXPORT QString qAccessibleLocalizedActionDescription(const QString &actionName);
667
668#ifndef QT_NO_DEBUG_STREAM
669Q_GUI_EXPORT QDebug operator<<(QDebug d, const QAccessibleInterface *iface);
670Q_GUI_EXPORT QDebug operator<<(QDebug d, const QAccessibleEvent &ev);
671#endif
672
673QT_END_NAMESPACE
674
675#endif // QT_CONFIG(accessibility)
676#endif // QACCESSIBLE_H
QT_BEGIN_NAMESPACE Q_STATIC_LOGGING_CATEGORY(lcSynthesizedIterableAccess, "qt.iterable.synthesized", QtWarningMsg)