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
;
21 class KItemListContainerAccessible
;
23 class DOLPHIN_EXPORT KItemListViewAccessible
: public QAccessibleObject
, public QAccessibleTableInterface
26 explicit KItemListViewAccessible(KItemListView
*view
, KItemListContainerAccessible
*parent
);
27 ~KItemListViewAccessible() override
;
29 void *interface_cast(QAccessible::InterfaceType type
) override
;
31 QAccessible::Role
role() const override
;
32 QAccessible::State
state() const override
;
33 QString
text(QAccessible::Text t
) const override
;
34 QRect
rect() const override
;
36 QAccessibleInterface
*child(int index
) const override
;
37 int childCount() const override
;
38 int indexOfChild(const QAccessibleInterface
*) const override
;
39 QAccessibleInterface
*childAt(int x
, int y
) const override
;
40 QAccessibleInterface
*parent() const override
;
43 QAccessibleInterface
*cellAt(int row
, int column
) const override
;
44 QAccessibleInterface
*caption() const override
;
45 QAccessibleInterface
*summary() const override
;
46 QString
columnDescription(int column
) const override
;
47 QString
rowDescription(int row
) const override
;
48 int columnCount() const override
;
49 int rowCount() const override
;
52 int selectedCellCount() const override
;
53 int selectedColumnCount() const override
;
54 int selectedRowCount() const override
;
55 QList
<QAccessibleInterface
*> selectedCells() const override
;
56 QList
<int> selectedColumns() const override
;
57 QList
<int> selectedRows() const override
;
58 bool isColumnSelected(int column
) const override
;
59 bool isRowSelected(int row
) const override
;
60 bool selectRow(int row
) override
;
61 bool selectColumn(int column
) override
;
62 bool unselectRow(int row
) override
;
63 bool unselectColumn(int column
) override
;
64 void modelChange(QAccessibleTableModelChangeEvent
*) override
;
66 KItemListView
*view() const;
69 virtual void modelReset();
71 * Create an QAccessibleTableCellInterface representing the table
72 * cell at the @index. Index is 0-based.
74 inline QAccessibleInterface
*cell(int index
) const;
77 class AccessibleIdWrapper
80 AccessibleIdWrapper();
84 mutable QVector
<AccessibleIdWrapper
> m_cells
;
86 KItemListContainerAccessible
*m_parent
;
89 class DOLPHIN_EXPORT KItemListAccessibleCell
: public QAccessibleInterface
, public QAccessibleTableCellInterface
92 KItemListAccessibleCell(KItemListView
*view
, int m_index
);
94 void *interface_cast(QAccessible::InterfaceType type
) override
;
95 QObject
*object() const override
;
96 bool isValid() const override
;
97 QAccessible::Role
role() const override
;
98 QAccessible::State
state() const override
;
99 QRect
rect() const override
;
100 QString
text(QAccessible::Text t
) const override
;
101 void setText(QAccessible::Text t
, const QString
&text
) override
;
103 QAccessibleInterface
*child(int index
) const override
;
104 int childCount() const override
;
105 QAccessibleInterface
*childAt(int x
, int y
) const override
;
106 int indexOfChild(const QAccessibleInterface
*) const override
;
108 QAccessibleInterface
*parent() const override
;
109 bool isExpandable() const;
112 int columnExtent() const override
;
113 QList
<QAccessibleInterface
*> columnHeaderCells() const override
;
114 int columnIndex() const override
;
115 int rowExtent() const override
;
116 QList
<QAccessibleInterface
*> rowHeaderCells() const override
;
117 int rowIndex() const override
;
118 bool isSelected() const override
;
119 QAccessibleInterface
*table() const override
;
121 inline int index() const;
124 QPointer
<KItemListView
> m_view
;
128 class DOLPHIN_EXPORT KItemListContainerAccessible
: public QAccessibleWidget
131 explicit KItemListContainerAccessible(KItemListContainer
*container
);
132 ~KItemListContainerAccessible() override
;
134 QAccessibleInterface
*child(int index
) const override
;
135 int childCount() const override
;
136 int indexOfChild(const QAccessibleInterface
*child
) const override
;
139 const KItemListContainer
*container() const;
142 #endif // QT_NO_ACCESSIBILITY