4#include <QtGui/qtguiglobal.h>
5#if QT_CONFIG(accessibility)
7#include "qwindowsuiagriditemprovider.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;
21QWindowsUiaGridItemProvider::QWindowsUiaGridItemProvider(QAccessible::Id id) :
22 QWindowsUiaBaseProvider(id)
26QWindowsUiaGridItemProvider::~QWindowsUiaGridItemProvider()
31HRESULT STDMETHODCALLTYPE QWindowsUiaGridItemProvider::get_Row(
int *pRetVal)
33 qCDebug(lcQpaUiAutomation) <<
__FUNCTION__;
39 QAccessibleInterface *accessible = accessibleInterface();
41 return UIA_E_ELEMENTNOTAVAILABLE;
43 QAccessibleTableCellInterface *tableCellInterface = accessible->tableCellInterface();
44 if (!tableCellInterface)
45 return UIA_E_ELEMENTNOTAVAILABLE;
47 *pRetVal = tableCellInterface->rowIndex();
52HRESULT STDMETHODCALLTYPE QWindowsUiaGridItemProvider::get_Column(
int *pRetVal)
54 qCDebug(lcQpaUiAutomation) <<
__FUNCTION__;
60 QAccessibleInterface *accessible = accessibleInterface();
62 return UIA_E_ELEMENTNOTAVAILABLE;
64 QAccessibleTableCellInterface *tableCellInterface = accessible->tableCellInterface();
65 if (!tableCellInterface)
66 return UIA_E_ELEMENTNOTAVAILABLE;
68 *pRetVal = tableCellInterface->columnIndex();
73HRESULT STDMETHODCALLTYPE QWindowsUiaGridItemProvider::get_RowSpan(
int *pRetVal)
75 qCDebug(lcQpaUiAutomation) <<
__FUNCTION__;
81 QAccessibleInterface *accessible = accessibleInterface();
83 return UIA_E_ELEMENTNOTAVAILABLE;
85 QAccessibleTableCellInterface *tableCellInterface = accessible->tableCellInterface();
86 if (!tableCellInterface)
87 return UIA_E_ELEMENTNOTAVAILABLE;
89 *pRetVal = tableCellInterface->rowExtent();
94HRESULT STDMETHODCALLTYPE QWindowsUiaGridItemProvider::get_ColumnSpan(
int *pRetVal)
96 qCDebug(lcQpaUiAutomation) <<
__FUNCTION__;
102 QAccessibleInterface *accessible = accessibleInterface();
104 return UIA_E_ELEMENTNOTAVAILABLE;
106 QAccessibleTableCellInterface *tableCellInterface = accessible->tableCellInterface();
107 if (!tableCellInterface)
108 return UIA_E_ELEMENTNOTAVAILABLE;
110 *pRetVal = tableCellInterface->columnExtent();
115HRESULT STDMETHODCALLTYPE QWindowsUiaGridItemProvider::get_ContainingGrid(IRawElementProviderSimple **pRetVal)
117 qCDebug(lcQpaUiAutomation) <<
__FUNCTION__;
123 QAccessibleInterface *accessible = accessibleInterface();
125 return UIA_E_ELEMENTNOTAVAILABLE;
127 QAccessibleTableCellInterface *tableCellInterface = accessible->tableCellInterface();
128 if (!tableCellInterface)
129 return UIA_E_ELEMENTNOTAVAILABLE;
131 if (QAccessibleInterface *table = tableCellInterface->table()) {
132 *pRetVal = QWindowsUiaMainProvider::providerForAccessible(table).Detach();