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
{
78 AccessibleIdWrapper();
82 mutable QVector
<AccessibleIdWrapper
> m_cells
;
85 class DOLPHIN_EXPORT KItemListAccessibleCell
: public QAccessibleInterface
, public QAccessibleTableCellInterface
88 KItemListAccessibleCell(KItemListView
* view
, int m_index
);
90 void* interface_cast(QAccessible::InterfaceType type
) override
;
91 QObject
* object() const override
;
92 bool isValid() const override
;
93 QAccessible::Role
role() const override
;
94 QAccessible::State
state() const override
;
95 QRect
rect() const override
;
96 QString
text(QAccessible::Text t
) const override
;
97 void setText(QAccessible::Text t
, const QString
& text
) override
;
99 QAccessibleInterface
* child(int index
) const override
;
100 int childCount() const override
;
101 QAccessibleInterface
* childAt(int x
, int y
) const override
;
102 int indexOfChild(const QAccessibleInterface
*) const override
;
104 QAccessibleInterface
* parent() const override
;
105 bool isExpandable() const;
108 int columnExtent() const override
;
109 QList
<QAccessibleInterface
*> columnHeaderCells() const override
;
110 int columnIndex() const override
;
111 int rowExtent() const override
;
112 QList
<QAccessibleInterface
*> rowHeaderCells() const override
;
113 int rowIndex() const override
;
114 bool isSelected() const override
;
115 QAccessibleInterface
* table() const override
;
117 inline int index() const;
120 QPointer
<KItemListView
> m_view
;
124 class DOLPHIN_EXPORT KItemListContainerAccessible
: public QAccessibleWidget
127 explicit KItemListContainerAccessible(KItemListContainer
* container
);
128 ~KItemListContainerAccessible() override
;
130 QAccessibleInterface
* child(int index
) const override
;
131 int childCount() const override
;
132 int indexOfChild(const QAccessibleInterface
* child
) const override
;
135 const KItemListContainer
* container() const;
138 #endif // QT_NO_ACCESSIBILITY