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_TABLECELL_H
9 #define _ACCESSIBLE_TABLECELL_H
10 
11 #include "AccessibleTableCell.h"
12 #include "ia2AccessibleHypertext.h"
13 #include "IUnknownImpl.h"
14 
15 namespace mozilla {
16 namespace a11y {
17 class TableCellAccessible;
18 
19 class ia2AccessibleTableCell : public IAccessibleTableCell,
20                                public ia2AccessibleHypertext {
21  public:
22   // IUnknown
23   DECL_IUNKNOWN_INHERITED
24   IMPL_IUNKNOWN_REFCOUNTING_INHERITED(ia2AccessibleHypertext)
25 
26   // IAccessibleTableCell
27 
28   virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_table(
29       /* [out, retval] */ IUnknown** table);
30 
31   virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtent(
32       /* [out, retval] */ long* nColumnsSpanned);
33 
34   virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnHeaderCells(
35       /* [out, size_is(,*nColumnHeaderCells,)] */ IUnknown*** cellAccessibles,
36       /* [out, retval] */ long* nColumnHeaderCells);
37 
38   virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnIndex(
39       /* [out, retval] */ long* columnIndex);
40 
41   virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowExtent(
42       /* [out, retval] */ long* nRowsSpanned);
43 
44   virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowHeaderCells(
45       /* [out, size_is(,*nRowHeaderCells,)] */ IUnknown*** cellAccessibles,
46       /* [out, retval] */ long* nRowHeaderCells);
47 
48   virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowIndex(
49       /* [out, retval] */ long* rowIndex);
50 
51   virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowColumnExtents(
52       /* [out] */ long* row,
53       /* [out] */ long* column,
54       /* [out] */ long* rowExtents,
55       /* [out] */ long* columnExtents,
56       /* [out, retval] */ boolean* isSelected);
57 
58   virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isSelected(
59       /* [out, retval] */ boolean* isSelected);
60 
61  protected:
62   using ia2AccessibleHypertext::ia2AccessibleHypertext;
63 
64  private:
65   TableCellAccessible* CellAcc();
66 };
67 
68 }  // namespace a11y
69 }  // namespace mozilla
70 
71 #endif
72