]> cloud.milkyroute.net Git - dolphin.git/blob - src/kitemviews/kitemlistviewaccessible.h
add few more Q_DECL_OVERRIDE
[dolphin.git] / src / kitemviews / kitemlistviewaccessible.h
1 /***************************************************************************
2 * Copyright (C) 2012 by Amandeep Singh <aman.dedman@gmail.com> *
3 * *
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. *
8 * *
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. *
13 * *
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 ***************************************************************************/
19
20 #ifndef KITEMLISTVIEWACCESSIBLE_H
21 #define KITEMLISTVIEWACCESSIBLE_H
22
23 #ifndef QT_NO_ACCESSIBILITY
24
25 #include "dolphin_export.h"
26
27 #include <QtCore/qpointer.h>
28 #include <qaccessible.h>
29 #include <qaccessibleobject.h>
30 #include <QtWidgets/qaccessiblewidget.h>
31
32 class KItemListView;
33 class KItemListContainer;
34
35 class DOLPHIN_EXPORT KItemListViewAccessible: public QAccessibleObject, public QAccessibleTableInterface
36 {
37 public:
38 explicit KItemListViewAccessible(KItemListView* view);
39 ~KItemListViewAccessible();
40
41 void* interface_cast(QAccessible::InterfaceType type) Q_DECL_OVERRIDE;
42
43 QAccessible::Role role() const Q_DECL_OVERRIDE;
44 QAccessible::State state() const Q_DECL_OVERRIDE;
45 QString text(QAccessible::Text t) const Q_DECL_OVERRIDE;
46 QRect rect() const Q_DECL_OVERRIDE;
47
48 QAccessibleInterface* child(int index) const Q_DECL_OVERRIDE;
49 int childCount() const Q_DECL_OVERRIDE;
50 int indexOfChild(const QAccessibleInterface*) const Q_DECL_OVERRIDE;
51 QAccessibleInterface* childAt(int x, int y) const Q_DECL_OVERRIDE;
52 QAccessibleInterface* parent() const Q_DECL_OVERRIDE;
53
54 // Table interface
55 virtual QAccessibleInterface* cellAt(int row, int column) const Q_DECL_OVERRIDE;
56 virtual QAccessibleInterface* caption() const Q_DECL_OVERRIDE;
57 virtual QAccessibleInterface* summary() const Q_DECL_OVERRIDE;
58 virtual QString columnDescription(int column) const Q_DECL_OVERRIDE;
59 virtual QString rowDescription(int row) const Q_DECL_OVERRIDE;
60 virtual int columnCount() const Q_DECL_OVERRIDE;
61 virtual int rowCount() const Q_DECL_OVERRIDE;
62
63 // Selection
64 virtual int selectedCellCount() const Q_DECL_OVERRIDE;
65 virtual int selectedColumnCount() const Q_DECL_OVERRIDE;
66 virtual int selectedRowCount() const Q_DECL_OVERRIDE;
67 virtual QList<QAccessibleInterface*> selectedCells() const Q_DECL_OVERRIDE;
68 virtual QList<int> selectedColumns() const Q_DECL_OVERRIDE;
69 virtual QList<int> selectedRows() const Q_DECL_OVERRIDE;
70 virtual bool isColumnSelected(int column) const Q_DECL_OVERRIDE;
71 virtual bool isRowSelected(int row) const Q_DECL_OVERRIDE;
72 virtual bool selectRow(int row) Q_DECL_OVERRIDE;
73 virtual bool selectColumn(int column) Q_DECL_OVERRIDE;
74 virtual bool unselectRow(int row) Q_DECL_OVERRIDE;
75 virtual bool unselectColumn(int column) Q_DECL_OVERRIDE;
76 virtual void modelChange(QAccessibleTableModelChangeEvent*) Q_DECL_OVERRIDE;
77
78 KItemListView* view() const;
79
80 protected:
81 virtual void modelReset();
82 /**
83 * Create an QAccessibleTableCellInterface representing the table
84 * cell at the @index. Index is 0-based.
85 */
86 inline QAccessibleInterface* cell(int index) const;
87
88 private:
89 mutable QVector<QAccessibleInterface*> m_cells;
90 };
91
92 class DOLPHIN_EXPORT KItemListAccessibleCell: public QAccessibleInterface, public QAccessibleTableCellInterface
93 {
94 public:
95 KItemListAccessibleCell(KItemListView* view, int m_index);
96
97 void* interface_cast(QAccessible::InterfaceType type) Q_DECL_OVERRIDE;
98 QObject* object() const Q_DECL_OVERRIDE;
99 bool isValid() const Q_DECL_OVERRIDE;
100 QAccessible::Role role() const Q_DECL_OVERRIDE;
101 QAccessible::State state() const Q_DECL_OVERRIDE;
102 QRect rect() const Q_DECL_OVERRIDE;
103 QString text(QAccessible::Text t) const Q_DECL_OVERRIDE;
104 void setText(QAccessible::Text t, const QString& text) Q_DECL_OVERRIDE;
105
106 QAccessibleInterface* child(int index) const Q_DECL_OVERRIDE;
107 int childCount() const Q_DECL_OVERRIDE;
108 QAccessibleInterface* childAt(int x, int y) const Q_DECL_OVERRIDE;
109 int indexOfChild(const QAccessibleInterface*) const Q_DECL_OVERRIDE;
110
111 QAccessibleInterface* parent() const Q_DECL_OVERRIDE;
112 bool isExpandable() const;
113
114 // Cell Interface
115 virtual int columnExtent() const Q_DECL_OVERRIDE;
116 virtual QList<QAccessibleInterface*> columnHeaderCells() const Q_DECL_OVERRIDE;
117 virtual int columnIndex() const Q_DECL_OVERRIDE;
118 virtual int rowExtent() const Q_DECL_OVERRIDE;
119 virtual QList<QAccessibleInterface*> rowHeaderCells() const Q_DECL_OVERRIDE;
120 virtual int rowIndex() const Q_DECL_OVERRIDE;
121 virtual bool isSelected() const Q_DECL_OVERRIDE;
122 virtual QAccessibleInterface* table() const Q_DECL_OVERRIDE;
123
124 inline int index() const;
125
126 private:
127 QPointer<KItemListView> m_view;
128 int m_index;
129 };
130
131 class DOLPHIN_EXPORT KItemListContainerAccessible : public QAccessibleWidget
132 {
133 public:
134 explicit KItemListContainerAccessible(KItemListContainer* container);
135 virtual ~KItemListContainerAccessible();
136
137 QAccessibleInterface* child(int index) const Q_DECL_OVERRIDE;
138 int childCount() const Q_DECL_OVERRIDE;
139 int indexOfChild(const QAccessibleInterface* child) const Q_DECL_OVERRIDE;
140
141 private:
142 const KItemListContainer* container() const;
143 };
144
145 #endif // QT_NO_ACCESSIBILITY
146
147 #endif