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 class AccessibleIdWrapper
{
91 AccessibleIdWrapper();
95 mutable QVector
<AccessibleIdWrapper
> m_cells
;
98 class DOLPHIN_EXPORT KItemListAccessibleCell
: public QAccessibleInterface
, public QAccessibleTableCellInterface
101 KItemListAccessibleCell(KItemListView
* view
, int m_index
);
103 void* interface_cast(QAccessible::InterfaceType type
) override
;
104 QObject
* object() const override
;
105 bool isValid() const override
;
106 QAccessible::Role
role() const override
;
107 QAccessible::State
state() const override
;
108 QRect
rect() const override
;
109 QString
text(QAccessible::Text t
) const override
;
110 void setText(QAccessible::Text t
, const QString
& text
) override
;
112 QAccessibleInterface
* child(int index
) const override
;
113 int childCount() const override
;
114 QAccessibleInterface
* childAt(int x
, int y
) const override
;
115 int indexOfChild(const QAccessibleInterface
*) const override
;
117 QAccessibleInterface
* parent() const override
;
118 bool isExpandable() const;
121 int columnExtent() const override
;
122 QList
<QAccessibleInterface
*> columnHeaderCells() const override
;
123 int columnIndex() const override
;
124 int rowExtent() const override
;
125 QList
<QAccessibleInterface
*> rowHeaderCells() const override
;
126 int rowIndex() const override
;
127 bool isSelected() const override
;
128 QAccessibleInterface
* table() const override
;
130 inline int index() const;
133 QPointer
<KItemListView
> m_view
;
137 class DOLPHIN_EXPORT KItemListContainerAccessible
: public QAccessibleWidget
140 explicit KItemListContainerAccessible(KItemListContainer
* container
);
141 ~KItemListContainerAccessible() override
;
143 QAccessibleInterface
* child(int index
) const override
;
144 int childCount() const override
;
145 int indexOfChild(const QAccessibleInterface
* child
) const override
;
148 const KItemListContainer
* container() const;
151 #endif // QT_NO_ACCESSIBILITY