2 * SPDX-FileCopyrightText: 2012 Amandeep Singh <aman.dedman@gmail.com>
4 * SPDX-License-Identifier: GPL-2.0-or-later
7 #ifndef KITEMLISTVIEWACCESSIBLE_H
8 #define KITEMLISTVIEWACCESSIBLE_H
10 #ifndef QT_NO_ACCESSIBILITY
12 #include "dolphin_export.h"
14 #include <QAccessible>
15 #include <QAccessibleObject>
16 #include <QAccessibleWidget>
20 class KItemListContainer
;
22 class DOLPHIN_EXPORT KItemListViewAccessible
: public QAccessibleObject
, public QAccessibleTableInterface
25 explicit KItemListViewAccessible(KItemListView
*view
);
26 ~KItemListViewAccessible() override
;
28 void *interface_cast(QAccessible::InterfaceType type
) override
;
30 QAccessible::Role
role() const override
;
31 QAccessible::State
state() const override
;
32 QString
text(QAccessible::Text t
) const override
;
33 QRect
rect() const override
;
35 QAccessibleInterface
*child(int index
) const override
;
36 int childCount() const override
;
37 int indexOfChild(const QAccessibleInterface
*) const override
;
38 QAccessibleInterface
*childAt(int x
, int y
) const override
;
39 QAccessibleInterface
*parent() const override
;
42 QAccessibleInterface
*cellAt(int row
, int column
) const override
;
43 QAccessibleInterface
*caption() const override
;
44 QAccessibleInterface
*summary() const override
;
45 QString
columnDescription(int column
) const override
;
46 QString
rowDescription(int row
) const override
;
47 int columnCount() const override
;
48 int rowCount() const override
;
51 int selectedCellCount() const override
;
52 int selectedColumnCount() const override
;
53 int selectedRowCount() const override
;
54 QList
<QAccessibleInterface
*> selectedCells() const override
;
55 QList
<int> selectedColumns() const override
;
56 QList
<int> selectedRows() const override
;
57 bool isColumnSelected(int column
) const override
;
58 bool isRowSelected(int row
) const override
;
59 bool selectRow(int row
) override
;
60 bool selectColumn(int column
) override
;
61 bool unselectRow(int row
) override
;
62 bool unselectColumn(int column
) override
;
63 void modelChange(QAccessibleTableModelChangeEvent
*) override
;
65 KItemListView
*view() const;
68 virtual void modelReset();
70 * Create an QAccessibleTableCellInterface representing the table
71 * cell at the @index. Index is 0-based.
73 inline QAccessibleInterface
*cell(int index
) const;
76 class AccessibleIdWrapper
79 AccessibleIdWrapper();
83 mutable QVector
<AccessibleIdWrapper
> m_cells
;
86 class DOLPHIN_EXPORT KItemListAccessibleCell
: public QAccessibleInterface
, public QAccessibleTableCellInterface
89 KItemListAccessibleCell(KItemListView
*view
, int m_index
);
91 void *interface_cast(QAccessible::InterfaceType type
) override
;
92 QObject
*object() const override
;
93 bool isValid() const override
;
94 QAccessible::Role
role() const override
;
95 QAccessible::State
state() const override
;
96 QRect
rect() const override
;
97 QString
text(QAccessible::Text t
) const override
;
98 void setText(QAccessible::Text t
, const QString
&text
) override
;
100 QAccessibleInterface
*child(int index
) const override
;
101 int childCount() const override
;
102 QAccessibleInterface
*childAt(int x
, int y
) const override
;
103 int indexOfChild(const QAccessibleInterface
*) const override
;
105 QAccessibleInterface
*parent() const override
;
106 bool isExpandable() const;
109 int columnExtent() const override
;
110 QList
<QAccessibleInterface
*> columnHeaderCells() const override
;
111 int columnIndex() const override
;
112 int rowExtent() const override
;
113 QList
<QAccessibleInterface
*> rowHeaderCells() const override
;
114 int rowIndex() const override
;
115 bool isSelected() const override
;
116 QAccessibleInterface
*table() const override
;
118 inline int index() const;
121 QPointer
<KItemListView
> m_view
;
125 class DOLPHIN_EXPORT KItemListContainerAccessible
: public QAccessibleWidget
128 explicit KItemListContainerAccessible(KItemListContainer
*container
);
129 ~KItemListContainerAccessible() override
;
131 QAccessibleInterface
*child(int index
) const override
;
132 int childCount() const override
;
133 int indexOfChild(const QAccessibleInterface
*child
) const override
;
136 const KItemListContainer
*container() const;
139 #endif // QT_NO_ACCESSIBILITY