1 /***************************************************************************
2 * Copyright (C) 2012 by Amandeep Singh <aman.dedman@gmail.com> *
4 * This program is free software; you can redistribute it and/or modify *
5 * it under the terms of the GNU General Public License as published by *
6 * the Free Software Foundation; either version 2 of the License, or *
7 * (at your option) any later version. *
9 * This program is distributed in the hope that it will be useful, *
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
12 * GNU General Public License for more details. *
14 * You should have received a copy of the GNU General Public License *
15 * along with this program; if not, write to the *
16 * Free Software Foundation, Inc., *
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
18 ***************************************************************************/
20 #ifndef KITEMLISTVIEWACCESSIBLE_H
21 #define KITEMLISTVIEWACCESSIBLE_H
23 #ifndef QT_NO_ACCESSIBILITY
25 #include "dolphin_export.h"
27 #include <QtCore/qpointer.h>
28 #include <qaccessible.h>
29 #include <qaccessibleobject.h>
30 #include <QtWidgets/qaccessiblewidget.h>
33 class KItemListContainer
;
35 class DOLPHIN_EXPORT KItemListViewAccessible
: public QAccessibleObject
, public QAccessibleTableInterface
38 explicit KItemListViewAccessible(KItemListView
* view
);
39 ~KItemListViewAccessible();
41 void* interface_cast(QAccessible::InterfaceType type
) Q_DECL_OVERRIDE
;
43 QAccessible::Role
role() const Q_DECL_OVERRIDE
;
44 QAccessible::State
state() const Q_DECL_OVERRIDE
;
45 QString
text(QAccessible::Text t
) const Q_DECL_OVERRIDE
;
46 QRect
rect() const Q_DECL_OVERRIDE
;
48 QAccessibleInterface
* child(int index
) const Q_DECL_OVERRIDE
;
49 int childCount() const Q_DECL_OVERRIDE
;
50 int indexOfChild(const QAccessibleInterface
*) const Q_DECL_OVERRIDE
;
51 QAccessibleInterface
* childAt(int x
, int y
) const Q_DECL_OVERRIDE
;
52 QAccessibleInterface
* parent() const Q_DECL_OVERRIDE
;
55 virtual QAccessibleInterface
* cellAt(int row
, int column
) const Q_DECL_OVERRIDE
;
56 virtual QAccessibleInterface
* caption() const Q_DECL_OVERRIDE
;
57 virtual QAccessibleInterface
* summary() const Q_DECL_OVERRIDE
;
58 virtual QString
columnDescription(int column
) const Q_DECL_OVERRIDE
;
59 virtual QString
rowDescription(int row
) const Q_DECL_OVERRIDE
;
60 virtual int columnCount() const Q_DECL_OVERRIDE
;
61 virtual int rowCount() const Q_DECL_OVERRIDE
;
64 virtual int selectedCellCount() const Q_DECL_OVERRIDE
;
65 virtual int selectedColumnCount() const Q_DECL_OVERRIDE
;
66 virtual int selectedRowCount() const Q_DECL_OVERRIDE
;
67 virtual QList
<QAccessibleInterface
*> selectedCells() const Q_DECL_OVERRIDE
;
68 virtual QList
<int> selectedColumns() const Q_DECL_OVERRIDE
;
69 virtual QList
<int> selectedRows() const Q_DECL_OVERRIDE
;
70 virtual bool isColumnSelected(int column
) const Q_DECL_OVERRIDE
;
71 virtual bool isRowSelected(int row
) const Q_DECL_OVERRIDE
;
72 virtual bool selectRow(int row
) Q_DECL_OVERRIDE
;
73 virtual bool selectColumn(int column
) Q_DECL_OVERRIDE
;
74 virtual bool unselectRow(int row
) Q_DECL_OVERRIDE
;
75 virtual bool unselectColumn(int column
) Q_DECL_OVERRIDE
;
76 virtual void modelChange(QAccessibleTableModelChangeEvent
*) Q_DECL_OVERRIDE
;
78 KItemListView
* view() const;
81 virtual void modelReset();
83 * Create an QAccessibleTableCellInterface representing the table
84 * cell at the @index. Index is 0-based.
86 inline QAccessibleInterface
* cell(int index
) const;
89 mutable QVector
<QAccessibleInterface
*> m_cells
;
92 class DOLPHIN_EXPORT KItemListAccessibleCell
: public QAccessibleInterface
, public QAccessibleTableCellInterface
95 KItemListAccessibleCell(KItemListView
* view
, int m_index
);
97 void* interface_cast(QAccessible::InterfaceType type
) Q_DECL_OVERRIDE
;
98 QObject
* object() const Q_DECL_OVERRIDE
;
99 bool isValid() const Q_DECL_OVERRIDE
;
100 QAccessible::Role
role() const Q_DECL_OVERRIDE
;
101 QAccessible::State
state() const Q_DECL_OVERRIDE
;
102 QRect
rect() const Q_DECL_OVERRIDE
;
103 QString
text(QAccessible::Text t
) const Q_DECL_OVERRIDE
;
104 void setText(QAccessible::Text t
, const QString
& text
) Q_DECL_OVERRIDE
;
106 QAccessibleInterface
* child(int index
) const Q_DECL_OVERRIDE
;
107 int childCount() const Q_DECL_OVERRIDE
;
108 QAccessibleInterface
* childAt(int x
, int y
) const Q_DECL_OVERRIDE
;
109 int indexOfChild(const QAccessibleInterface
*) const Q_DECL_OVERRIDE
;
111 QAccessibleInterface
* parent() const Q_DECL_OVERRIDE
;
112 bool isExpandable() const;
115 virtual int columnExtent() const Q_DECL_OVERRIDE
;
116 virtual QList
<QAccessibleInterface
*> columnHeaderCells() const Q_DECL_OVERRIDE
;
117 virtual int columnIndex() const Q_DECL_OVERRIDE
;
118 virtual int rowExtent() const Q_DECL_OVERRIDE
;
119 virtual QList
<QAccessibleInterface
*> rowHeaderCells() const Q_DECL_OVERRIDE
;
120 virtual int rowIndex() const Q_DECL_OVERRIDE
;
121 virtual bool isSelected() const Q_DECL_OVERRIDE
;
122 virtual QAccessibleInterface
* table() const Q_DECL_OVERRIDE
;
124 inline int index() const;
127 QPointer
<KItemListView
> m_view
;
131 class DOLPHIN_EXPORT KItemListContainerAccessible
: public QAccessibleWidget
134 explicit KItemListContainerAccessible(KItemListContainer
* container
);
135 virtual ~KItemListContainerAccessible();
137 QAccessibleInterface
* child(int index
) const Q_DECL_OVERRIDE
;
138 int childCount() const Q_DECL_OVERRIDE
;
139 int indexOfChild(const QAccessibleInterface
* child
) const Q_DECL_OVERRIDE
;
142 const KItemListContainer
* container() const;
145 #endif // QT_NO_ACCESSIBILITY