1 #ifndef ACCESSIBLE_ITEMVIEWS_H
2 #define ACCESSIBLE_ITEMVIEWS_H
4 #include "QtCore/qpointer.h"
5 #include <QtGui/qabstractitemview.h>
6 #include <QtGui/qheaderview.h>
7 #include <QtGui/qaccessible.h>
8 #include <QtGui/qaccessible2.h>
9 #include <QtGui/qaccessiblewidget.h>
11 #include "kitemlistview.h"
12 #include "kitemlistcontainer.h"
14 #ifndef QT_NO_ACCESSIBILITY
16 #ifndef QT_NO_ITEMVIEWS
18 class KItemListAccessibleCell
;
20 class KItemListViewAccessible
: public QAccessibleTable2Interface
, public QAccessibleObjectEx
24 explicit KItemListViewAccessible(KItemListView
*view
);
26 virtual ~KItemListViewAccessible();
28 Role
role(int child
) const;
29 State
state(int child
) const;
30 QString
text(Text t
, int child
) const;
31 QRect
rect(int child
) const;
33 int childAt(int x
, int y
) const;
34 int childCount() const;
35 int indexOfChild(const QAccessibleInterface
*) const;
37 int navigate(RelationFlag relation
, int index
, QAccessibleInterface
**iface
) const;
38 Relation
relationTo(int child
, const QAccessibleInterface
*other
, int otherChild
) const;
41 int userActionCount(int child
) const;
42 QString
actionText(int action
, Text t
, int child
) const;
43 bool doAction(int action
, int child
, const QVariantList
¶ms
);
45 QVariant
invokeMethodEx(Method
, int, const QVariantList
&) { return QVariant(); }
48 virtual QAccessibleTable2CellInterface
*cellAt(int row
, int column
) const;
49 virtual QAccessibleInterface
*caption() const;
50 virtual QAccessibleInterface
*summary() const;
51 virtual QString
columnDescription(int column
) const;
52 virtual QString
rowDescription(int row
) const;
53 virtual int columnCount() const;
54 virtual int rowCount() const;
55 virtual QAccessible2::TableModelChange
modelChange() const;
58 virtual void rowsInserted(const QModelIndex
&, int, int) {}
59 virtual void rowsRemoved(const QModelIndex
&, int, int) {}
60 virtual void columnsInserted(const QModelIndex
&, int, int) {}
61 virtual void columnsRemoved(const QModelIndex
&, int, int) {}
62 virtual void rowsMoved(const QModelIndex
&, int, int, const QModelIndex
&, int) {}
63 virtual void columnsMoved(const QModelIndex
&, int, int, const QModelIndex
&, int) {}
66 virtual int selectedCellCount() const;
67 virtual int selectedColumnCount() const;
68 virtual int selectedRowCount() const;
69 virtual QList
<QAccessibleTable2CellInterface
*> selectedCells() const;
70 virtual QList
<int> selectedColumns() const;
71 virtual QList
<int> selectedRows() const;
72 virtual bool isColumnSelected(int column
) const;
73 virtual bool isRowSelected(int row
) const;
74 virtual bool selectRow(int row
);
75 virtual bool selectColumn(int column
);
76 virtual bool unselectRow(int row
);
77 virtual bool unselectColumn(int column
);
79 KItemListView
*view() const;
82 virtual void modelReset();
85 inline QAccessibleTable2CellInterface
*cell(int index
) const;
86 inline QAccessible::Role
cellRole() const {
89 case QAccessible::List:
90 return QAccessible::ListItem;
91 case QAccessible::Table:
92 return QAccessible::Cell;
93 case QAccessible::Tree:
94 return QAccessible::TreeItem;
98 return QAccessible::NoRole;
100 return QAccessible::Cell
;
104 //QAccessible::Role m_role;
105 // the child index for a model index
106 //inline int logicalIndex(const QModelIndex &index) const;
107 // the model index from the child index
108 //QAccessibleInterface *childFromLogical(int logicalIndex) const;
111 class KItemListAccessibleCell
: public QAccessibleTable2CellInterface
114 KItemListAccessibleCell(KItemListView
*view
, int m_index
);
116 QObject
*object() const { return 0; }
117 Role
role(int child
) const;
118 State
state(int child
) const;
119 QRect
rect(int child
) const;
120 bool isValid() const;
122 int childAt(int, int) const { return 0; }
123 int childCount() const { return 0; }
124 int indexOfChild(const QAccessibleInterface
*) const { return -1; }
126 QString
text(Text t
, int child
) const;
127 void setText(Text t
, int child
, const QString
&text
);
129 int navigate(RelationFlag relation
, int m_index
, QAccessibleInterface
**iface
) const;
130 Relation
relationTo(int child
, const QAccessibleInterface
*other
, int otherChild
) const;
132 bool isExpandable() const;
135 int userActionCount(int child
) const;
136 QString
actionText(int action
, Text t
, int child
) const;
137 bool doAction(int action
, int child
, const QVariantList
¶ms
);
141 virtual int columnExtent() const;
142 virtual QList
<QAccessibleInterface
*> columnHeaderCells() const;
143 virtual int columnIndex() const;
144 virtual int rowExtent() const;
145 virtual QList
<QAccessibleInterface
*> rowHeaderCells() const;
146 virtual int rowIndex() const;
147 virtual bool isSelected() const;
148 virtual void rowColumnExtents(int *row
, int *column
, int *rowExtents
, int *columnExtents
, bool *selected
) const;
149 virtual QAccessibleTable2Interface
* table() const;
151 inline int getIndex() const
155 QPointer
<KItemListView
> view
;
158 friend class KItemListViewAccessible
;
159 //friend class QAccessibleTree;
162 class KItemListContainerAccessible
: public QAccessibleWidgetEx
166 explicit KItemListContainerAccessible(KItemListContainer
*);
167 virtual ~KItemListContainerAccessible();
168 int childCount () const;
169 int indexOfChild ( const QAccessibleInterface
* child
) const;
170 int navigate ( RelationFlag relation
, int entry
, QAccessibleInterface
** target
) const;
173 inline KItemListContainer
*container() const
175 return static_cast<KItemListContainer
*>(object());
179 #endif // QT_NO_ITEMVIEWS
181 #endif // QT_NO_ACCESSIBILITY
183 #endif // ACCESSIBLE_ITEMVIEWS_H