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 <QAccessible>
28 #include <QAccessibleObject>
29 #include <QAccessibleWidget>
33 class KItemListContainer
;
35 class DOLPHIN_EXPORT KItemListViewAccessible
: public QAccessibleObject
, public QAccessibleTableInterface
38 explicit KItemListViewAccessible(KItemListView
* view
);
39 ~KItemListViewAccessible() override
;
41 void* interface_cast(QAccessible::InterfaceType type
) override
;
43 QAccessible::Role
role() const override
;
44 QAccessible::State
state() const override
;
45 QString
text(QAccessible::Text t
) const override
;
46 QRect
rect() const override
;
48 QAccessibleInterface
* child(int index
) const override
;
49 int childCount() const override
;
50 int indexOfChild(const QAccessibleInterface
*) const override
;
51 QAccessibleInterface
* childAt(int x
, int y
) const override
;
52 QAccessibleInterface
* parent() const override
;
55 QAccessibleInterface
* cellAt(int row
, int column
) const override
;
56 QAccessibleInterface
* caption() const override
;
57 QAccessibleInterface
* summary() const override
;
58 QString
columnDescription(int column
) const override
;
59 QString
rowDescription(int row
) const override
;
60 int columnCount() const override
;
61 int rowCount() const override
;
64 int selectedCellCount() const override
;
65 int selectedColumnCount() const override
;
66 int selectedRowCount() const override
;
67 QList
<QAccessibleInterface
*> selectedCells() const override
;
68 QList
<int> selectedColumns() const override
;
69 QList
<int> selectedRows() const override
;
70 bool isColumnSelected(int column
) const override
;
71 bool isRowSelected(int row
) const override
;
72 bool selectRow(int row
) override
;
73 bool selectColumn(int column
) override
;
74 bool unselectRow(int row
) override
;
75 bool unselectColumn(int column
) override
;
76 void modelChange(QAccessibleTableModelChangeEvent
*) 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
) override
;
98 QObject
* object() const override
;
99 bool isValid() const override
;
100 QAccessible::Role
role() const override
;
101 QAccessible::State
state() const override
;
102 QRect
rect() const override
;
103 QString
text(QAccessible::Text t
) const override
;
104 void setText(QAccessible::Text t
, const QString
& text
) override
;
106 QAccessibleInterface
* child(int index
) const override
;
107 int childCount() const override
;
108 QAccessibleInterface
* childAt(int x
, int y
) const override
;
109 int indexOfChild(const QAccessibleInterface
*) const override
;
111 QAccessibleInterface
* parent() const override
;
112 bool isExpandable() const;
115 int columnExtent() const override
;
116 QList
<QAccessibleInterface
*> columnHeaderCells() const override
;
117 int columnIndex() const override
;
118 int rowExtent() const override
;
119 QList
<QAccessibleInterface
*> rowHeaderCells() const override
;
120 int rowIndex() const override
;
121 bool isSelected() const override
;
122 QAccessibleInterface
* table() const override
;
124 inline int index() const;
127 QPointer
<KItemListView
> m_view
;
131 class DOLPHIN_EXPORT KItemListContainerAccessible
: public QAccessibleWidget
134 explicit KItemListContainerAccessible(KItemListContainer
* container
);
135 ~KItemListContainerAccessible() override
;
137 QAccessibleInterface
* child(int index
) const override
;
138 int childCount() const override
;
139 int indexOfChild(const QAccessibleInterface
* child
) const override
;
142 const KItemListContainer
* container() const;
145 #endif // QT_NO_ACCESSIBILITY