5#ifndef QACCESSIBLEWIDGETS_H
6#define QACCESSIBLEWIDGETS_H
19#include <QtWidgets/private/qtwidgetsglobal_p.h>
20#include <QtWidgets/qaccessiblewidget.h>
22#if QT_CONFIG(accessibility)
24#include <QtCore/QPointer>
36class QAbstractItemView;
38class QDockWidgetLayout;
45class QAccessibleTextWidget :
public QAccessibleWidgetV2,
46 public QAccessibleTextInterface,
47 public QAccessibleEditableTextInterface
50 QAccessibleTextWidget(QWidget *o, QAccessible::Role r = QAccessible::EditableText,
const QString &name = QString());
52 QAccessible::State state()
const override;
56 void selection(
int selectionIndex,
int *startOffset,
int *endOffset)
const override;
57 int selectionCount()
const override;
58 void addSelection(
int startOffset,
int endOffset) override;
59 void removeSelection(
int selectionIndex) override;
60 void setSelection(
int selectionIndex,
int startOffset,
int endOffset) override;
63 int cursorPosition()
const override;
64 void setCursorPosition(
int position) override;
67 QString text(
int startOffset,
int endOffset)
const override;
68 QString textBeforeOffset(
int offset, QAccessible::TextBoundaryType boundaryType,
69 int *startOffset,
int *endOffset)
const override;
70 QString textAfterOffset(
int offset, QAccessible::TextBoundaryType boundaryType,
71 int *startOffset,
int *endOffset)
const override;
72 QString textAtOffset(
int offset, QAccessible::TextBoundaryType boundaryType,
73 int *startOffset,
int *endOffset)
const override;
74 int characterCount()
const override;
77 QRect characterRect(
int offset)
const override;
78 int offsetAtPoint(
const QPoint &point)
const override;
80 QString attributes(
int offset,
int *startOffset,
int *endOffset)
const override;
83 void deleteText(
int startOffset,
int endOffset) override;
84 void insertText(
int offset,
const QString &text) override;
85 void replaceText(
int startOffset,
int endOffset,
const QString &text) override;
87 using QAccessibleWidgetV2::text;
90 QTextCursor textCursorForRange(
int startOffset,
int endOffset)
const;
91 virtual QPoint scrollBarPosition()
const;
93 virtual QTextCursor textCursor()
const = 0;
94 virtual void setTextCursor(
const QTextCursor &) = 0;
95 virtual QTextDocument *textDocument()
const = 0;
96 virtual QWidget *viewport()
const = 0;
99#if QT_CONFIG(textedit)
100class QAccessiblePlainTextEdit :
public QAccessibleTextWidget
103 explicit QAccessiblePlainTextEdit(QWidget *o);
105 QString text(QAccessible::Text t)
const override;
106 void setText(QAccessible::Text t,
const QString &text) override;
107 QAccessible::State state()
const override;
109 void *interface_cast(QAccessible::InterfaceType t) override;
112 void scrollToSubstring(
int startIndex,
int endIndex) override;
114 using QAccessibleTextWidget::text;
117 QPlainTextEdit *plainTextEdit()
const;
119 QPoint scrollBarPosition()
const override;
120 QTextCursor textCursor()
const override;
121 void setTextCursor(
const QTextCursor &textCursor) override;
122 QTextDocument *textDocument()
const override;
123 QWidget *viewport()
const override;
126class QAccessibleTextEdit :
public QAccessibleTextWidget
129 explicit QAccessibleTextEdit(QWidget *o);
131 QString text(QAccessible::Text t)
const override;
132 void setText(QAccessible::Text t,
const QString &text) override;
133 QAccessible::State state()
const override;
135 void *interface_cast(QAccessible::InterfaceType t) override;
138 void scrollToSubstring(
int startIndex,
int endIndex) override;
140 using QAccessibleTextWidget::text;
143 QTextEdit *textEdit()
const;
145 QPoint scrollBarPosition()
const override;
146 QTextCursor textCursor()
const override;
147 void setTextCursor(
const QTextCursor &textCursor) override;
148 QTextDocument *textDocument()
const override;
149 QWidget *viewport()
const override;
154class QAccessibleStackedWidget :
public QAccessibleWidgetV2
157 explicit QAccessibleStackedWidget(QWidget *widget);
159 QAccessibleInterface *childAt(
int x,
int y)
const override;
160 int childCount()
const override;
161 int indexOfChild(
const QAccessibleInterface *child)
const override;
162 QAccessibleInterface *child(
int index)
const override;
165 QStackedWidget *stackedWidget()
const;
168class QAccessibleToolBox :
public QAccessibleWidgetV2
171 explicit QAccessibleToolBox(QWidget *widget);
180 QToolBox *toolBox()
const;
183#if QT_CONFIG(mdiarea)
184class QAccessibleMdiArea :
public QAccessibleWidgetV2
187 explicit QAccessibleMdiArea(QWidget *widget);
189 int childCount()
const override;
190 QAccessibleInterface *child(
int index)
const override;
191 int indexOfChild(
const QAccessibleInterface *child)
const override;
194 QMdiArea *mdiArea()
const;
197class QAccessibleMdiSubWindow :
public QAccessibleWidgetV2
200 explicit QAccessibleMdiSubWindow(QWidget *widget);
202 QString text(QAccessible::Text textType)
const override;
203 void setText(QAccessible::Text textType,
const QString &text) override;
204 QAccessible::State state()
const override;
205 int childCount()
const override;
206 QAccessibleInterface *child(
int index)
const override;
207 int indexOfChild(
const QAccessibleInterface *child)
const override;
208 QRect rect()
const override;
211 QMdiSubWindow *mdiSubWindow()
const;
215#if QT_CONFIG(dialogbuttonbox)
216class QAccessibleDialogButtonBox :
public QAccessibleWidgetV2
219 explicit QAccessibleDialogButtonBox(QWidget *widget);
223#if QT_CONFIG(textbrowser) && !defined(QT_NO_CURSOR)
224class QAccessibleTextBrowser :
public QAccessibleTextEdit
227 explicit QAccessibleTextBrowser(QWidget *widget);
229 QAccessible::Role role()
const override;
233#if QT_CONFIG(calendarwidget)
234class QAccessibleCalendarWidget :
public QAccessibleWidgetV2
237 explicit QAccessibleCalendarWidget(QWidget *widget);
239 int childCount()
const override;
240 int indexOfChild(
const QAccessibleInterface *child)
const override;
242 QAccessibleInterface *child(
int index)
const override;
245 QCalendarWidget *calendarWidget()
const;
248 QAbstractItemView *calendarView()
const;
249 QWidget *navigationBar()
const;
253#if QT_CONFIG(dockwidget)
254class QAccessibleDockWidget:
public QAccessibleWidgetV2
257 explicit QAccessibleDockWidget(QWidget *widget);
258 QAccessibleInterface *child(
int index)
const override;
259 int indexOfChild(
const QAccessibleInterface *child)
const override;
260 int childCount()
const override;
261 QRect rect ()
const override;
262 QString text(QAccessible::Text t)
const override;
263 QAccessible::Role role()
const override;
265 QDockWidget *dockWidget()
const;
267 QDockWidgetLayout *dockWidgetLayout()
const;
272#if QT_CONFIG(mainwindow)
273class QAccessibleMainWindow :
public QAccessibleWidgetV2
276 explicit QAccessibleMainWindow(QWidget *widget);
278 QAccessibleInterface *child(
int index)
const override;
279 int childCount()
const override;
280 int indexOfChild(
const QAccessibleInterface *iface)
const override;
281 QAccessibleInterface *childAt(
int x,
int y)
const override;
282 QMainWindow *mainWindow()
const;
QT_REQUIRE_CONFIG(accessibility)