ia2AccessibleTable.h (6295B)
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* vim:expandtab:shiftwidth=2:tabstop=2: 3 */ 4 /* This Source Code Form is subject to the terms of the Mozilla Public 5 * License, v. 2.0. If a copy of the MPL was not distributed with this 6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 7 8 #ifndef _ACCESSIBLE_TABLE_H 9 #define _ACCESSIBLE_TABLE_H 10 11 #include "AccessibleTable.h" 12 #include "AccessibleTable2.h" 13 #include "ia2AccessibleHypertext.h" 14 #include "IUnknownImpl.h" 15 #include "UiaGrid.h" 16 17 namespace mozilla { 18 namespace a11y { 19 20 class TableAccessible; 21 22 class ia2AccessibleTable : public IAccessibleTable, 23 public IAccessibleTable2, 24 public UiaGrid, 25 public ia2AccessibleHypertext { 26 public: 27 // IUnknown 28 DECL_IUNKNOWN_INHERITED 29 IMPL_IUNKNOWN_REFCOUNTING_INHERITED(ia2AccessibleHypertext) 30 31 // IAccessibleTable 32 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_accessibleAt( 33 /* [in] */ long row, 34 /* [in] */ long column, 35 /* [retval][out] */ IUnknown** accessible); 36 37 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caption( 38 /* [retval][out] */ IUnknown** accessible); 39 40 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_childIndex( 41 /* [in] */ long rowIndex, 42 /* [in] */ long columnIndex, 43 /* [retval][out] */ long* childIndex); 44 45 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnDescription( 46 /* [in] */ long column, 47 /* [retval][out] */ BSTR* description); 48 49 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtentAt( 50 /* [in] */ long row, 51 /* [in] */ long column, 52 /* [retval][out] */ long* nColumnsSpanned); 53 54 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnHeader( 55 /* [out] */ IAccessibleTable** accessibleTable, 56 /* [retval][out] */ long* startingRowIndex); 57 58 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnIndex( 59 /* [in] */ long childIndex, 60 /* [retval][out] */ long* columnIndex); 61 62 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nColumns( 63 /* [retval][out] */ long* columnCount); 64 65 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRows( 66 /* [retval][out] */ long* rowCount); 67 68 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedChildren( 69 /* [retval][out] */ long* childCount); 70 71 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedColumns( 72 /* [retval][out] */ long* columnCount); 73 74 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedRows( 75 /* [retval][out] */ long* rowCount); 76 77 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowDescription( 78 /* [in] */ long row, 79 /* [retval][out] */ BSTR* description); 80 81 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowExtentAt( 82 /* [in] */ long row, 83 /* [in] */ long column, 84 /* [retval][out] */ long* nRowsSpanned); 85 86 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowHeader( 87 /* [out] */ IAccessibleTable** accessibleTable, 88 /* [retval][out] */ long* startingColumnIndex); 89 90 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowIndex( 91 /* [in] */ long childIndex, 92 /* [retval][out] */ long* rowIndex); 93 94 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedChildren( 95 /* [in] */ long maxChildren, 96 /* [length_is][length_is][size_is][size_is][out] */ long** children, 97 /* [retval][out] */ long* nChildren); 98 99 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns( 100 /* [in] */ long maxColumns, 101 /* [length_is][length_is][size_is][size_is][out] */ long** columns, 102 /* [retval][out] */ long* nColumns); 103 104 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows( 105 /* [in] */ long maxRows, 106 /* [length_is][length_is][size_is][size_is][out] */ long** rows, 107 /* [retval][out] */ long* nRows); 108 109 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_summary( 110 /* [retval][out] */ IUnknown** accessible); 111 112 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isColumnSelected( 113 /* [in] */ long column, 114 /* [retval][out] */ boolean* isSelected); 115 116 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isRowSelected( 117 /* [in] */ long row, 118 /* [retval][out] */ boolean* isSelected); 119 120 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isSelected( 121 /* [in] */ long row, 122 /* [in] */ long column, 123 /* [retval][out] */ boolean* isSelected); 124 125 virtual HRESULT STDMETHODCALLTYPE selectRow( 126 /* [in] */ long row); 127 128 virtual HRESULT STDMETHODCALLTYPE selectColumn( 129 /* [in] */ long column); 130 131 virtual HRESULT STDMETHODCALLTYPE unselectRow( 132 /* [in] */ long row); 133 134 virtual HRESULT STDMETHODCALLTYPE unselectColumn( 135 /* [in] */ long column); 136 137 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowColumnExtentsAtIndex( 138 /* [in] */ long index, 139 /* [out] */ long* row, 140 /* [out] */ long* column, 141 /* [out] */ long* rowExtents, 142 /* [out] */ long* columnExtents, 143 /* [retval][out] */ boolean* isSelected); 144 145 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_modelChange( 146 /* [retval][out] */ IA2TableModelChange* modelChange); 147 148 // IAccessibleTable2 149 150 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_cellAt( 151 /* [in] */ long row, 152 /* [in] */ long column, 153 /* [out, retval] */ IUnknown** cell); 154 155 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedCells( 156 /* [out, retval] */ long* cellCount); 157 158 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedCells( 159 /* [out, size_is(,*nSelectedCells,)] */ IUnknown*** cells, 160 /* [out, retval] */ long* nSelectedCells); 161 162 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns( 163 /* [out, size_is(,*nColumns)] */ long** selectedColumns, 164 /* [out, retval] */ long* nColumns); 165 166 virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows( 167 /* [out, size_is(,*nRows)] */ long** selectedRows, 168 /* [out, retval] */ long* nRows); 169 170 protected: 171 using ia2AccessibleHypertext::ia2AccessibleHypertext; 172 173 private: 174 TableAccessible* TableAcc(); 175 }; 176 177 } // namespace a11y 178 } // namespace mozilla 179 180 #endif