michael@0: /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: /* vim:expandtab:shiftwidth=2:tabstop=2: michael@0: */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #ifndef _ACCESSIBLE_TABLE_H michael@0: #define _ACCESSIBLE_TABLE_H michael@0: michael@0: #include "AccessibleTable.h" michael@0: #include "AccessibleTable2.h" michael@0: michael@0: namespace mozilla { michael@0: namespace a11y { michael@0: michael@0: class TableAccessible; michael@0: michael@0: class ia2AccessibleTable : public IAccessibleTable, michael@0: public IAccessibleTable2 michael@0: { michael@0: public: michael@0: michael@0: // IUnknown michael@0: STDMETHODIMP QueryInterface(REFIID, void**); michael@0: michael@0: // IAccessibleTable michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_accessibleAt( michael@0: /* [in] */ long row, michael@0: /* [in] */ long column, michael@0: /* [retval][out] */ IUnknown **accessible); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caption( michael@0: /* [retval][out] */ IUnknown **accessible); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_childIndex( michael@0: /* [in] */ long rowIndex, michael@0: /* [in] */ long columnIndex, michael@0: /* [retval][out] */ long *childIndex); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnDescription( michael@0: /* [in] */ long column, michael@0: /* [retval][out] */ BSTR *description); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtentAt( michael@0: /* [in] */ long row, michael@0: /* [in] */ long column, michael@0: /* [retval][out] */ long *nColumnsSpanned); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnHeader( michael@0: /* [out] */ IAccessibleTable **accessibleTable, michael@0: /* [retval][out] */ long *startingRowIndex); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnIndex( michael@0: /* [in] */ long childIndex, michael@0: /* [retval][out] */ long *columnIndex); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nColumns( michael@0: /* [retval][out] */ long *columnCount); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRows( michael@0: /* [retval][out] */ long *rowCount); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedChildren( michael@0: /* [retval][out] */ long *childCount); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedColumns( michael@0: /* [retval][out] */ long *columnCount); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedRows( michael@0: /* [retval][out] */ long *rowCount); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowDescription( michael@0: /* [in] */ long row, michael@0: /* [retval][out] */ BSTR *description); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowExtentAt( michael@0: /* [in] */ long row, michael@0: /* [in] */ long column, michael@0: /* [retval][out] */ long *nRowsSpanned); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowHeader( michael@0: /* [out] */ IAccessibleTable **accessibleTable, michael@0: /* [retval][out] */ long *startingColumnIndex); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowIndex( michael@0: /* [in] */ long childIndex, michael@0: /* [retval][out] */ long *rowIndex); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedChildren( michael@0: /* [in] */ long maxChildren, michael@0: /* [length_is][length_is][size_is][size_is][out] */ long **children, michael@0: /* [retval][out] */ long *nChildren); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns( michael@0: /* [in] */ long maxColumns, michael@0: /* [length_is][length_is][size_is][size_is][out] */ long **columns, michael@0: /* [retval][out] */ long *nColumns); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows( michael@0: /* [in] */ long maxRows, michael@0: /* [length_is][length_is][size_is][size_is][out] */ long **rows, michael@0: /* [retval][out] */ long *nRows); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_summary( michael@0: /* [retval][out] */ IUnknown **accessible); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isColumnSelected( michael@0: /* [in] */ long column, michael@0: /* [retval][out] */ boolean *isSelected); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isRowSelected( michael@0: /* [in] */ long row, michael@0: /* [retval][out] */ boolean *isSelected); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isSelected( michael@0: /* [in] */ long row, michael@0: /* [in] */ long column, michael@0: /* [retval][out] */ boolean *isSelected); michael@0: michael@0: virtual HRESULT STDMETHODCALLTYPE selectRow( michael@0: /* [in] */ long row); michael@0: michael@0: virtual HRESULT STDMETHODCALLTYPE selectColumn( michael@0: /* [in] */ long column); michael@0: michael@0: virtual HRESULT STDMETHODCALLTYPE unselectRow( michael@0: /* [in] */ long row); michael@0: michael@0: virtual HRESULT STDMETHODCALLTYPE unselectColumn( michael@0: /* [in] */ long column); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowColumnExtentsAtIndex( michael@0: /* [in] */ long index, michael@0: /* [out] */ long *row, michael@0: /* [out] */ long *column, michael@0: /* [out] */ long *rowExtents, michael@0: /* [out] */ long *columnExtents, michael@0: /* [retval][out] */ boolean *isSelected); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_modelChange( michael@0: /* [retval][out] */ IA2TableModelChange *modelChange); michael@0: michael@0: michael@0: // IAccessibleTable2 michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_cellAt( michael@0: /* [in] */ long row, michael@0: /* [in] */ long column, michael@0: /* [out, retval] */ IUnknown **cell); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedCells( michael@0: /* [out, retval] */ long *cellCount); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedCells( michael@0: /* [out, size_is(,*nSelectedCells,)] */ IUnknown ***cells, michael@0: /* [out, retval] */ long *nSelectedCells); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns( michael@0: /* [out, size_is(,*nColumns)] */ long **selectedColumns, michael@0: /* [out, retval] */ long *nColumns); michael@0: michael@0: virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows( michael@0: /* [out, size_is(,*nRows)] */ long **selectedRows, michael@0: /* [out, retval] */ long *nRows); michael@0: michael@0: protected: michael@0: ia2AccessibleTable(TableAccessible* aTable) : mTable(aTable) {} michael@0: michael@0: TableAccessible* mTable; michael@0: }; michael@0: michael@0: } // namespace a11y michael@0: } // namespace mozilla michael@0: michael@0: #endif