mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
bug 777117 - add table cell accessible interface r=davidb
From 5d763ba823c357e2023c0e8b4ee6c7c173433d23 Mon Sep 17 00:00:00 2001 --- accessible/src/generic/ARIAGridAccessible.cpp | 9 +++- accessible/src/generic/ARIAGridAccessible.h | 9 +++- accessible/src/generic/TableCellAccessible.h | 71 +++++++++++++++++++++++++ accessible/src/html/HTMLTableAccessible.cpp | 9 +++- accessible/src/html/HTMLTableAccessible.h | 9 +++- accessible/src/xpcom/xpcAccessibleTableCell.h | 37 +++++++++++++ accessible/src/xul/XULListboxAccessible.cpp | 9 +++- accessible/src/xul/XULListboxAccessible.h | 9 +++- accessible/src/xul/XULTreeGridAccessible.cpp | 9 +++- accessible/src/xul/XULTreeGridAccessible.h | 9 +++- 10 files changed, 168 insertions(+), 12 deletions(-) create mode 100644 accessible/src/generic/TableCellAccessible.h create mode 100644 accessible/src/xpcom/xpcAccessibleTableCell.h
This commit is contained in:
parent
f537e09f60
commit
ba6eb75773
@ -531,7 +531,7 @@ ARIAGridAccessible::SetARIASelected(Accessible* aAccessible,
|
|||||||
|
|
||||||
ARIAGridCellAccessible::
|
ARIAGridCellAccessible::
|
||||||
ARIAGridCellAccessible(nsIContent* aContent, DocAccessible* aDoc) :
|
ARIAGridCellAccessible(nsIContent* aContent, DocAccessible* aDoc) :
|
||||||
HyperTextAccessibleWrap(aContent, aDoc)
|
HyperTextAccessibleWrap(aContent, aDoc), xpcAccessibleTableCell(this)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -789,3 +789,10 @@ ARIAGridCellAccessible::GetAttributesInternal(nsIPersistentProperties* aAttribut
|
|||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ARIAGridCellAccessible::Shutdown()
|
||||||
|
{
|
||||||
|
mTableCell = nsnull;
|
||||||
|
HyperTextAccessibleWrap::Shutdown();
|
||||||
|
}
|
||||||
|
@ -10,7 +10,9 @@
|
|||||||
|
|
||||||
#include "HyperTextAccessibleWrap.h"
|
#include "HyperTextAccessibleWrap.h"
|
||||||
#include "TableAccessible.h"
|
#include "TableAccessible.h"
|
||||||
|
#include "TableCellAccessible.h"
|
||||||
#include "xpcAccessibleTable.h"
|
#include "xpcAccessibleTable.h"
|
||||||
|
#include "xpcAccessibleTableCell.h"
|
||||||
|
|
||||||
namespace mozilla {
|
namespace mozilla {
|
||||||
namespace a11y {
|
namespace a11y {
|
||||||
@ -95,7 +97,9 @@ protected:
|
|||||||
* Accessible for ARIA gridcell and rowheader/columnheader.
|
* Accessible for ARIA gridcell and rowheader/columnheader.
|
||||||
*/
|
*/
|
||||||
class ARIAGridCellAccessible : public HyperTextAccessibleWrap,
|
class ARIAGridCellAccessible : public HyperTextAccessibleWrap,
|
||||||
public nsIAccessibleTableCell
|
public nsIAccessibleTableCell,
|
||||||
|
public TableCellAccessible,
|
||||||
|
public xpcAccessibleTableCell
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ARIAGridCellAccessible(nsIContent* aContent, DocAccessible* aDoc);
|
ARIAGridCellAccessible(nsIContent* aContent, DocAccessible* aDoc);
|
||||||
@ -104,9 +108,10 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIAccessibleTableCell
|
// nsIAccessibleTableCell
|
||||||
NS_DECL_NSIACCESSIBLETABLECELL
|
NS_DECL_OR_FORWARD_NSIACCESSIBLETABLECELL_WITH_XPCACCESSIBLETABLECELL
|
||||||
|
|
||||||
// Accessible
|
// Accessible
|
||||||
|
virtual void Shutdown();
|
||||||
virtual void ApplyARIAState(PRUint64* aState) const;
|
virtual void ApplyARIAState(PRUint64* aState) const;
|
||||||
virtual nsresult GetAttributesInternal(nsIPersistentProperties *aAttributes);
|
virtual nsresult GetAttributesInternal(nsIPersistentProperties *aAttributes);
|
||||||
};
|
};
|
||||||
|
71
accessible/src/generic/TableCellAccessible.h
Normal file
71
accessible/src/generic/TableCellAccessible.h
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||||
|
/* vim: set ts=2 et sw=2 tw=80: */
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#ifndef mozilla_a11y_TableCellAccessible_h__
|
||||||
|
#define mozilla_a11y_TableCellAccessible_h__
|
||||||
|
|
||||||
|
#include "nsTArray.h"
|
||||||
|
#include "mozilla/StandardInteger.h"
|
||||||
|
|
||||||
|
class Accessible;
|
||||||
|
|
||||||
|
namespace mozilla {
|
||||||
|
namespace a11y {
|
||||||
|
|
||||||
|
class TableAccessible;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* abstract interface implemented by table cell accessibles.
|
||||||
|
*/
|
||||||
|
class TableCellAccessible
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the table this cell is in.
|
||||||
|
*/
|
||||||
|
virtual TableAccessible* Table() { return nullptr; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the Column of the table this cell is in.
|
||||||
|
*/
|
||||||
|
virtual uint32_t ColIdx() { return 0; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the the row of the table this cell is in.
|
||||||
|
*/
|
||||||
|
virtual uint32_t RowIdx() { return 0; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the column extent of this cell.
|
||||||
|
*/
|
||||||
|
virtual uint32_t ColExtent() { return 0; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the row extent of this cell.
|
||||||
|
*/
|
||||||
|
virtual uint32_t RowExtent() { return 0; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the column header cells for this cell.
|
||||||
|
*/
|
||||||
|
virtual void ColHeaderCells(nsTArray<Accessible*>* aCells) { }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the row header cells for this cell.
|
||||||
|
*/
|
||||||
|
virtual void RowHeaderCells(nsTArray<Accessible*>* aCells) { }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns true if this cell is selected.
|
||||||
|
*/
|
||||||
|
virtual bool Selected() { return false; }
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // mozilla_a11y_TableCellAccessible_h__
|
@ -45,7 +45,7 @@ using namespace mozilla::a11y;
|
|||||||
|
|
||||||
HTMLTableCellAccessible::
|
HTMLTableCellAccessible::
|
||||||
HTMLTableCellAccessible(nsIContent* aContent, DocAccessible* aDoc) :
|
HTMLTableCellAccessible(nsIContent* aContent, DocAccessible* aDoc) :
|
||||||
HyperTextAccessibleWrap(aContent, aDoc)
|
HyperTextAccessibleWrap(aContent, aDoc), xpcAccessibleTableCell(this)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,6 +59,13 @@ NS_IMPL_ISUPPORTS_INHERITED1(HTMLTableCellAccessible,
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// HTMLTableCellAccessible: Accessible implementation
|
// HTMLTableCellAccessible: Accessible implementation
|
||||||
|
|
||||||
|
void
|
||||||
|
HTMLTableCellAccessible::Shutdown()
|
||||||
|
{
|
||||||
|
mTableCell = nsnull;
|
||||||
|
HyperTextAccessibleWrap::Shutdown();
|
||||||
|
}
|
||||||
|
|
||||||
role
|
role
|
||||||
HTMLTableCellAccessible::NativeRole()
|
HTMLTableCellAccessible::NativeRole()
|
||||||
{
|
{
|
||||||
|
@ -9,7 +9,9 @@
|
|||||||
#include "HyperTextAccessibleWrap.h"
|
#include "HyperTextAccessibleWrap.h"
|
||||||
#include "nsIAccessibleTable.h"
|
#include "nsIAccessibleTable.h"
|
||||||
#include "TableAccessible.h"
|
#include "TableAccessible.h"
|
||||||
|
#include "TableCellAccessible.h"
|
||||||
#include "xpcAccessibleTable.h"
|
#include "xpcAccessibleTable.h"
|
||||||
|
#include "xpcAccessibleTableCell.h"
|
||||||
|
|
||||||
class nsITableLayout;
|
class nsITableLayout;
|
||||||
class nsITableCellLayout;
|
class nsITableCellLayout;
|
||||||
@ -21,7 +23,9 @@ namespace a11y {
|
|||||||
* HTML table cell accessible (html:td).
|
* HTML table cell accessible (html:td).
|
||||||
*/
|
*/
|
||||||
class HTMLTableCellAccessible : public HyperTextAccessibleWrap,
|
class HTMLTableCellAccessible : public HyperTextAccessibleWrap,
|
||||||
public nsIAccessibleTableCell
|
public nsIAccessibleTableCell,
|
||||||
|
public TableCellAccessible,
|
||||||
|
public xpcAccessibleTableCell
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
HTMLTableCellAccessible(nsIContent* aContent, DocAccessible* aDoc);
|
HTMLTableCellAccessible(nsIContent* aContent, DocAccessible* aDoc);
|
||||||
@ -30,9 +34,10 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIAccessibleTableCell
|
// nsIAccessibleTableCell
|
||||||
NS_DECL_NSIACCESSIBLETABLECELL
|
NS_DECL_OR_FORWARD_NSIACCESSIBLETABLECELL_WITH_XPCACCESSIBLETABLECELL
|
||||||
|
|
||||||
// Accessible
|
// Accessible
|
||||||
|
virtual void Shutdown();
|
||||||
virtual a11y::role NativeRole();
|
virtual a11y::role NativeRole();
|
||||||
virtual PRUint64 NativeState();
|
virtual PRUint64 NativeState();
|
||||||
virtual PRUint64 NativeInteractiveState() const;
|
virtual PRUint64 NativeInteractiveState() const;
|
||||||
|
37
accessible/src/xpcom/xpcAccessibleTableCell.h
Normal file
37
accessible/src/xpcom/xpcAccessibleTableCell.h
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||||
|
/* vim: set ts=2 et sw=2 tw=80: */
|
||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#ifndef MOZILLA_A11Y_XPCOM_XPACESSIBLETABLECELL_H_
|
||||||
|
#define MOZILLA_A11Y_XPCOM_XPACESSIBLETABLECELL_H_
|
||||||
|
|
||||||
|
namespace mozilla {
|
||||||
|
namespace a11y {
|
||||||
|
class TableAccessible;
|
||||||
|
class TableCellAccessible;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class xpcAccessibleTableCell
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
xpcAccessibleTableCell(mozilla::a11y::TableCellAccessible* aTableCell) :
|
||||||
|
mTableCell(aTableCell) { }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
mozilla::a11y::TableCellAccessible* mTableCell;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define NS_DECL_OR_FORWARD_NSIACCESSIBLETABLECELL_WITH_XPCACCESSIBLETABLECELL \
|
||||||
|
NS_IMETHOD GetTable(nsIAccessibleTable * *aTable); \
|
||||||
|
NS_IMETHOD GetColumnIndex(PRInt32 *aColumnIndex); \
|
||||||
|
NS_IMETHOD GetRowIndex(PRInt32 *aRowIndex); \
|
||||||
|
NS_IMETHOD GetColumnExtent(PRInt32 *aColumnExtent); \
|
||||||
|
NS_IMETHOD GetRowExtent(PRInt32 *aRowExtent); \
|
||||||
|
NS_IMETHOD GetColumnHeaderCells(nsIArray * *aColumnHeaderCells); \
|
||||||
|
NS_IMETHOD GetRowHeaderCells(nsIArray * *aRowHeaderCells); \
|
||||||
|
NS_IMETHOD IsSelected(bool *_retval );
|
||||||
|
|
||||||
|
#endif // MOZILLA_A11Y_XPCOM_XPACESSIBLETABLECELL_H_
|
@ -727,7 +727,7 @@ XULListitemAccessible::ContainerWidget() const
|
|||||||
|
|
||||||
XULListCellAccessible::
|
XULListCellAccessible::
|
||||||
XULListCellAccessible(nsIContent* aContent, DocAccessible* aDoc) :
|
XULListCellAccessible(nsIContent* aContent, DocAccessible* aDoc) :
|
||||||
HyperTextAccessibleWrap(aContent, aDoc)
|
HyperTextAccessibleWrap(aContent, aDoc), xpcAccessibleTableCell(this)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -934,6 +934,13 @@ XULListCellAccessible::IsSelected(bool* aIsSelected)
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// XULListCellAccessible. Accessible implementation
|
// XULListCellAccessible. Accessible implementation
|
||||||
|
|
||||||
|
void
|
||||||
|
XULListCellAccessible::Shutdown()
|
||||||
|
{
|
||||||
|
mTableCell = nsnull;
|
||||||
|
HyperTextAccessibleWrap::Shutdown();
|
||||||
|
}
|
||||||
|
|
||||||
role
|
role
|
||||||
XULListCellAccessible::NativeRole()
|
XULListCellAccessible::NativeRole()
|
||||||
{
|
{
|
||||||
|
@ -9,7 +9,9 @@
|
|||||||
#include "BaseAccessibles.h"
|
#include "BaseAccessibles.h"
|
||||||
#include "nsIAccessibleTable.h"
|
#include "nsIAccessibleTable.h"
|
||||||
#include "TableAccessible.h"
|
#include "TableAccessible.h"
|
||||||
|
#include "TableCellAccessible.h"
|
||||||
#include "xpcAccessibleTable.h"
|
#include "xpcAccessibleTable.h"
|
||||||
|
#include "xpcAccessibleTableCell.h"
|
||||||
#include "XULMenuAccessible.h"
|
#include "XULMenuAccessible.h"
|
||||||
#include "XULSelectControlAccessible.h"
|
#include "XULSelectControlAccessible.h"
|
||||||
|
|
||||||
@ -151,7 +153,9 @@ private:
|
|||||||
* Class represents xul:listcell.
|
* Class represents xul:listcell.
|
||||||
*/
|
*/
|
||||||
class XULListCellAccessible : public HyperTextAccessibleWrap,
|
class XULListCellAccessible : public HyperTextAccessibleWrap,
|
||||||
public nsIAccessibleTableCell
|
public nsIAccessibleTableCell,
|
||||||
|
public TableCellAccessible,
|
||||||
|
public xpcAccessibleTableCell
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
XULListCellAccessible(nsIContent* aContent, DocAccessible* aDoc);
|
XULListCellAccessible(nsIContent* aContent, DocAccessible* aDoc);
|
||||||
@ -160,9 +164,10 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIAccessibleTableCell
|
// nsIAccessibleTableCell
|
||||||
NS_DECL_NSIACCESSIBLETABLECELL
|
NS_DECL_OR_FORWARD_NSIACCESSIBLETABLECELL_WITH_XPCACCESSIBLETABLECELL
|
||||||
|
|
||||||
// Accessible
|
// Accessible
|
||||||
|
virtual void Shutdown();
|
||||||
virtual nsresult GetAttributesInternal(nsIPersistentProperties *aAttributes);
|
virtual nsresult GetAttributesInternal(nsIPersistentProperties *aAttributes);
|
||||||
virtual a11y::role NativeRole();
|
virtual a11y::role NativeRole();
|
||||||
};
|
};
|
||||||
|
@ -464,7 +464,7 @@ XULTreeGridCellAccessible::
|
|||||||
XULTreeGridRowAccessible* aRowAcc,
|
XULTreeGridRowAccessible* aRowAcc,
|
||||||
nsITreeBoxObject* aTree, nsITreeView* aTreeView,
|
nsITreeBoxObject* aTree, nsITreeView* aTreeView,
|
||||||
PRInt32 aRow, nsITreeColumn* aColumn) :
|
PRInt32 aRow, nsITreeColumn* aColumn) :
|
||||||
LeafAccessible(aContent, aDoc), mTree(aTree),
|
LeafAccessible(aContent, aDoc), xpcAccessibleTableCell(this), mTree(aTree),
|
||||||
mTreeView(aTreeView), mRow(aRow), mColumn(aColumn)
|
mTreeView(aTreeView), mRow(aRow), mColumn(aColumn)
|
||||||
{
|
{
|
||||||
mParent = aRowAcc;
|
mParent = aRowAcc;
|
||||||
@ -498,6 +498,13 @@ NS_IMPL_RELEASE_INHERITED(XULTreeGridCellAccessible, LeafAccessible)
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// XULTreeGridCellAccessible: nsIAccessible implementation
|
// XULTreeGridCellAccessible: nsIAccessible implementation
|
||||||
|
|
||||||
|
void
|
||||||
|
XULTreeGridCellAccessible::Shutdown()
|
||||||
|
{
|
||||||
|
mTableCell = nsnull;
|
||||||
|
LeafAccessible::Shutdown();
|
||||||
|
}
|
||||||
|
|
||||||
Accessible*
|
Accessible*
|
||||||
XULTreeGridCellAccessible::FocusedChild()
|
XULTreeGridCellAccessible::FocusedChild()
|
||||||
{
|
{
|
||||||
|
@ -8,7 +8,9 @@
|
|||||||
|
|
||||||
#include "XULTreeAccessible.h"
|
#include "XULTreeAccessible.h"
|
||||||
#include "TableAccessible.h"
|
#include "TableAccessible.h"
|
||||||
|
#include "TableCellAccessible.h"
|
||||||
#include "xpcAccessibleTable.h"
|
#include "xpcAccessibleTable.h"
|
||||||
|
#include "xpcAccessibleTableCell.h"
|
||||||
|
|
||||||
namespace mozilla {
|
namespace mozilla {
|
||||||
namespace a11y {
|
namespace a11y {
|
||||||
@ -120,7 +122,9 @@ protected:
|
|||||||
}
|
}
|
||||||
|
|
||||||
class XULTreeGridCellAccessible : public LeafAccessible,
|
class XULTreeGridCellAccessible : public LeafAccessible,
|
||||||
public nsIAccessibleTableCell
|
public nsIAccessibleTableCell,
|
||||||
|
public TableCellAccessible,
|
||||||
|
public xpcAccessibleTableCell
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -143,13 +147,14 @@ public:
|
|||||||
NS_IMETHOD DoAction(PRUint8 aIndex);
|
NS_IMETHOD DoAction(PRUint8 aIndex);
|
||||||
|
|
||||||
// nsIAccessibleTableCell
|
// nsIAccessibleTableCell
|
||||||
NS_DECL_NSIACCESSIBLETABLECELL
|
NS_DECL_OR_FORWARD_NSIACCESSIBLETABLECELL_WITH_XPCACCESSIBLETABLECELL
|
||||||
|
|
||||||
// nsAccessNode
|
// nsAccessNode
|
||||||
virtual bool Init();
|
virtual bool Init();
|
||||||
virtual bool IsPrimaryForNode() const;
|
virtual bool IsPrimaryForNode() const;
|
||||||
|
|
||||||
// Accessible
|
// Accessible
|
||||||
|
virtual void Shutdown();
|
||||||
virtual ENameValueFlag Name(nsString& aName);
|
virtual ENameValueFlag Name(nsString& aName);
|
||||||
virtual Accessible* FocusedChild();
|
virtual Accessible* FocusedChild();
|
||||||
virtual nsresult GetAttributesInternal(nsIPersistentProperties* aAttributes);
|
virtual nsresult GetAttributesInternal(nsIPersistentProperties* aAttributes);
|
||||||
|
Loading…
Reference in New Issue
Block a user