5#include <QtGui/qtguiglobal.h>
6#if QT_CONFIG(accessibility)
8#include "qwindowsuiagriditemprovider.h"
9#include "qwindowsuiamainprovider.h"
10#include "qwindowsuiautils.h"
11#include "qwindowscontext.h"
13#include <QtGui/qaccessible.h>
14#include <QtCore/qloggingcategory.h>
15#include <QtCore/qstring.h>
19using namespace QWindowsUiAutomation;
22QWindowsUiaGridItemProvider::QWindowsUiaGridItemProvider(QAccessible::Id id) :
23 QWindowsUiaBaseProvider(id)
27QWindowsUiaGridItemProvider::~QWindowsUiaGridItemProvider()
32HRESULT STDMETHODCALLTYPE QWindowsUiaGridItemProvider::get_Row(
int *pRetVal)
34 qCDebug(lcQpaUiAutomation) <<
__FUNCTION__;
40 QAccessibleInterface *accessible = accessibleInterface();
42 return UIA_E_ELEMENTNOTAVAILABLE;
44 QAccessibleTableCellInterface *tableCellInterface = accessible->tableCellInterface();
45 if (!tableCellInterface)
46 return UIA_E_ELEMENTNOTAVAILABLE;
48 *pRetVal = tableCellInterface->rowIndex();
53HRESULT STDMETHODCALLTYPE QWindowsUiaGridItemProvider::get_Column(
int *pRetVal)
55 qCDebug(lcQpaUiAutomation) <<
__FUNCTION__;
61 QAccessibleInterface *accessible = accessibleInterface();
63 return UIA_E_ELEMENTNOTAVAILABLE;
65 QAccessibleTableCellInterface *tableCellInterface = accessible->tableCellInterface();
66 if (!tableCellInterface)
67 return UIA_E_ELEMENTNOTAVAILABLE;
69 *pRetVal = tableCellInterface->columnIndex();
74HRESULT STDMETHODCALLTYPE QWindowsUiaGridItemProvider::get_RowSpan(
int *pRetVal)
76 qCDebug(lcQpaUiAutomation) <<
__FUNCTION__;
82 QAccessibleInterface *accessible = accessibleInterface();
84 return UIA_E_ELEMENTNOTAVAILABLE;
86 QAccessibleTableCellInterface *tableCellInterface = accessible->tableCellInterface();
87 if (!tableCellInterface)
88 return UIA_E_ELEMENTNOTAVAILABLE;
90 *pRetVal = tableCellInterface->rowExtent();
95HRESULT STDMETHODCALLTYPE QWindowsUiaGridItemProvider::get_ColumnSpan(
int *pRetVal)
97 qCDebug(lcQpaUiAutomation) <<
__FUNCTION__;
103 QAccessibleInterface *accessible = accessibleInterface();
105 return UIA_E_ELEMENTNOTAVAILABLE;
107 QAccessibleTableCellInterface *tableCellInterface = accessible->tableCellInterface();
108 if (!tableCellInterface)
109 return UIA_E_ELEMENTNOTAVAILABLE;
111 *pRetVal = tableCellInterface->columnExtent();
116HRESULT STDMETHODCALLTYPE QWindowsUiaGridItemProvider::get_ContainingGrid(IRawElementProviderSimple **pRetVal)
118 qCDebug(lcQpaUiAutomation) <<
__FUNCTION__;
124 QAccessibleInterface *accessible = accessibleInterface();
126 return UIA_E_ELEMENTNOTAVAILABLE;
128 QAccessibleTableCellInterface *tableCellInterface = accessible->tableCellInterface();
129 if (!tableCellInterface)
130 return UIA_E_ELEMENTNOTAVAILABLE;
132 if (QAccessibleInterface *table = tableCellInterface->table()) {
133 *pRetVal = QWindowsUiaMainProvider::providerForAccessible(table).Detach();