]> cloud.milkyroute.net Git - dolphin.git/blob - src/kitemviews/kitemlistviewaccessible.h
Reverting KListSelectionManager, removing unneccessary a11y factories
[dolphin.git] / src / kitemviews / kitemlistviewaccessible.h
1 #ifndef ACCESSIBLE_ITEMVIEWS_H
2 #define ACCESSIBLE_ITEMVIEWS_H
3
4 #include "QtCore/qpointer.h"
5 #include <QtGui/qaccessible.h>
6 #include <QtGui/qaccessible2.h>
7 #include <QtGui/qaccessiblewidget.h>
8
9 #include "kitemlistview.h"
10 #include "kitemlistcontainer.h"
11
12 #ifndef QT_NO_ACCESSIBILITY
13
14 class KItemListAccessibleCell;
15
16 class KItemListViewAccessible: public QAccessibleTable2Interface, public QAccessibleObjectEx
17 {
18 Q_ACCESSIBLE_OBJECT
19 public:
20 explicit KItemListViewAccessible(KItemListView *view);
21
22 virtual ~KItemListViewAccessible();
23
24 Role role(int child) const;
25 State state(int child) const;
26 QString text(Text t, int child) const;
27 QRect rect(int child) const;
28
29 int childAt(int x, int y) const;
30 int childCount() const;
31 int indexOfChild(const QAccessibleInterface *) const;
32
33 int navigate(RelationFlag relation, int index, QAccessibleInterface **iface) const;
34 Relation relationTo(int child, const QAccessibleInterface *other, int otherChild) const;
35
36 #ifndef QT_NO_ACTION
37 int userActionCount(int child) const;
38 QString actionText(int action, Text t, int child) const;
39 bool doAction(int action, int child, const QVariantList &params);
40 #endif
41 QVariant invokeMethodEx(Method, int, const QVariantList &) { return QVariant(); }
42
43 // table2 interface
44 virtual QAccessibleTable2CellInterface *cellAt(int row, int column) const;
45 virtual QAccessibleInterface *caption() const;
46 virtual QAccessibleInterface *summary() const;
47 virtual QString columnDescription(int column) const;
48 virtual QString rowDescription(int row) const;
49 virtual int columnCount() const;
50 virtual int rowCount() const;
51 virtual QAccessible2::TableModelChange modelChange() const;
52
53 //Table
54 virtual void rowsInserted(const QModelIndex&, int, int) {}
55 virtual void rowsRemoved(const QModelIndex&, int, int) {}
56 virtual void columnsInserted(const QModelIndex&, int, int) {}
57 virtual void columnsRemoved(const QModelIndex&, int, int) {}
58 virtual void rowsMoved(const QModelIndex&, int, int, const QModelIndex&, int) {}
59 virtual void columnsMoved(const QModelIndex&, int, int, const QModelIndex&, int) {}
60
61 // selection
62 virtual int selectedCellCount() const;
63 virtual int selectedColumnCount() const;
64 virtual int selectedRowCount() const;
65 virtual QList<QAccessibleTable2CellInterface*> selectedCells() const;
66 virtual QList<int> selectedColumns() const;
67 virtual QList<int> selectedRows() const;
68 virtual bool isColumnSelected(int column) const;
69 virtual bool isRowSelected(int row) const;
70 virtual bool selectRow(int row);
71 virtual bool selectColumn(int column);
72 virtual bool unselectRow(int row);
73 virtual bool unselectColumn(int column);
74
75 KItemListView *view() const;
76
77 protected:
78 virtual void modelReset();
79
80 protected:
81 inline QAccessibleTable2CellInterface *cell(int index) const;
82 inline QAccessible::Role cellRole() const {
83 return QAccessible::Cell;
84 }
85 };
86
87 class KItemListAccessibleCell: public QAccessibleTable2CellInterface
88 {
89 public:
90 KItemListAccessibleCell(KItemListView *view, int m_index);
91
92 QObject *object() const
93 {
94 return 0;
95 }
96 Role role(int) const;
97 State state(int) const;
98 QRect rect(int) const;
99 bool isValid() const;
100
101 inline int childAt(int, int) const {
102 return 0;
103 }
104 inline int childCount() const {
105 return 0;
106 }
107 inline int indexOfChild(const QAccessibleInterface *) const {
108 return -1;
109 }
110
111 QString text(Text t, int child) const;
112 void setText(Text t, int child, const QString &text);
113
114 int navigate(RelationFlag relation, int m_index, QAccessibleInterface **iface) const;
115 Relation relationTo(int child, const QAccessibleInterface *other, int otherChild) const;
116
117 bool isExpandable() const;
118
119 #ifndef QT_NO_ACTION
120 int userActionCount(int child) const;
121 QString actionText(int action, Text t, int child) const;
122 bool doAction(int action, int child, const QVariantList &params);
123 #endif
124
125 // cell interface
126 virtual int columnExtent() const;
127 virtual QList<QAccessibleInterface*> columnHeaderCells() const;
128 virtual int columnIndex() const;
129 virtual int rowExtent() const;
130 virtual QList<QAccessibleInterface*> rowHeaderCells() const;
131 virtual int rowIndex() const;
132 virtual bool isSelected() const;
133 virtual void rowColumnExtents(int *row, int *column, int *rowExtents, int *columnExtents, bool *selected) const;
134 virtual QAccessibleTable2Interface* table() const;
135
136 inline int index() const {
137 return index;
138 }
139
140 private:
141 QPointer<KItemListView> m_view;
142 int m_index;
143
144 friend class KItemListViewAccessible;
145 };
146
147 class KItemListContainerAccessible : public QAccessibleWidgetEx
148 {
149 Q_ACCESSIBLE_OBJECT
150 public:
151 explicit KItemListContainerAccessible(KItemListContainer*);
152 virtual ~KItemListContainerAccessible();
153 int childCount () const;
154 int indexOfChild ( const QAccessibleInterface * child ) const;
155 int navigate ( RelationFlag relation, int entry, QAccessibleInterface ** target ) const;
156
157 private:
158 inline KItemListContainer *container() const
159 {
160 return static_cast<KItemListContainer *>(object());
161 }
162 };
163
164 #endif // QT_NO_ACCESSIBILITY
165
166 #endif // ACCESSIBLE_ITEMVIEWS_H