8#pragma qt_class(QAccessible)
13#include <QtGui/qtguiglobal.h>
15#if QT_CONFIG(accessibility)
17#include <QtCore/qcoreapplication.h>
18#include <QtCore/qdebug.h>
19#include <QtCore/qglobal.h>
20#include <QtCore/qlist.h>
21#include <QtCore/qobject.h>
22#include <QtCore/qrect.h>
23#include <QtCore/qset.h>
24#include <QtCore/qvariant.h>
25#include <QtGui/qcolor.h>
26#include <QtGui/qevent.h>
27#include <QtGui/qaccessible_base.h>
31class QAccessibleInterface;
32class QAccessibleEvent;
36class QAccessible2Interface;
37class QAccessibleTextInterface;
38class QAccessibleEditableTextInterface;
39class QAccessibleValueInterface;
40class QAccessibleActionInterface;
41class QAccessibleImageInterface;
42class QAccessibleTableInterface;
43class QAccessibleTableCellInterface;
44class QAccessibleHyperlinkInterface;
45class QAccessibleSelectionInterface;
46class QAccessibleTableModelChangeEvent;
48class Q_GUI_EXPORT QAccessibleInterface
51 virtual ~QAccessibleInterface();
55 virtual bool isValid()
const = 0;
61 relations(QAccessible::Relation
match = QAccessible::AllRelations)
const;
62 virtual QAccessibleInterface *focusChild()
const;
64 virtual QAccessibleInterface *childAt(
int x,
int y)
const = 0;
67 virtual QAccessibleInterface *
parent()
const = 0;
68 virtual QAccessibleInterface *
child(
int index)
const = 0;
69 virtual int childCount()
const = 0;
70 virtual int indexOfChild(
const QAccessibleInterface *)
const = 0;
76 virtual QAccessible::Role role()
const = 0;
79 virtual QColor foregroundColor()
const;
80 virtual QColor backgroundColor()
const;
82 inline QAccessibleTextInterface *textInterface()
83 {
return reinterpret_cast<QAccessibleTextInterface *
>(interface_cast(QAccessible::TextInterface)); }
85 inline QAccessibleEditableTextInterface *editableTextInterface()
86 {
return reinterpret_cast<QAccessibleEditableTextInterface *
>(interface_cast(QAccessible::EditableTextInterface)); }
88 inline QAccessibleValueInterface *valueInterface()
89 {
return reinterpret_cast<QAccessibleValueInterface *
>(interface_cast(QAccessible::ValueInterface)); }
91 inline QAccessibleActionInterface *actionInterface()
92 {
return reinterpret_cast<QAccessibleActionInterface *
>(interface_cast(QAccessible::ActionInterface)); }
94 inline QAccessibleImageInterface *imageInterface()
95 {
return reinterpret_cast<QAccessibleImageInterface *
>(interface_cast(QAccessible::ImageInterface)); }
97 inline QAccessibleTableInterface *tableInterface()
98 {
return reinterpret_cast<QAccessibleTableInterface *
>(interface_cast(QAccessible::TableInterface)); }
100 inline QAccessibleTableCellInterface *tableCellInterface()
101 {
return reinterpret_cast<QAccessibleTableCellInterface *
>(interface_cast(QAccessible::TableCellInterface)); }
103 inline QAccessibleHyperlinkInterface *hyperlinkInterface()
104 {
return reinterpret_cast<QAccessibleHyperlinkInterface *
>(interface_cast(QAccessible::HyperlinkInterface)); }
106 inline QAccessibleSelectionInterface *selectionInterface()
107 {
return reinterpret_cast<QAccessibleSelectionInterface *
>(interface_cast(QAccessible::SelectionInterface)); }
109 virtual void virtual_hook(
int id,
void *
data);
111 virtual void *interface_cast(QAccessible::InterfaceType)
115 friend class QAccessibleCache;
118class Q_GUI_EXPORT QAccessibleTextInterface
121 virtual ~QAccessibleTextInterface();
123 virtual void selection(
int selectionIndex,
int *startOffset,
int *endOffset)
const = 0;
124 virtual int selectionCount()
const = 0;
125 virtual void addSelection(
int startOffset,
int endOffset) = 0;
126 virtual void removeSelection(
int selectionIndex) = 0;
127 virtual void setSelection(
int selectionIndex,
int startOffset,
int endOffset) = 0;
130 virtual int cursorPosition()
const = 0;
131 virtual void setCursorPosition(
int position) = 0;
134 virtual QString text(
int startOffset,
int endOffset)
const = 0;
135 virtual QString textBeforeOffset(
int offset, QAccessible::TextBoundaryType boundaryType,
136 int *startOffset,
int *endOffset)
const;
137 virtual QString textAfterOffset(
int offset, QAccessible::TextBoundaryType boundaryType,
138 int *startOffset,
int *endOffset)
const;
139 virtual QString textAtOffset(
int offset, QAccessible::TextBoundaryType boundaryType,
140 int *startOffset,
int *endOffset)
const;
141 virtual int characterCount()
const = 0;
145 virtual int offsetAtPoint(
const QPoint &point)
const = 0;
147 virtual void scrollToSubstring(
int startIndex,
int endIndex) = 0;
148 virtual QString attributes(
int offset,
int *startOffset,
int *endOffset)
const = 0;
151class Q_GUI_EXPORT QAccessibleEditableTextInterface
154 virtual ~QAccessibleEditableTextInterface();
156 virtual void deleteText(
int startOffset,
int endOffset) = 0;
158 virtual void replaceText(
int startOffset,
int endOffset,
const QString &
text) = 0;
161class Q_GUI_EXPORT QAccessibleValueInterface
164 virtual ~QAccessibleValueInterface();
168 virtual QVariant maximumValue()
const = 0;
169 virtual QVariant minimumValue()
const = 0;
170 virtual QVariant minimumStepSize()
const = 0;
173class Q_GUI_EXPORT QAccessibleTableCellInterface
176 virtual ~QAccessibleTableCellInterface();
178 virtual bool isSelected()
const = 0;
182 virtual int columnIndex()
const = 0;
183 virtual int rowIndex()
const = 0;
184 virtual int columnExtent()
const = 0;
185 virtual int rowExtent()
const = 0;
187 virtual QAccessibleInterface*
table()
const = 0;
190class Q_GUI_EXPORT QAccessibleTableInterface
193 virtual ~QAccessibleTableInterface();
195 virtual QAccessibleInterface *caption()
const = 0;
196 virtual QAccessibleInterface *summary()
const = 0;
198 virtual QAccessibleInterface *cellAt (
int row,
int column)
const = 0;
199 virtual int selectedCellCount()
const = 0;
203 virtual QString rowDescription(
int row)
const = 0;
204 virtual int selectedColumnCount()
const = 0;
205 virtual int selectedRowCount()
const = 0;
206 virtual int columnCount()
const = 0;
207 virtual int rowCount()
const = 0;
208 virtual QList<int> selectedColumns()
const = 0;
210 virtual bool isColumnSelected(
int column)
const = 0;
211 virtual bool isRowSelected(
int row)
const = 0;
212 virtual bool selectRow(
int row) = 0;
213 virtual bool selectColumn(
int column) = 0;
214 virtual bool unselectRow(
int row) = 0;
215 virtual bool unselectColumn(
int column) = 0;
217 virtual void modelChange(QAccessibleTableModelChangeEvent *
event) = 0;
224class Q_GUI_EXPORT QAccessibleActionInterface
228 virtual ~QAccessibleActionInterface();
233 virtual void doAction(
const QString &actionName) = 0;
236 static const QString &pressAction();
237 static const QString &increaseAction();
238 static const QString &decreaseAction();
239 static const QString &showMenuAction();
240 static const QString &setFocusAction();
241 static const QString &toggleAction();
242 static QString scrollLeftAction();
243 static QString scrollRightAction();
244 static QString scrollUpAction();
245 static QString scrollDownAction();
246 static QString nextPageAction();
247 static QString previousPageAction();
250class Q_GUI_EXPORT QAccessibleImageInterface
253 virtual ~QAccessibleImageInterface();
255 virtual QString imageDescription()
const = 0;
257 virtual QPoint imagePosition()
const = 0;
260class Q_GUI_EXPORT QAccessibleHyperlinkInterface
263 virtual ~QAccessibleHyperlinkInterface();
265 virtual QString anchor()
const = 0;
266 virtual QString anchorTarget()
const = 0;
267 virtual int startIndex()
const = 0;
268 virtual int endIndex()
const = 0;
269 virtual bool isValid()
const = 0;
272class Q_GUI_EXPORT QAccessibleSelectionInterface
275 virtual ~QAccessibleSelectionInterface();
277 virtual int selectedItemCount()
const = 0;
279 virtual QAccessibleInterface* selectedItem(
int selectionIndex)
const;
280 virtual bool isSelected(QAccessibleInterface *childItem)
const;
281 virtual bool select(QAccessibleInterface *childItem) = 0;
282 virtual bool unselect(QAccessibleInterface *childItem) = 0;
284 virtual bool clear() = 0;
287class Q_GUI_EXPORT QAccessibleEvent
289 Q_DISABLE_COPY(QAccessibleEvent)
292 inline QAccessibleEvent(
QObject *
obj, QAccessible::Event typ)
293 : m_type(typ), m_object(
obj), m_child(-1)
298 Q_ASSERT(m_type != QAccessible::ValueChanged);
299 Q_ASSERT(m_type != QAccessible::StateChanged);
300 Q_ASSERT(m_type != QAccessible::TextCaretMoved);
301 Q_ASSERT(m_type != QAccessible::TextSelectionChanged);
302 Q_ASSERT(m_type != QAccessible::TextInserted);
303 Q_ASSERT(m_type != QAccessible::TextRemoved);
304 Q_ASSERT(m_type != QAccessible::TextUpdated);
305 Q_ASSERT(m_type != QAccessible::TableModelChanged);
308 inline QAccessibleEvent(QAccessibleInterface *iface, QAccessible::Event typ)
312 Q_ASSERT(m_type != QAccessible::ValueChanged);
313 Q_ASSERT(m_type != QAccessible::StateChanged);
314 Q_ASSERT(m_type != QAccessible::TextCaretMoved);
315 Q_ASSERT(m_type != QAccessible::TextSelectionChanged);
316 Q_ASSERT(m_type != QAccessible::TextInserted);
317 Q_ASSERT(m_type != QAccessible::TextRemoved);
318 Q_ASSERT(m_type != QAccessible::TextUpdated);
319 Q_ASSERT(m_type != QAccessible::TableModelChanged);
320 m_uniqueId = QAccessible::uniqueId(iface);
321 m_object =
iface->object();
324 virtual ~QAccessibleEvent();
326 QAccessible::Event
type()
const {
return m_type; }
328 QAccessible::Id uniqueId()
const;
330 void setChild(
int chld) { m_child = chld; }
331 int child()
const {
return m_child; }
333 virtual QAccessibleInterface *accessibleInterface()
const;
336 QAccessible::Event m_type;
340 QAccessible::Id m_uniqueId;
343 friend class QTestAccessibility;
346class Q_GUI_EXPORT QAccessibleStateChangeEvent :
public QAccessibleEvent
352 m_type = QAccessible::StateChanged;
357 m_type = QAccessible::StateChanged;
359 ~QAccessibleStateChangeEvent();
362 return m_changedStates;
370class Q_GUI_EXPORT QAccessibleTextCursorEvent :
public QAccessibleEvent
373 inline QAccessibleTextCursorEvent(
QObject *
obj,
int cursorPos)
375 , m_cursorPosition(cursorPos)
377 m_type = QAccessible::TextCaretMoved;
379 inline QAccessibleTextCursorEvent(QAccessibleInterface *iface,
int cursorPos)
381 , m_cursorPosition(cursorPos)
383 m_type = QAccessible::TextCaretMoved;
386 ~QAccessibleTextCursorEvent();
389 int cursorPosition()
const {
return m_cursorPosition; }
392 int m_cursorPosition;
396class Q_GUI_EXPORT QAccessibleTextSelectionEvent :
public QAccessibleTextCursorEvent
400 : QAccessibleTextCursorEvent(
obj, (
start == -1) ? 0 :
end)
401 , m_selectionStart(
start), m_selectionEnd(
end)
403 m_type = QAccessible::TextSelectionChanged;
405 inline QAccessibleTextSelectionEvent(QAccessibleInterface *iface,
int start,
int end)
407 , m_selectionStart(
start), m_selectionEnd(
end)
409 m_type = QAccessible::TextSelectionChanged;
412 ~QAccessibleTextSelectionEvent();
415 m_selectionStart =
start;
416 m_selectionEnd =
end;
419 int selectionStart()
const {
return m_selectionStart; }
420 int selectionEnd()
const {
return m_selectionEnd; }
423 int m_selectionStart;
427class Q_GUI_EXPORT QAccessibleTextInsertEvent :
public QAccessibleTextCursorEvent
434 m_type = QAccessible::TextInserted;
436 inline QAccessibleTextInsertEvent(QAccessibleInterface *iface,
int position,
const QString &
text)
440 m_type = QAccessible::TextInserted;
443 ~QAccessibleTextInsertEvent();
448 int changePosition()
const {
457class Q_GUI_EXPORT QAccessibleTextRemoveEvent :
public QAccessibleTextCursorEvent
464 m_type = QAccessible::TextRemoved;
466 inline QAccessibleTextRemoveEvent(QAccessibleInterface *iface,
int position,
const QString &
text)
470 m_type = QAccessible::TextRemoved;
473 ~QAccessibleTextRemoveEvent();
478 int changePosition()
const {
487class Q_GUI_EXPORT QAccessibleTextUpdateEvent :
public QAccessibleTextCursorEvent
492 , m_position(
position), m_oldText(oldText), m_text(
text)
494 m_type = QAccessible::TextUpdated;
498 , m_position(
position), m_oldText(oldText), m_text(
text)
500 m_type = QAccessible::TextUpdated;
503 ~QAccessibleTextUpdateEvent();
511 int changePosition()
const {
521class Q_GUI_EXPORT QAccessibleValueChangeEvent :
public QAccessibleEvent
528 m_type = QAccessible::ValueChanged;
530 inline QAccessibleValueChangeEvent(QAccessibleInterface *iface,
const QVariant &
val)
534 m_type = QAccessible::ValueChanged;
537 ~QAccessibleValueChangeEvent();
546class Q_GUI_EXPORT QAccessibleTableModelChangeEvent :
public QAccessibleEvent
549 enum ModelChangeType {
558 inline QAccessibleTableModelChangeEvent(
QObject *
obj, ModelChangeType changeType)
560 , m_modelChangeType(changeType)
561 , m_firstRow(-1), m_firstColumn(-1), m_lastRow(-1), m_lastColumn(-1)
563 m_type = QAccessible::TableModelChanged;
565 inline QAccessibleTableModelChangeEvent(QAccessibleInterface *iface, ModelChangeType changeType)
567 , m_modelChangeType(changeType)
568 , m_firstRow(-1), m_firstColumn(-1), m_lastRow(-1), m_lastColumn(-1)
570 m_type = QAccessible::TableModelChanged;
573 ~QAccessibleTableModelChangeEvent();
575 void setModelChangeType(ModelChangeType changeType) { m_modelChangeType = changeType; }
576 ModelChangeType modelChangeType()
const {
return m_modelChangeType; }
578 void setFirstRow(
int row) { m_firstRow =
row; }
579 void setFirstColumn(
int col) { m_firstColumn = col; }
580 void setLastRow(
int row) { m_lastRow =
row; }
581 void setLastColumn(
int col) { m_lastColumn = col; }
582 int firstRow()
const {
return m_firstRow; }
583 int firstColumn()
const {
return m_firstColumn; }
584 int lastRow()
const {
return m_lastRow; }
585 int lastColumn()
const {
return m_lastColumn; }
588 ModelChangeType m_modelChangeType;
596#define QAccessibleInterface_iid "org.qt-project.Qt.QAccessibleInterface"
600Q_GUI_EXPORT
const char *qAccessibleRoleString(QAccessible::Role role);
601Q_GUI_EXPORT
const char *qAccessibleEventString(QAccessible::Event
event);
602Q_GUI_EXPORT
QString qAccessibleLocalizedActionDescription(
const QString &actionName);
604#ifndef QT_NO_DEBUG_STREAM
The QAbstractItemView class provides the basic functionality for item view classes.
The QAccessible class provides enums and static functions related to accessibility.
The QColor class provides colors based on RGB, HSV or CMYK values.
\inmodule QtCore\reentrant
\inmodule QtCore\reentrant
\macro QT_RESTRICTED_CAST_FROM_ASCII
\reentrant \inmodule QtGui
Combined button and popup list for selecting options.
constexpr QBindableInterface iface
static jboolean setSelection(JNIEnv *, jobject, jint start, jint end)
static jboolean selectAll(JNIEnv *, jobject)
#define Q_DECLARE_TR_FUNCTIONS(context)
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
#define Q_DECLARE_INTERFACE(IFace, IId)
GLint GLint GLint GLint GLint x
[0]
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLenum GLuint GLintptr offset
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei imageSize
GLenum GLenum GLsizei void GLsizei void * column
GLenum GLenum GLsizei void * row
GLenum GLenum GLsizei void * table
static qreal position(const QQuickItem *item, QQuickAnchors::Anchor anchorLine)
static bool match(const uchar *found, uint foundLen, const char *target, uint targetLen)
settings setValue("DataPump/bgcolor", color)
QItemSelection * selection
[0]
selection select(topLeft, bottomRight)
insertRed setText("insert red text")
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent