Make Accessibility public
There is no point in having QAccessible2, so merge it with the normal QAccessible. The header will be removed in a subsequent commit as it is still needed by declarative at this point in time. Change-Id: I1fc47d484d482f25387eba827bc5a373536b7a8b Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
This commit is contained in:
parent
580d816bb8
commit
b449791c35
@ -10,7 +10,6 @@ contains(QT_CONFIG, accessibility) {
|
|||||||
accessible/qplatformaccessibility.h
|
accessible/qplatformaccessibility.h
|
||||||
|
|
||||||
SOURCES += accessible/qaccessible.cpp \
|
SOURCES += accessible/qaccessible.cpp \
|
||||||
accessible/qaccessible2.cpp \
|
|
||||||
accessible/qaccessiblecache.cpp \
|
accessible/qaccessiblecache.cpp \
|
||||||
accessible/qaccessibleobject.cpp \
|
accessible/qaccessibleobject.cpp \
|
||||||
accessible/qaccessibleplugin.cpp \
|
accessible/qaccessibleplugin.cpp \
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -45,6 +45,7 @@
|
|||||||
#ifndef QACCESSIBLE_H
|
#ifndef QACCESSIBLE_H
|
||||||
#define QACCESSIBLE_H
|
#define QACCESSIBLE_H
|
||||||
|
|
||||||
|
#include <QtCore/qcoreapplication.h>
|
||||||
#include <QtCore/qdebug.h>
|
#include <QtCore/qdebug.h>
|
||||||
#include <QtCore/qglobal.h>
|
#include <QtCore/qglobal.h>
|
||||||
#include <QtCore/qobject.h>
|
#include <QtCore/qobject.h>
|
||||||
@ -372,10 +373,6 @@ private:
|
|||||||
static UpdateHandler updateHandler;
|
static UpdateHandler updateHandler;
|
||||||
static RootObjectHandler rootObjectHandler;
|
static RootObjectHandler rootObjectHandler;
|
||||||
|
|
||||||
/*! @internal
|
|
||||||
This class is purely a collection of enums and static functions,
|
|
||||||
it is not supposed to be instantiated.
|
|
||||||
*/
|
|
||||||
QAccessible() {}
|
QAccessible() {}
|
||||||
|
|
||||||
friend class QAccessibleCache;
|
friend class QAccessibleCache;
|
||||||
@ -393,6 +390,7 @@ class QAccessibleActionInterface;
|
|||||||
class QAccessibleImageInterface;
|
class QAccessibleImageInterface;
|
||||||
class QAccessibleTableInterface;
|
class QAccessibleTableInterface;
|
||||||
class QAccessibleTableCellInterface;
|
class QAccessibleTableCellInterface;
|
||||||
|
class QAccessibleTableModelChangeEvent;
|
||||||
|
|
||||||
class Q_GUI_EXPORT QAccessibleInterface
|
class Q_GUI_EXPORT QAccessibleInterface
|
||||||
{
|
{
|
||||||
@ -457,6 +455,144 @@ protected:
|
|||||||
friend class QAccessibleCache;
|
friend class QAccessibleCache;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class Q_GUI_EXPORT QAccessibleTextInterface
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual ~QAccessibleTextInterface() {}
|
||||||
|
// selection
|
||||||
|
virtual void selection(int selectionIndex, int *startOffset, int *endOffset) const = 0;
|
||||||
|
virtual int selectionCount() const = 0;
|
||||||
|
virtual void addSelection(int startOffset, int endOffset) = 0;
|
||||||
|
virtual void removeSelection(int selectionIndex) = 0;
|
||||||
|
virtual void setSelection(int selectionIndex, int startOffset, int endOffset) = 0;
|
||||||
|
|
||||||
|
// cursor
|
||||||
|
virtual int cursorPosition() const = 0;
|
||||||
|
virtual void setCursorPosition(int position) = 0;
|
||||||
|
|
||||||
|
// text
|
||||||
|
virtual QString text(int startOffset, int endOffset) const = 0;
|
||||||
|
virtual QString textBeforeOffset(int offset, QAccessible::TextBoundaryType boundaryType,
|
||||||
|
int *startOffset, int *endOffset) const;
|
||||||
|
virtual QString textAfterOffset(int offset, QAccessible::TextBoundaryType boundaryType,
|
||||||
|
int *startOffset, int *endOffset) const;
|
||||||
|
virtual QString textAtOffset(int offset, QAccessible::TextBoundaryType boundaryType,
|
||||||
|
int *startOffset, int *endOffset) const;
|
||||||
|
virtual int characterCount() const = 0;
|
||||||
|
|
||||||
|
// character <-> geometry
|
||||||
|
virtual QRect characterRect(int offset) const = 0;
|
||||||
|
virtual int offsetAtPoint(const QPoint &point) const = 0;
|
||||||
|
|
||||||
|
virtual void scrollToSubstring(int startIndex, int endIndex) = 0;
|
||||||
|
virtual QString attributes(int offset, int *startOffset, int *endOffset) const = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
class Q_GUI_EXPORT QAccessibleEditableTextInterface
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual ~QAccessibleEditableTextInterface() {}
|
||||||
|
|
||||||
|
virtual void deleteText(int startOffset, int endOffset) = 0;
|
||||||
|
virtual void insertText(int offset, const QString &text) = 0;
|
||||||
|
virtual void replaceText(int startOffset, int endOffset, const QString &text) = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
class Q_GUI_EXPORT QAccessibleValueInterface
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
virtual ~QAccessibleValueInterface() {}
|
||||||
|
|
||||||
|
virtual QVariant currentValue() const = 0;
|
||||||
|
virtual void setCurrentValue(const QVariant &value) = 0;
|
||||||
|
virtual QVariant maximumValue() const = 0;
|
||||||
|
virtual QVariant minimumValue() const = 0;
|
||||||
|
virtual QVariant minimumStepSize() const = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
class Q_GUI_EXPORT QAccessibleTableCellInterface
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual ~QAccessibleTableCellInterface() {}
|
||||||
|
|
||||||
|
virtual bool isSelected() const = 0;
|
||||||
|
|
||||||
|
virtual QList<QAccessibleInterface*> columnHeaderCells() const = 0;
|
||||||
|
virtual QList<QAccessibleInterface*> rowHeaderCells() const = 0;
|
||||||
|
virtual int columnIndex() const = 0;
|
||||||
|
virtual int rowIndex() const = 0;
|
||||||
|
virtual int columnExtent() const = 0;
|
||||||
|
virtual int rowExtent() const = 0;
|
||||||
|
|
||||||
|
virtual QAccessibleInterface* table() const = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
class Q_GUI_EXPORT QAccessibleTableInterface
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual ~QAccessibleTableInterface() {}
|
||||||
|
|
||||||
|
virtual QAccessibleInterface *caption() const = 0;
|
||||||
|
virtual QAccessibleInterface *summary() const = 0;
|
||||||
|
|
||||||
|
virtual QAccessibleInterface *cellAt (int row, int column) const = 0;
|
||||||
|
virtual int selectedCellCount() const = 0;
|
||||||
|
virtual QList<QAccessibleInterface*> selectedCells() const = 0;
|
||||||
|
|
||||||
|
virtual QString columnDescription(int column) const = 0;
|
||||||
|
virtual QString rowDescription(int row) const = 0;
|
||||||
|
virtual int selectedColumnCount() const = 0;
|
||||||
|
virtual int selectedRowCount() const = 0;
|
||||||
|
virtual int columnCount() const = 0;
|
||||||
|
virtual int rowCount() const = 0;
|
||||||
|
virtual QList<int> selectedColumns() const = 0;
|
||||||
|
virtual QList<int> selectedRows() const = 0;
|
||||||
|
virtual bool isColumnSelected(int column) const = 0;
|
||||||
|
virtual bool isRowSelected(int row) const = 0;
|
||||||
|
virtual bool selectRow(int row) = 0;
|
||||||
|
virtual bool selectColumn(int column) = 0;
|
||||||
|
virtual bool unselectRow(int row) = 0;
|
||||||
|
virtual bool unselectColumn(int column) = 0;
|
||||||
|
|
||||||
|
virtual void modelChange(QAccessibleTableModelChangeEvent *event) = 0;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
friend class QAbstractItemView;
|
||||||
|
friend class QAbstractItemViewPrivate;
|
||||||
|
};
|
||||||
|
|
||||||
|
class Q_GUI_EXPORT QAccessibleActionInterface
|
||||||
|
{
|
||||||
|
Q_DECLARE_TR_FUNCTIONS(QAccessibleActionInterface)
|
||||||
|
public:
|
||||||
|
virtual ~QAccessibleActionInterface() {}
|
||||||
|
|
||||||
|
virtual QStringList actionNames() const = 0;
|
||||||
|
virtual QString localizedActionName(const QString &name) const;
|
||||||
|
virtual QString localizedActionDescription(const QString &name) const;
|
||||||
|
virtual void doAction(const QString &actionName) = 0;
|
||||||
|
virtual QStringList keyBindingsForAction(const QString &actionName) const = 0;
|
||||||
|
|
||||||
|
static const QString &pressAction();
|
||||||
|
static const QString &increaseAction();
|
||||||
|
static const QString &decreaseAction();
|
||||||
|
static const QString &showMenuAction();
|
||||||
|
static const QString &setFocusAction();
|
||||||
|
static const QString &toggleAction();
|
||||||
|
};
|
||||||
|
|
||||||
|
class Q_GUI_EXPORT QAccessibleImageInterface
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual ~QAccessibleImageInterface() {}
|
||||||
|
|
||||||
|
virtual QString imageDescription() const = 0;
|
||||||
|
virtual QSize imageSize() const = 0;
|
||||||
|
virtual QRect imagePosition() const = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
class Q_GUI_EXPORT QAccessibleEvent
|
class Q_GUI_EXPORT QAccessibleEvent
|
||||||
{
|
{
|
||||||
Q_DISABLE_COPY(QAccessibleEvent)
|
Q_DISABLE_COPY(QAccessibleEvent)
|
||||||
|
@ -1,684 +0,0 @@
|
|||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
|
|
||||||
** Contact: http://www.qt-project.org/legal
|
|
||||||
**
|
|
||||||
** This file is part of the QtGui module of the Qt Toolkit.
|
|
||||||
**
|
|
||||||
** $QT_BEGIN_LICENSE:LGPL$
|
|
||||||
** Commercial License Usage
|
|
||||||
** Licensees holding valid commercial Qt licenses may use this file in
|
|
||||||
** accordance with the commercial license agreement provided with the
|
|
||||||
** Software or, alternatively, in accordance with the terms contained in
|
|
||||||
** a written agreement between you and Digia. For licensing terms and
|
|
||||||
** conditions see http://qt.digia.com/licensing. For further information
|
|
||||||
** use the contact form at http://qt.digia.com/contact-us.
|
|
||||||
**
|
|
||||||
** GNU Lesser General Public License Usage
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
|
||||||
** General Public License version 2.1 as published by the Free Software
|
|
||||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
|
||||||
** packaging of this file. Please review the following information to
|
|
||||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
|
||||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
|
||||||
**
|
|
||||||
** In addition, as a special exception, Digia gives you certain additional
|
|
||||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
|
||||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
|
||||||
**
|
|
||||||
** GNU General Public License Usage
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU
|
|
||||||
** General Public License version 3.0 as published by the Free Software
|
|
||||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
|
||||||
** packaging of this file. Please review the following information to
|
|
||||||
** ensure the GNU General Public License version 3.0 requirements will be
|
|
||||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
|
||||||
**
|
|
||||||
**
|
|
||||||
** $QT_END_LICENSE$
|
|
||||||
**
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#include "qaccessible2_p.h"
|
|
||||||
#include <QtGui/QGuiApplication>
|
|
||||||
#include "qclipboard.h"
|
|
||||||
#include "qtextboundaryfinder.h"
|
|
||||||
|
|
||||||
#ifndef QT_NO_ACCESSIBILITY
|
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\class QAccessibleTextInterface
|
|
||||||
\internal
|
|
||||||
\inmodule QtGui
|
|
||||||
|
|
||||||
\ingroup accessibility
|
|
||||||
|
|
||||||
\brief The QAccessibleTextInterface class implements support for text handling.
|
|
||||||
|
|
||||||
This interface corresponds to the IAccessibleText interface.
|
|
||||||
It should be implemented for widgets that display more text than a plain label.
|
|
||||||
Labels should be represented by only \l QAccessibleInterface
|
|
||||||
and return their text as name (\l QAccessibleInterface::text() with \l QAccessible::Name as type).
|
|
||||||
The QAccessibleTextInterface is typically for text that a screen reader
|
|
||||||
might want to read line by line, and for widgets that support text selection and input.
|
|
||||||
This interface is, for example, implemented for QLineEdit.
|
|
||||||
|
|
||||||
Editable text objects should also implement \l QAccessibleEditableTextInterface.
|
|
||||||
\l{IAccessible2 Specification}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn QAccessibleTextInterface::~QAccessibleTextInterface()
|
|
||||||
Destructor.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn void QAccessibleTextInterface::addSelection(int startOffset, int endOffset)
|
|
||||||
Select the text from \a startOffset to \a endOffset.
|
|
||||||
The \a startOffset is the first character that will be selected.
|
|
||||||
The \a endOffset is the first character that will not be selected.
|
|
||||||
|
|
||||||
When the object supports multiple selections (e.g. in a word processor),
|
|
||||||
this adds a new selection, otherwise it replaces the previous selection.
|
|
||||||
|
|
||||||
The selection will be \a endOffset - \a startOffset characters long.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn QString QAccessibleTextInterface::attributes(int offset, int *startOffset, int *endOffset) const
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn int QAccessibleTextInterface::cursorPosition() const
|
|
||||||
|
|
||||||
Returns the current cursor position.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn QRect QAccessibleTextInterface::characterRect(int offset) const
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn int QAccessibleTextInterface::selectionCount() const
|
|
||||||
|
|
||||||
Returns the number of selections in this text.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn int QAccessibleTextInterface::offsetAtPoint(const QPoint &point) const
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn void QAccessibleTextInterface::selection(int selectionIndex, int *startOffset, int *endOffset) const
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn QString QAccessibleTextInterface::text(int startOffset, int endOffset) const
|
|
||||||
|
|
||||||
Returns the text from \a startOffset to \a endOffset.
|
|
||||||
The \a startOffset is the first character that will be returned.
|
|
||||||
The \a endOffset is the first character that will not be returned.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns the text item of type \a boundaryType that is close to offset \a offset
|
|
||||||
and sets \a startOffset and \a endOffset values to the start and end positions
|
|
||||||
of that item; returns an empty string if there is no such an item.
|
|
||||||
Sets \a startOffset and \a endOffset values to -1 on error.
|
|
||||||
*/
|
|
||||||
QString QAccessibleTextInterface::textBeforeOffset(int offset, QAccessible::TextBoundaryType boundaryType,
|
|
||||||
int *startOffset, int *endOffset) const
|
|
||||||
{
|
|
||||||
const QString txt = text(0, characterCount());
|
|
||||||
|
|
||||||
if (txt.isEmpty() || offset < 0 || offset > txt.length()) {
|
|
||||||
*startOffset = *endOffset = -1;
|
|
||||||
return QString();
|
|
||||||
}
|
|
||||||
if (offset == 0) {
|
|
||||||
*startOffset = *endOffset = offset;
|
|
||||||
return QString();
|
|
||||||
}
|
|
||||||
|
|
||||||
QTextBoundaryFinder::BoundaryType type;
|
|
||||||
switch (boundaryType) {
|
|
||||||
case QAccessible::CharBoundary:
|
|
||||||
type = QTextBoundaryFinder::Grapheme;
|
|
||||||
break;
|
|
||||||
case QAccessible::WordBoundary:
|
|
||||||
type = QTextBoundaryFinder::Word;
|
|
||||||
break;
|
|
||||||
case QAccessible::SentenceBoundary:
|
|
||||||
type = QTextBoundaryFinder::Sentence;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
// in any other case return the whole line
|
|
||||||
*startOffset = 0;
|
|
||||||
*endOffset = txt.length();
|
|
||||||
return txt;
|
|
||||||
}
|
|
||||||
|
|
||||||
// keep behavior in sync with QTextCursor::movePosition()!
|
|
||||||
|
|
||||||
QTextBoundaryFinder boundary(type, txt);
|
|
||||||
boundary.setPosition(offset);
|
|
||||||
|
|
||||||
do {
|
|
||||||
if ((boundary.boundaryReasons() & (QTextBoundaryFinder::StartOfItem | QTextBoundaryFinder::EndOfItem)))
|
|
||||||
break;
|
|
||||||
} while (boundary.toPreviousBoundary() > 0);
|
|
||||||
Q_ASSERT(boundary.position() >= 0);
|
|
||||||
*endOffset = boundary.position();
|
|
||||||
|
|
||||||
while (boundary.toPreviousBoundary() > 0) {
|
|
||||||
if ((boundary.boundaryReasons() & (QTextBoundaryFinder::StartOfItem | QTextBoundaryFinder::EndOfItem)))
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
Q_ASSERT(boundary.position() >= 0);
|
|
||||||
*startOffset = boundary.position();
|
|
||||||
|
|
||||||
return txt.mid(*startOffset, *endOffset - *startOffset);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns the text item of type \a boundaryType that is right after offset \a offset
|
|
||||||
and sets \a startOffset and \a endOffset values to the start and end positions
|
|
||||||
of that item; returns an empty string if there is no such an item.
|
|
||||||
Sets \a startOffset and \a endOffset values to -1 on error.
|
|
||||||
*/
|
|
||||||
QString QAccessibleTextInterface::textAfterOffset(int offset, QAccessible::TextBoundaryType boundaryType,
|
|
||||||
int *startOffset, int *endOffset) const
|
|
||||||
{
|
|
||||||
const QString txt = text(0, characterCount());
|
|
||||||
|
|
||||||
if (txt.isEmpty() || offset < 0 || offset > txt.length()) {
|
|
||||||
*startOffset = *endOffset = -1;
|
|
||||||
return QString();
|
|
||||||
}
|
|
||||||
if (offset == txt.length()) {
|
|
||||||
*startOffset = *endOffset = offset;
|
|
||||||
return QString();
|
|
||||||
}
|
|
||||||
|
|
||||||
QTextBoundaryFinder::BoundaryType type;
|
|
||||||
switch (boundaryType) {
|
|
||||||
case QAccessible::CharBoundary:
|
|
||||||
type = QTextBoundaryFinder::Grapheme;
|
|
||||||
break;
|
|
||||||
case QAccessible::WordBoundary:
|
|
||||||
type = QTextBoundaryFinder::Word;
|
|
||||||
break;
|
|
||||||
case QAccessible::SentenceBoundary:
|
|
||||||
type = QTextBoundaryFinder::Sentence;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
// in any other case return the whole line
|
|
||||||
*startOffset = 0;
|
|
||||||
*endOffset = txt.length();
|
|
||||||
return txt;
|
|
||||||
}
|
|
||||||
|
|
||||||
// keep behavior in sync with QTextCursor::movePosition()!
|
|
||||||
|
|
||||||
QTextBoundaryFinder boundary(type, txt);
|
|
||||||
boundary.setPosition(offset);
|
|
||||||
|
|
||||||
while (boundary.toNextBoundary() < txt.length()) {
|
|
||||||
if ((boundary.boundaryReasons() & (QTextBoundaryFinder::StartOfItem | QTextBoundaryFinder::EndOfItem)))
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
Q_ASSERT(boundary.position() <= txt.length());
|
|
||||||
*startOffset = boundary.position();
|
|
||||||
|
|
||||||
while (boundary.toNextBoundary() < txt.length()) {
|
|
||||||
if ((boundary.boundaryReasons() & (QTextBoundaryFinder::StartOfItem | QTextBoundaryFinder::EndOfItem)))
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
Q_ASSERT(boundary.position() <= txt.length());
|
|
||||||
*endOffset = boundary.position();
|
|
||||||
|
|
||||||
return txt.mid(*startOffset, *endOffset - *startOffset);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns the text item of type \a boundaryType at offset \a offset
|
|
||||||
and sets \a startOffset and \a endOffset values to the start and end positions
|
|
||||||
of that item; returns an empty string if there is no such an item.
|
|
||||||
Sets \a startOffset and \a endOffset values to -1 on error.
|
|
||||||
*/
|
|
||||||
QString QAccessibleTextInterface::textAtOffset(int offset, QAccessible::TextBoundaryType boundaryType,
|
|
||||||
int *startOffset, int *endOffset) const
|
|
||||||
{
|
|
||||||
const QString txt = text(0, characterCount());
|
|
||||||
|
|
||||||
if (txt.isEmpty() || offset < 0 || offset > txt.length()) {
|
|
||||||
*startOffset = *endOffset = -1;
|
|
||||||
return QString();
|
|
||||||
}
|
|
||||||
if (offset == txt.length()) {
|
|
||||||
*startOffset = *endOffset = offset;
|
|
||||||
return QString();
|
|
||||||
}
|
|
||||||
|
|
||||||
QTextBoundaryFinder::BoundaryType type;
|
|
||||||
switch (boundaryType) {
|
|
||||||
case QAccessible::CharBoundary:
|
|
||||||
type = QTextBoundaryFinder::Grapheme;
|
|
||||||
break;
|
|
||||||
case QAccessible::WordBoundary:
|
|
||||||
type = QTextBoundaryFinder::Word;
|
|
||||||
break;
|
|
||||||
case QAccessible::SentenceBoundary:
|
|
||||||
type = QTextBoundaryFinder::Sentence;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
// in any other case return the whole line
|
|
||||||
*startOffset = 0;
|
|
||||||
*endOffset = txt.length();
|
|
||||||
return txt;
|
|
||||||
}
|
|
||||||
|
|
||||||
// keep behavior in sync with QTextCursor::movePosition()!
|
|
||||||
|
|
||||||
QTextBoundaryFinder boundary(type, txt);
|
|
||||||
boundary.setPosition(offset);
|
|
||||||
|
|
||||||
do {
|
|
||||||
if ((boundary.boundaryReasons() & (QTextBoundaryFinder::StartOfItem | QTextBoundaryFinder::EndOfItem)))
|
|
||||||
break;
|
|
||||||
} while (boundary.toPreviousBoundary() > 0);
|
|
||||||
Q_ASSERT(boundary.position() >= 0);
|
|
||||||
*startOffset = boundary.position();
|
|
||||||
|
|
||||||
while (boundary.toNextBoundary() < txt.length()) {
|
|
||||||
if ((boundary.boundaryReasons() & (QTextBoundaryFinder::StartOfItem | QTextBoundaryFinder::EndOfItem)))
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
Q_ASSERT(boundary.position() <= txt.length());
|
|
||||||
*endOffset = boundary.position();
|
|
||||||
|
|
||||||
return txt.mid(*startOffset, *endOffset - *startOffset);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn void QAccessibleTextInterface::removeSelection(int selectionIndex)
|
|
||||||
|
|
||||||
Clears the selection with \a index selectionIndex.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn void QAccessibleTextInterface::setCursorPosition(int position)
|
|
||||||
|
|
||||||
Moves the cursor to \a position.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn void QAccessibleTextInterface::setSelection(int selectionIndex, int startOffset, int endOffset)
|
|
||||||
|
|
||||||
Set the selection \a selectionIndex to the range from \a startOffset to \a endOffset.
|
|
||||||
|
|
||||||
\sa addSelection(), removeSelection()
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn int QAccessibleTextInterface::characterCount() const
|
|
||||||
|
|
||||||
Returns the length of the text (total size including spaces).
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn void QAccessibleTextInterface::scrollToSubstring(int startIndex, int endIndex)
|
|
||||||
|
|
||||||
Ensures that the text between \a startIndex and \a endIndex is visible.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\class QAccessibleEditableTextInterface
|
|
||||||
\ingroup accessibility
|
|
||||||
\inmodule QtGui
|
|
||||||
\internal
|
|
||||||
|
|
||||||
\brief The QAccessibleEditableTextInterface class implements support for objects with editable text.
|
|
||||||
|
|
||||||
When implementing this interface you will almost certainly also want to implement \l QAccessibleTextInterface.
|
|
||||||
|
|
||||||
\sa QAccessibleInterface
|
|
||||||
|
|
||||||
\l{IAccessible2 Specification}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn QAccessibleEditableTextInterface::~QAccessibleEditableTextInterface()
|
|
||||||
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn void QAccessibleEditableTextInterface::deleteText(int startOffset, int endOffset)
|
|
||||||
|
|
||||||
Deletes the text from \a startOffset to \a endOffset.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn void QAccessibleEditableTextInterface::insertText(int offset, const QString &text)
|
|
||||||
|
|
||||||
Inserts \a text at position \a offset.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn void QAccessibleEditableTextInterface::replaceText(int startOffset, int endOffset, const QString &text)
|
|
||||||
|
|
||||||
Removes the text from \a startOffset to \a endOffset and instead inserts \a text.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\class QAccessibleValueInterface
|
|
||||||
\inmodule QtGui
|
|
||||||
\ingroup accessibility
|
|
||||||
\internal
|
|
||||||
|
|
||||||
\brief The QAccessibleValueInterface class implements support for objects that manipulate a value.
|
|
||||||
|
|
||||||
This interface should be implemented by accessible objects that represent a value.
|
|
||||||
Examples are spinner, slider, dial and scroll bar.
|
|
||||||
|
|
||||||
Instead of forcing the user to deal with the individual parts of the widgets, this interface
|
|
||||||
gives an easier approach to the kind of widget it represents.
|
|
||||||
|
|
||||||
Usually this interface is implemented by classes that also implement \l QAccessibleInterface.
|
|
||||||
|
|
||||||
\l{IAccessible2 Specification}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn QAccessibleValueInterface::~QAccessibleValueInterface()
|
|
||||||
Destructor.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn QVariant QAccessibleValueInterface::currentValue() const
|
|
||||||
|
|
||||||
Returns the current value of the widget. This is usually a double or int.
|
|
||||||
\sa setCurrentValue()
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn void QAccessibleValueInterface::setCurrentValue(const QVariant &value)
|
|
||||||
|
|
||||||
Sets the \a value. If the desired \a value is out of the range of permissible values,
|
|
||||||
this call will be ignored.
|
|
||||||
|
|
||||||
\sa currentValue(), minimumValue(), maximumValue()
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn QVariant QAccessibleValueInterface::maximumValue() const
|
|
||||||
|
|
||||||
Returns the maximum value this object accepts.
|
|
||||||
\sa minimumValue(), currentValue()
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn QVariant QAccessibleValueInterface::minimumValue() const
|
|
||||||
|
|
||||||
Returns the minimum value this object accepts.
|
|
||||||
\sa maximumValue(), currentValue()
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn QVariant QAccessibleValueInterface::minimumStepSize() const
|
|
||||||
|
|
||||||
Returns the minimum step size for the accessible.
|
|
||||||
This is the smalles increment that makes sense when changing the value.
|
|
||||||
When programatically changing the value it should always be a multiple
|
|
||||||
of the minimum step size.
|
|
||||||
|
|
||||||
Some tools use this value even when the setCurrentValue does not
|
|
||||||
perform any action. Progress bars for example are read-only but
|
|
||||||
should return their range divided by 100.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\class QAccessibleImageInterface
|
|
||||||
\inmodule QtGui
|
|
||||||
\ingroup accessibility
|
|
||||||
\internal
|
|
||||||
\preliminary
|
|
||||||
|
|
||||||
\brief The QAccessibleImageInterface class implements support for
|
|
||||||
the IAccessibleImage interface.
|
|
||||||
|
|
||||||
\l{IAccessible2 Specification}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\class QAccessibleTableCellInterface
|
|
||||||
\inmodule QtGui
|
|
||||||
\ingroup accessibility
|
|
||||||
\internal
|
|
||||||
|
|
||||||
\brief The QAccessibleTableCellInterface class implements support for
|
|
||||||
the IAccessibleTable2 Cell interface.
|
|
||||||
|
|
||||||
\l{IAccessible2 Specification}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\class QAccessibleTableInterface
|
|
||||||
\ingroup accessibility
|
|
||||||
\internal
|
|
||||||
|
|
||||||
\brief The QAccessibleTableInterface class implements support for
|
|
||||||
the IAccessibleTable2 interface.
|
|
||||||
|
|
||||||
\l{IAccessible2 Specification}
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\class QAccessibleActionInterface
|
|
||||||
\ingroup accessibility
|
|
||||||
\internal
|
|
||||||
|
|
||||||
\brief The QAccessibleActionInterface class implements support for
|
|
||||||
invocable actions in the interface.
|
|
||||||
|
|
||||||
Accessible objects should implement the action interface if they support user interaction.
|
|
||||||
Usually this interface is implemented by classes that also implement \l QAccessibleInterface.
|
|
||||||
|
|
||||||
The supported actions should use the predefined actions offered in this class unless they do not
|
|
||||||
fit a predefined action. In that case a custom action can be added.
|
|
||||||
|
|
||||||
When subclassing QAccessibleActionInterface you need to provide a list of actionNames which
|
|
||||||
is the primary means to discover the available actions. Action names are never localized.
|
|
||||||
In order to present actions to the user there are two functions that need to return localized versions
|
|
||||||
of the name and give a description of the action. For the predefined action names use
|
|
||||||
\l QAccessibleActionInterface::localizedActionName() and \l QAccessibleActionInterface::localizedActionDescription()
|
|
||||||
to return their localized counterparts.
|
|
||||||
|
|
||||||
In general you should use one of the predefined action names, unless describing an action that does not fit these:
|
|
||||||
\table
|
|
||||||
\header \li Action name \li Description
|
|
||||||
\row \li \l toggleAction() \li toggles the item (checkbox, radio button, switch, ...)
|
|
||||||
\row \li \l decreaseAction() \li decrease the value of the accessible (e.g. spinbox)
|
|
||||||
\row \li \l increaseAction() \li increase the value of the accessible (e.g. spinbox)
|
|
||||||
\row \li \l pressAction() \li press or click or activate the accessible (should correspont to clicking the object with the mouse)
|
|
||||||
\row \li \l setFocusAction() \li set the focus to this accessible
|
|
||||||
\row \li \l showMenuAction() \li show a context menu, corresponds to right-clicks
|
|
||||||
\endtable
|
|
||||||
|
|
||||||
In order to invoke the action, \l doAction() is called with an action name.
|
|
||||||
|
|
||||||
Most widgets will simply implement \l pressAction(). This is what happens when the widget is activated by
|
|
||||||
being clicked, space pressed or similar.
|
|
||||||
|
|
||||||
\l{IAccessible2 Specification}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn QStringList QAccessibleActionInterface::actionNames() const
|
|
||||||
|
|
||||||
Returns the list of actions supported by this accessible object.
|
|
||||||
The actions returned should be in preferred order,
|
|
||||||
i.e. the action that the user most likely wants to trigger should be returned first,
|
|
||||||
while the least likely action should be returned last.
|
|
||||||
|
|
||||||
The list does only contain actions that can be invoked.
|
|
||||||
It won't return disabled actions, or actions associated with disabled UI controls.
|
|
||||||
|
|
||||||
The list can be empty.
|
|
||||||
|
|
||||||
Note that this list is not localized. For a localized representation re-implement \l localizedActionName()
|
|
||||||
and \l localizedActionDescription()
|
|
||||||
|
|
||||||
\sa doAction(), localizedActionName(), localizedActionDescription()
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn QString QAccessibleActionInterface::localizedActionName(const QString &actionName) const
|
|
||||||
|
|
||||||
Returns a localized action name of \a actionName.
|
|
||||||
|
|
||||||
For custom actions this function has to be re-implemented.
|
|
||||||
When using one of the default names, you can call this function in QAccessibleActionInterface
|
|
||||||
to get the localized string.
|
|
||||||
|
|
||||||
\sa actionNames(), localizedActionDescription()
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn QString QAccessibleActionInterface::localizedActionDescription(const QString &actionName) const
|
|
||||||
|
|
||||||
Returns a localized action description of the action \a actionName.
|
|
||||||
|
|
||||||
When using one of the default names, you can call this function in QAccessibleActionInterface
|
|
||||||
to get the localized string.
|
|
||||||
|
|
||||||
\sa actionNames(), localizedActionName()
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn void QAccessibleActionInterface::doAction(const QString &actionName)
|
|
||||||
|
|
||||||
Invokes the action specified by \a actionName.
|
|
||||||
Note that \a actionName is the non-localized name as returned by \l actionNames()
|
|
||||||
This function is usually implemented by calling the same functions
|
|
||||||
that other user interaction, such as clicking the object, would trigger.
|
|
||||||
|
|
||||||
\sa actionNames()
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn QStringList QAccessibleActionInterface::keyBindingsForAction(const QString &actionName) const
|
|
||||||
|
|
||||||
Returns a list of the keyboard shortcuts available for invoking the action named \a actionName.
|
|
||||||
|
|
||||||
This is important to let users learn alternative ways of using the application by emphasizing the keyboard.
|
|
||||||
|
|
||||||
\sa actionNames()
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
struct QAccessibleActionStrings
|
|
||||||
{
|
|
||||||
QAccessibleActionStrings() :
|
|
||||||
pressAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Press"))),
|
|
||||||
increaseAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Increase"))),
|
|
||||||
decreaseAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Decrease"))),
|
|
||||||
showMenuAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "ShowMenu"))),
|
|
||||||
setFocusAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "SetFocus"))),
|
|
||||||
toggleAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Toggle"))) {}
|
|
||||||
|
|
||||||
const QString pressAction;
|
|
||||||
const QString increaseAction;
|
|
||||||
const QString decreaseAction;
|
|
||||||
const QString showMenuAction;
|
|
||||||
const QString setFocusAction;
|
|
||||||
const QString toggleAction;
|
|
||||||
};
|
|
||||||
|
|
||||||
Q_GLOBAL_STATIC(QAccessibleActionStrings, accessibleActionStrings)
|
|
||||||
|
|
||||||
QString QAccessibleActionInterface::localizedActionName(const QString &actionName) const
|
|
||||||
{
|
|
||||||
return QAccessibleActionInterface::tr(qPrintable(actionName));
|
|
||||||
}
|
|
||||||
|
|
||||||
QString QAccessibleActionInterface::localizedActionDescription(const QString &actionName) const
|
|
||||||
{
|
|
||||||
const QAccessibleActionStrings *strings = accessibleActionStrings();
|
|
||||||
if (actionName == strings->pressAction)
|
|
||||||
return tr("Triggers the action");
|
|
||||||
else if (actionName == strings->increaseAction)
|
|
||||||
return tr("Increase the value");
|
|
||||||
else if (actionName == strings->decreaseAction)
|
|
||||||
return tr("Decrease the value");
|
|
||||||
else if (actionName == strings->showMenuAction)
|
|
||||||
return tr("Shows the menu");
|
|
||||||
else if (actionName == strings->setFocusAction)
|
|
||||||
return tr("Sets the focus");
|
|
||||||
else if (actionName == strings->toggleAction)
|
|
||||||
return tr("Toggles the state");
|
|
||||||
|
|
||||||
return QString();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns the name of the press default action.
|
|
||||||
\sa actionNames(), localizedActionName()
|
|
||||||
*/
|
|
||||||
const QString &QAccessibleActionInterface::pressAction()
|
|
||||||
{
|
|
||||||
return accessibleActionStrings()->pressAction;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns the name of the increase default action.
|
|
||||||
\sa actionNames(), localizedActionName()
|
|
||||||
*/
|
|
||||||
const QString &QAccessibleActionInterface::increaseAction()
|
|
||||||
{
|
|
||||||
return accessibleActionStrings()->increaseAction;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns the name of the decrease default action.
|
|
||||||
\sa actionNames(), localizedActionName()
|
|
||||||
*/
|
|
||||||
const QString &QAccessibleActionInterface::decreaseAction()
|
|
||||||
{
|
|
||||||
return accessibleActionStrings()->decreaseAction;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns the name of the show menu default action.
|
|
||||||
\sa actionNames(), localizedActionName()
|
|
||||||
*/
|
|
||||||
const QString &QAccessibleActionInterface::showMenuAction()
|
|
||||||
{
|
|
||||||
return accessibleActionStrings()->showMenuAction;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns the name of the set focus default action.
|
|
||||||
\sa actionNames(), localizedActionName()
|
|
||||||
*/
|
|
||||||
const QString &QAccessibleActionInterface::setFocusAction()
|
|
||||||
{
|
|
||||||
return accessibleActionStrings()->setFocusAction;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns the name of the toggle default action.
|
|
||||||
\sa actionNames(), localizedActionName()
|
|
||||||
*/
|
|
||||||
const QString &QAccessibleActionInterface::toggleAction()
|
|
||||||
{
|
|
||||||
return accessibleActionStrings()->toggleAction;
|
|
||||||
}
|
|
||||||
|
|
||||||
QT_END_NAMESPACE
|
|
||||||
|
|
||||||
#endif // QT_NO_ACCESSIBILITY
|
|
@ -42,178 +42,4 @@
|
|||||||
#ifndef QACCESSIBLE2_H
|
#ifndef QACCESSIBLE2_H
|
||||||
#define QACCESSIBLE2_H
|
#define QACCESSIBLE2_H
|
||||||
|
|
||||||
#include <QtGui/qaccessible.h>
|
|
||||||
#include <QtCore/qcoreapplication.h>
|
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef QT_NO_ACCESSIBILITY
|
|
||||||
|
|
||||||
class Q_GUI_EXPORT QAccessibleTextInterface
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual ~QAccessibleTextInterface() {}
|
|
||||||
// selection
|
|
||||||
virtual void selection(int selectionIndex, int *startOffset, int *endOffset) const = 0;
|
|
||||||
virtual int selectionCount() const = 0;
|
|
||||||
virtual void addSelection(int startOffset, int endOffset) = 0;
|
|
||||||
virtual void removeSelection(int selectionIndex) = 0;
|
|
||||||
virtual void setSelection(int selectionIndex, int startOffset, int endOffset) = 0;
|
|
||||||
|
|
||||||
// cursor
|
|
||||||
virtual int cursorPosition() const = 0;
|
|
||||||
virtual void setCursorPosition(int position) = 0;
|
|
||||||
|
|
||||||
// text
|
|
||||||
virtual QString text(int startOffset, int endOffset) const = 0;
|
|
||||||
virtual QString textBeforeOffset(int offset, QAccessible::TextBoundaryType boundaryType,
|
|
||||||
int *startOffset, int *endOffset) const;
|
|
||||||
virtual QString textAfterOffset(int offset, QAccessible::TextBoundaryType boundaryType,
|
|
||||||
int *startOffset, int *endOffset) const;
|
|
||||||
virtual QString textAtOffset(int offset, QAccessible::TextBoundaryType boundaryType,
|
|
||||||
int *startOffset, int *endOffset) const;
|
|
||||||
virtual int characterCount() const = 0;
|
|
||||||
|
|
||||||
// character <-> geometry
|
|
||||||
virtual QRect characterRect(int offset) const = 0;
|
|
||||||
virtual int offsetAtPoint(const QPoint &point) const = 0;
|
|
||||||
|
|
||||||
virtual void scrollToSubstring(int startIndex, int endIndex) = 0;
|
|
||||||
virtual QString attributes(int offset, int *startOffset, int *endOffset) const = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
class Q_GUI_EXPORT QAccessibleEditableTextInterface
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual ~QAccessibleEditableTextInterface() {}
|
|
||||||
|
|
||||||
virtual void deleteText(int startOffset, int endOffset) = 0;
|
|
||||||
virtual void insertText(int offset, const QString &text) = 0;
|
|
||||||
virtual void replaceText(int startOffset, int endOffset, const QString &text) = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
class Q_GUI_EXPORT QAccessibleValueInterface
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
virtual ~QAccessibleValueInterface() {}
|
|
||||||
|
|
||||||
virtual QVariant currentValue() const = 0;
|
|
||||||
virtual void setCurrentValue(const QVariant &value) = 0;
|
|
||||||
virtual QVariant maximumValue() const = 0;
|
|
||||||
virtual QVariant minimumValue() const = 0;
|
|
||||||
virtual QVariant minimumStepSize() const = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
class Q_GUI_EXPORT QAccessibleTableCellInterface
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual ~QAccessibleTableCellInterface() {}
|
|
||||||
|
|
||||||
// Returns the number of columns occupied by this cell accessible.
|
|
||||||
virtual int columnExtent() const = 0;
|
|
||||||
|
|
||||||
// Returns the column headers as an array of cell accessibles.
|
|
||||||
virtual QList<QAccessibleInterface*> columnHeaderCells() const = 0;
|
|
||||||
|
|
||||||
// Translates this cell accessible into the corresponding column index.
|
|
||||||
virtual int columnIndex() const = 0;
|
|
||||||
// Returns the number of rows occupied by this cell accessible.
|
|
||||||
virtual int rowExtent() const = 0;
|
|
||||||
// Returns the row headers as an array of cell accessibles.
|
|
||||||
virtual QList<QAccessibleInterface*> rowHeaderCells() const = 0;
|
|
||||||
// Translates this cell accessible into the corresponding row index.
|
|
||||||
virtual int rowIndex() const = 0;
|
|
||||||
// Returns a boolean value indicating whether this cell is selected.
|
|
||||||
virtual bool isSelected() const = 0;
|
|
||||||
// Returns a reference to the accessbile of the containing table.
|
|
||||||
virtual QAccessibleInterface* table() const = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
class Q_GUI_EXPORT QAccessibleTableInterface
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual ~QAccessibleTableInterface() {}
|
|
||||||
|
|
||||||
// Returns the cell at the specified row and column in the table.
|
|
||||||
virtual QAccessibleInterface *cellAt (int row, int column) const = 0;
|
|
||||||
// Returns the caption for the table.
|
|
||||||
virtual QAccessibleInterface *caption() const = 0;
|
|
||||||
// Returns the description text of the specified column in the table.
|
|
||||||
virtual QString columnDescription(int column) const = 0;
|
|
||||||
// Returns the total number of columns in table.
|
|
||||||
virtual int columnCount() const = 0;
|
|
||||||
// Returns the total number of rows in table.
|
|
||||||
virtual int rowCount() const = 0;
|
|
||||||
// Returns the total number of selected cells.
|
|
||||||
virtual int selectedCellCount() const = 0;
|
|
||||||
// Returns the total number of selected columns.
|
|
||||||
virtual int selectedColumnCount() const = 0;
|
|
||||||
// Returns the total number of selected rows.
|
|
||||||
virtual int selectedRowCount() const = 0;
|
|
||||||
// Returns the description text of the specified row in the table.
|
|
||||||
virtual QString rowDescription(int row) const = 0;
|
|
||||||
// Returns a list of accessibles currently selected.
|
|
||||||
virtual QList<QAccessibleInterface*> selectedCells() const = 0;
|
|
||||||
// Returns a list of column indexes currently selected (0 based).
|
|
||||||
virtual QList<int> selectedColumns() const = 0;
|
|
||||||
// Returns a list of row indexes currently selected (0 based).
|
|
||||||
virtual QList<int> selectedRows() const = 0;
|
|
||||||
// Returns the summary description of the table.
|
|
||||||
virtual QAccessibleInterface *summary() const = 0;
|
|
||||||
// Returns a boolean value indicating whether the specified column is completely selected.
|
|
||||||
virtual bool isColumnSelected(int column) const = 0;
|
|
||||||
// Returns a boolean value indicating whether the specified row is completely selected.
|
|
||||||
virtual bool isRowSelected(int row) const = 0;
|
|
||||||
// Selects a row and it might unselect all previously selected rows.
|
|
||||||
virtual bool selectRow(int row) = 0;
|
|
||||||
// Selects a column it might unselect all previously selected columns.
|
|
||||||
virtual bool selectColumn(int column) = 0;
|
|
||||||
// Unselects one row, leaving other selected rows selected (if any).
|
|
||||||
virtual bool unselectRow(int row) = 0;
|
|
||||||
// Unselects one column, leaving other selected columns selected (if any).
|
|
||||||
virtual bool unselectColumn(int column) = 0;
|
|
||||||
|
|
||||||
virtual void modelChange(QAccessibleTableModelChangeEvent *event) = 0;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
friend class QAbstractItemView;
|
|
||||||
friend class QAbstractItemViewPrivate;
|
|
||||||
};
|
|
||||||
|
|
||||||
class Q_GUI_EXPORT QAccessibleActionInterface
|
|
||||||
{
|
|
||||||
Q_DECLARE_TR_FUNCTIONS(QAccessibleActionInterface)
|
|
||||||
public:
|
|
||||||
virtual ~QAccessibleActionInterface() {}
|
|
||||||
|
|
||||||
virtual QStringList actionNames() const = 0;
|
|
||||||
virtual QString localizedActionName(const QString &name) const;
|
|
||||||
virtual QString localizedActionDescription(const QString &name) const;
|
|
||||||
virtual void doAction(const QString &actionName) = 0;
|
|
||||||
virtual QStringList keyBindingsForAction(const QString &actionName) const = 0;
|
|
||||||
|
|
||||||
static const QString &pressAction();
|
|
||||||
static const QString &increaseAction();
|
|
||||||
static const QString &decreaseAction();
|
|
||||||
static const QString &showMenuAction();
|
|
||||||
static const QString &setFocusAction();
|
|
||||||
static const QString &toggleAction();
|
|
||||||
};
|
|
||||||
|
|
||||||
class Q_GUI_EXPORT QAccessibleImageInterface
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual ~QAccessibleImageInterface() {}
|
|
||||||
|
|
||||||
virtual QString imageDescription() const = 0;
|
|
||||||
virtual QSize imageSize() const = 0;
|
|
||||||
virtual QRect imagePosition() const = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // QT_NO_ACCESSIBILITY
|
|
||||||
|
|
||||||
QT_END_NAMESPACE
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -61,10 +61,9 @@ public:
|
|||||||
\class QAccessibleObject
|
\class QAccessibleObject
|
||||||
\brief The QAccessibleObject class implements parts of the
|
\brief The QAccessibleObject class implements parts of the
|
||||||
QAccessibleInterface for QObjects.
|
QAccessibleInterface for QObjects.
|
||||||
\internal
|
|
||||||
|
|
||||||
\ingroup accessibility
|
\ingroup accessibility
|
||||||
\inmodule QtWidgets
|
\inmodule QtGui
|
||||||
|
|
||||||
This class is part of \l {Accessibility for QWidget Applications}.
|
This class is part of \l {Accessibility for QWidget Applications}.
|
||||||
|
|
||||||
|
@ -52,7 +52,6 @@ QT_BEGIN_NAMESPACE
|
|||||||
\class QAccessiblePlugin
|
\class QAccessiblePlugin
|
||||||
\brief The QAccessiblePlugin class provides an abstract base for
|
\brief The QAccessiblePlugin class provides an abstract base for
|
||||||
accessibility plugins.
|
accessibility plugins.
|
||||||
\internal
|
|
||||||
|
|
||||||
\ingroup plugins
|
\ingroup plugins
|
||||||
\ingroup accessibility
|
\ingroup accessibility
|
||||||
|
@ -48,7 +48,6 @@
|
|||||||
#include <QtCore/qsharedpointer.h>
|
#include <QtCore/qsharedpointer.h>
|
||||||
#include <QtDBus/qdbusvirtualobject.h>
|
#include <QtDBus/qdbusvirtualobject.h>
|
||||||
#include <QtGui/qaccessible.h>
|
#include <QtGui/qaccessible.h>
|
||||||
#include <QtGui/private/qaccessible2_p.h>
|
|
||||||
|
|
||||||
#include "dbusconnection_p.h"
|
#include "dbusconnection_p.h"
|
||||||
#include "struct_marshallers_p.h"
|
#include "struct_marshallers_p.h"
|
||||||
|
@ -43,10 +43,8 @@
|
|||||||
#define COMPLEXWIDGETS_H
|
#define COMPLEXWIDGETS_H
|
||||||
|
|
||||||
#include <QtCore/qpointer.h>
|
#include <QtCore/qpointer.h>
|
||||||
#include <QtWidgets/private/qaccessiblewidget_p.h>
|
#include <QtWidgets/qaccessiblewidget.h>
|
||||||
#include <QtWidgets/qabstractitemview.h>
|
#include <QtWidgets/qabstractitemview.h>
|
||||||
#include <QtGui/private/qaccessible2_p.h>
|
|
||||||
|
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
|
@ -46,7 +46,6 @@
|
|||||||
#include <qlistview.h>
|
#include <qlistview.h>
|
||||||
#include <qtreeview.h>
|
#include <qtreeview.h>
|
||||||
#include <private/qtreewidget_p.h>
|
#include <private/qtreewidget_p.h>
|
||||||
#include <QtGui/private/qaccessible2_p.h>
|
|
||||||
|
|
||||||
#ifndef QT_NO_ACCESSIBILITY
|
#ifndef QT_NO_ACCESSIBILITY
|
||||||
|
|
||||||
|
@ -44,8 +44,7 @@
|
|||||||
|
|
||||||
#include "QtCore/qpointer.h"
|
#include "QtCore/qpointer.h"
|
||||||
#include <QtGui/qaccessible.h>
|
#include <QtGui/qaccessible.h>
|
||||||
#include <QtGui/private/qaccessible2_p.h>
|
#include <QtWidgets/qaccessiblewidget.h>
|
||||||
#include <QtWidgets/private/qaccessiblewidget_p.h>
|
|
||||||
#include <QtWidgets/qabstractitemview.h>
|
#include <QtWidgets/qabstractitemview.h>
|
||||||
#include <QtWidgets/qheaderview.h>
|
#include <QtWidgets/qheaderview.h>
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
#ifndef QACCESSIBLEMENU_H
|
#ifndef QACCESSIBLEMENU_H
|
||||||
#define QACCESSIBLEMENU_H
|
#define QACCESSIBLEMENU_H
|
||||||
|
|
||||||
#include <QtWidgets/private/qaccessiblewidget_p.h>
|
#include <QtWidgets/qaccessiblewidget.h>
|
||||||
#include <QtCore/qpointer.h>
|
#include <QtCore/qpointer.h>
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
|
@ -42,8 +42,7 @@
|
|||||||
#ifndef QACCESSIBLEWIDGETS_H
|
#ifndef QACCESSIBLEWIDGETS_H
|
||||||
#define QACCESSIBLEWIDGETS_H
|
#define QACCESSIBLEWIDGETS_H
|
||||||
|
|
||||||
#include <QtGui/private/qaccessible2_p.h>
|
#include <QtWidgets/qaccessiblewidget.h>
|
||||||
#include <QtWidgets/private/qaccessiblewidget_p.h>
|
|
||||||
|
|
||||||
#ifndef QT_NO_ACCESSIBILITY
|
#ifndef QT_NO_ACCESSIBILITY
|
||||||
|
|
||||||
|
@ -42,8 +42,7 @@
|
|||||||
#ifndef RANGECONTROLS_H
|
#ifndef RANGECONTROLS_H
|
||||||
#define RANGECONTROLS_H
|
#define RANGECONTROLS_H
|
||||||
|
|
||||||
#include <QtWidgets/private/qaccessiblewidget_p.h>
|
#include <QtWidgets/qaccessiblewidget.h>
|
||||||
#include <QtGui/private/qaccessible2_p.h>
|
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
|
@ -43,8 +43,7 @@
|
|||||||
#define SIMPLEWIDGETS_H
|
#define SIMPLEWIDGETS_H
|
||||||
|
|
||||||
#include <QtCore/qcoreapplication.h>
|
#include <QtCore/qcoreapplication.h>
|
||||||
#include <QtGui/private/qaccessible2_p.h>
|
#include <QtWidgets/qaccessiblewidget.h>
|
||||||
#include <QtWidgets/private/qaccessiblewidget_p.h>
|
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Qt accessibility module
|
# Qt accessibility module
|
||||||
|
|
||||||
contains(QT_CONFIG, accessibility) {
|
contains(QT_CONFIG, accessibility) {
|
||||||
HEADERS += accessible/qaccessiblewidget_p.h
|
HEADERS += accessible/qaccessiblewidget.h
|
||||||
SOURCES += accessible/qaccessiblewidget.cpp
|
SOURCES += accessible/qaccessiblewidget.cpp
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "qaccessiblewidget_p.h"
|
#include "qaccessiblewidget.h"
|
||||||
|
|
||||||
#ifndef QT_NO_ACCESSIBILITY
|
#ifndef QT_NO_ACCESSIBILITY
|
||||||
|
|
||||||
@ -169,7 +169,6 @@ public:
|
|||||||
/*!
|
/*!
|
||||||
\class QAccessibleWidget
|
\class QAccessibleWidget
|
||||||
\brief The QAccessibleWidget class implements the QAccessibleInterface for QWidgets.
|
\brief The QAccessibleWidget class implements the QAccessibleInterface for QWidgets.
|
||||||
\internal
|
|
||||||
|
|
||||||
\ingroup accessibility
|
\ingroup accessibility
|
||||||
\inmodule QtWidgets
|
\inmodule QtWidgets
|
||||||
@ -204,6 +203,7 @@ QAccessibleWidget::QAccessibleWidget(QWidget *w, QAccessible::Role role, const Q
|
|||||||
d->name = name;
|
d->name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! \reimp */
|
||||||
bool QAccessibleWidget::isValid() const
|
bool QAccessibleWidget::isValid() const
|
||||||
{
|
{
|
||||||
if (!object() || static_cast<QWidget *>(object())->d_func()->data.in_destructor)
|
if (!object() || static_cast<QWidget *>(object())->d_func()->data.in_destructor)
|
||||||
|
@ -43,7 +43,6 @@
|
|||||||
#define QACCESSIBLEWIDGET_H
|
#define QACCESSIBLEWIDGET_H
|
||||||
|
|
||||||
#include <QtGui/qaccessibleobject.h>
|
#include <QtGui/qaccessibleobject.h>
|
||||||
#include <QtGui/private/qaccessible2_p.h>
|
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
@ -63,7 +63,6 @@
|
|||||||
#include <private/qabstractitemmodel_p.h>
|
#include <private/qabstractitemmodel_p.h>
|
||||||
#ifndef QT_NO_ACCESSIBILITY
|
#ifndef QT_NO_ACCESSIBILITY
|
||||||
#include <qaccessible.h>
|
#include <qaccessible.h>
|
||||||
#include <private/qaccessible2_p.h>
|
|
||||||
#endif
|
#endif
|
||||||
#ifndef QT_NO_GESTURES
|
#ifndef QT_NO_GESTURES
|
||||||
# include <qscroller.h>
|
# include <qscroller.h>
|
||||||
|
@ -55,7 +55,6 @@
|
|||||||
#include <QMetaMethod>
|
#include <QMetaMethod>
|
||||||
#ifndef QT_NO_ACCESSIBILITY
|
#ifndef QT_NO_ACCESSIBILITY
|
||||||
#include <qaccessible.h>
|
#include <qaccessible.h>
|
||||||
#include <private/qaccessible2_p.h>
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <private/qtreeview_p.h>
|
#include <private/qtreeview_p.h>
|
||||||
|
@ -58,9 +58,7 @@
|
|||||||
#endif
|
#endif
|
||||||
#include <QtTest/QtTest>
|
#include <QtTest/QtTest>
|
||||||
#include <QtGui>
|
#include <QtGui>
|
||||||
#include <QtGui/private/qaccessible2_p.h>
|
|
||||||
#include <QtWidgets>
|
#include <QtWidgets>
|
||||||
#include <QtWidgets/private/qaccessiblewidget_p.h>
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <qpa/qplatformnativeinterface.h>
|
#include <qpa/qplatformnativeinterface.h>
|
||||||
#include <qpa/qplatformintegration.h>
|
#include <qpa/qplatformintegration.h>
|
||||||
@ -71,8 +69,6 @@
|
|||||||
# undef interface
|
# undef interface
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <QtGui/private/qaccessible2_p.h>
|
|
||||||
#include <QtWidgets/private/qaccessiblewidget_p.h>
|
|
||||||
#include "QtTest/qtestaccessible.h"
|
#include "QtTest/qtestaccessible.h"
|
||||||
|
|
||||||
// Make a widget frameless to prevent size constraints of title bars
|
// Make a widget frameless to prevent size constraints of title bars
|
||||||
|
Loading…
Reference in New Issue
Block a user