4#include <QtGui/qtguiglobal.h>
5#if QT_CONFIG(accessibility)
7#include "qwindowsuiagridprovider.h"
8#include "qwindowsuiamainprovider.h"
9#include "qwindowsuiautils.h"
10#include "qwindowscontext.h"
12#include <QtGui/qaccessible.h>
13#include <QtCore/qloggingcategory.h>
14#include <QtCore/qstring.h>
18using namespace QWindowsUiAutomation;
21QWindowsUiaGridProvider::QWindowsUiaGridProvider(QAccessible::Id id) :
22 QWindowsUiaBaseProvider(id)
26QWindowsUiaGridProvider::~QWindowsUiaGridProvider()
31HRESULT STDMETHODCALLTYPE QWindowsUiaGridProvider::GetItem(
int row,
int column, IRawElementProviderSimple **pRetVal)
33 qCDebug(lcQpaUiAutomation) <<
__FUNCTION__;
39 QAccessibleInterface *accessible = accessibleInterface();
41 return UIA_E_ELEMENTNOTAVAILABLE;
43 QAccessibleTableInterface *tableInterface = accessible->tableInterface();
45 return UIA_E_ELEMENTNOTAVAILABLE;
47 if ((row >= 0) && (row < tableInterface->rowCount()) && (column >= 0) && (column < tableInterface->columnCount())) {
48 if (QAccessibleInterface *cell = tableInterface->cellAt(row, column))
49 *pRetVal = QWindowsUiaMainProvider::providerForAccessible(cell).Detach();
55HRESULT STDMETHODCALLTYPE QWindowsUiaGridProvider::get_RowCount(
int *pRetVal)
57 qCDebug(lcQpaUiAutomation) <<
__FUNCTION__;
63 QAccessibleInterface *accessible = accessibleInterface();
65 return UIA_E_ELEMENTNOTAVAILABLE;
67 QAccessibleTableInterface *tableInterface = accessible->tableInterface();
69 return UIA_E_ELEMENTNOTAVAILABLE;
71 *pRetVal = tableInterface->rowCount();
76HRESULT STDMETHODCALLTYPE QWindowsUiaGridProvider::get_ColumnCount(
int *pRetVal)
78 qCDebug(lcQpaUiAutomation) <<
__FUNCTION__;
84 QAccessibleInterface *accessible = accessibleInterface();
86 return UIA_E_ELEMENTNOTAVAILABLE;
88 QAccessibleTableInterface *tableInterface = accessible->tableInterface();
90 return UIA_E_ELEMENTNOTAVAILABLE;
92 *pRetVal = tableInterface->columnCount();