summaryrefslogtreecommitdiffstats
path: root/accessible/interfaces/nsIAccessibleTable.idl
diff options
context:
space:
mode:
Diffstat (limited to 'accessible/interfaces/nsIAccessibleTable.idl')
-rw-r--r--accessible/interfaces/nsIAccessibleTable.idl234
1 files changed, 234 insertions, 0 deletions
diff --git a/accessible/interfaces/nsIAccessibleTable.idl b/accessible/interfaces/nsIAccessibleTable.idl
new file mode 100644
index 0000000000..ab4b60a5cc
--- /dev/null
+++ b/accessible/interfaces/nsIAccessibleTable.idl
@@ -0,0 +1,234 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ *
+ * 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/. */
+
+#include "nsISupports.idl"
+
+interface nsIAccessible;
+interface nsIArray;
+
+[scriptable, builtinclass, uuid(cb0bf7b9-117e-40e2-9e46-189c3d43ce4a)]
+interface nsIAccessibleTable : nsISupports
+{
+ /**
+ * Return the caption accessible for the table. For example, html:caption
+ * element of html:table element.
+ */
+ readonly attribute nsIAccessible caption;
+
+ /**
+ * Return summary description for the table. For example, @summary attribute
+ * on html:table element.
+ */
+ readonly attribute AString summary;
+
+ /**
+ * Return columns count in the table.
+ */
+ readonly attribute long columnCount;
+
+ /**
+ * Return rows count in the table.
+ */
+ readonly attribute long rowCount;
+
+ /**
+ * Return the accessible object at the specified row and column in the table.
+ * If both row and column index are valid then the corresponding accessible
+ * object is returned that represents the requested cell regardless of whether
+ * the cell is currently visible (on the screen).
+ *
+ * @param rowIndex [in] the row index to retrieve the cell at
+ * @param columnIndex [in] the column index to retrieve the cell at
+ */
+ nsIAccessible getCellAt(in long rowIndex, in long columnIndex);
+
+ /**
+ * Translate the given row and column indices into the corresponding cell
+ * index.
+ *
+ * @param rowIndex [in] the row index to return cell index at
+ * @param columnIndex [in] the column index to return cell index at
+ */
+ long getCellIndexAt(in long rowIndex, in long columnIndex);
+
+ /**
+ * Translate the given cell index into the corresponding column index.
+ *
+ * @param cellIndex [in] index of the table cell to return column index for
+ */
+ long getColumnIndexAt(in long cellIndex);
+
+ /**
+ * Translate the given cell index into the corresponding row index.
+ *
+ * @param cellIndex [in] index of the table cell to return row index for
+ */
+ long getRowIndexAt(in long cellIndex);
+
+ /**
+ * Translate the given cell index into the corresponding row and column
+ * indices.
+ *
+ * @param cellIndex [in] cell index to return row and column indices for
+ * @param rowIndex [out] row index at the given cell index
+ * @param columnIndex [out] column index at the given cell index
+ */
+ void getRowAndColumnIndicesAt(in long cellIndex,
+ out long rowIndex, out long columnIndex);
+
+ /**
+ * Return the number of columns occupied by the accessible cell at
+ * the specified row and column in the table. The result differs from 1 if
+ * the specified cell spans multiple columns.
+ *
+ * @param row [in] row index of the cell to return the column extent for
+ * @param column [in] column index of the cell to return the column extent
+ * for
+ */
+ long getColumnExtentAt(in long row, in long column);
+
+ /**
+ * Return the number of rows occupied by the accessible cell at the specified
+ * row and column in the table. The result differs from 1 if the specified
+ * cell spans multiple rows.
+ *
+ * @param row [in] row index of the cell to return the column extent for
+ * @param column [in] column index of the cell to return the column extent
+ * for
+ */
+ long getRowExtentAt(in long row, in long column);
+
+ /**
+ * Return the description text of the specified column in the table.
+ *
+ * @param columnIndex [in] the column index to retrieve description for
+ */
+ AString getColumnDescription(in long columnIndex);
+
+ /**
+ * Return the description text of the specified row in the table.
+ *
+ * @param rowIndex [in] the row index to retrieve description for
+ */
+ AString getRowDescription(in long rowIndex);
+
+ /**
+ * Return a boolean value indicating whether the specified column is
+ * selected, i.e. all cells within the column are selected.
+ *
+ * @param columnIndex [in] the column index to determine if it's selected
+ */
+ boolean isColumnSelected(in long columnIndex);
+
+ /**
+ * Return a boolean value indicating whether the specified row is selected,
+ * i.e. all cells within the row are selected.
+ *
+ * @param rowIndex [in] the row index to determine whether it's selected
+ */
+ boolean isRowSelected(in long rowIndex);
+
+ /**
+ * Return a boolean value indicating whether the specified cell is selected.
+ *
+ * @param rowIndex [in] the row index of the cell
+ * @param columnIndex [in] the column index of the cell
+ */
+ boolean isCellSelected(in long rowIndex, in long columnIndex);
+
+ /**
+ * Return the total number of selected cells.
+ */
+ readonly attribute unsigned long selectedCellCount;
+
+ /**
+ * Return the total number of selected columns.
+ */
+ readonly attribute unsigned long selectedColumnCount;
+
+ /**
+ * Return the total number of selected rows.
+ */
+ readonly attribute unsigned long selectedRowCount;
+
+ /**
+ * Return an array of selected cells.
+ */
+ readonly attribute nsIArray selectedCells;
+
+ /**
+ * Return an array of cell indices currently selected.
+ *
+ * @return array of indexes of selected cells
+ */
+ Array<uint32_t> getSelectedCellIndices();
+
+ /**
+ * Return an array of column indices currently selected.
+ *
+ * @return array of indices of selected columns
+ */
+ Array<uint32_t> getSelectedColumnIndices();
+
+ /**
+ * Return an array of row indices currently selected.
+ *
+ * @return array of indices of selected rows
+ */
+ Array<uint32_t> getSelectedRowIndices();
+
+ /**
+ * Use heuristics to determine if table is most likely used for layout.
+ */
+ boolean isProbablyForLayout();
+};
+
+
+[scriptable, builtinclass, uuid(654e296d-fae6-452b-987d-746b20b9514b)]
+interface nsIAccessibleTableCell : nsISupports
+{
+ /**
+ * Return host table accessible.
+ */
+ readonly attribute nsIAccessibleTable table;
+
+ /**
+ * Return column index of this cell.
+ */
+ readonly attribute long columnIndex;
+
+ /**
+ * Return row index of this cell.
+ */
+ readonly attribute long rowIndex;
+
+ /**
+ * Return the number of columns occupied by this cell. The result differs
+ * from 1 if the specified cell spans multiple columns.
+ */
+ readonly attribute long columnExtent;
+
+ /**
+ * Return the number of rows occupied by this accessible cell. The result
+ * differs from 1 if the specified cell spans multiple rows.
+ */
+ readonly attribute long rowExtent;
+
+ /**
+ * Return an array of column header cells for this cell.
+ */
+ readonly attribute nsIArray columnHeaderCells;
+
+ /**
+ * Return an array of row header cells for this cell.
+ */
+ readonly attribute nsIArray rowHeaderCells;
+
+ /**
+ * Return a boolean value indicating whether this cell is selected.
+ */
+ boolean isSelected();
+};