mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
442 lines
14 KiB
Plaintext
442 lines
14 KiB
Plaintext
/*************************************************************************
|
|
*
|
|
* File Name (AccessibleTable.idl)
|
|
*
|
|
* IAccessible2 IDL Specification
|
|
*
|
|
* Copyright (c) IBM Corp. 2007
|
|
* Copyright (c) Sun Microsystems, Inc. 2000, 2006
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License version 2.1, as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02110-1301 USA
|
|
*
|
|
************************************************************************/
|
|
|
|
import "objidl.idl";
|
|
import "oaidl.idl";
|
|
import "oleacc.idl";
|
|
import "Accessible2.idl";
|
|
|
|
/// Defines values which specify the kind of change made to a table
|
|
enum IA2TableModelChangeType {
|
|
IA2_TABLE_MODEL_CHANGE_INSERT, // = 0;
|
|
IA2_TABLE_MODEL_CHANGE_DELETE,
|
|
IA2_TABLE_MODEL_CHANGE_UPDATE
|
|
};
|
|
|
|
/// A structure defining the type of and extents of changes made to a table
|
|
typedef struct {
|
|
enum IA2TableModelChangeType type; // insert, delete, update
|
|
long firstRow;
|
|
long lastRow;
|
|
long firstColumn;
|
|
long lastColumn;
|
|
} IA2TableModelChange;
|
|
|
|
/** @brief This interface gives access to a two-dimensional table.
|
|
|
|
All accessible objects that represent cells or cell-clusters of a table have
|
|
to be at the same time children of the table. This is necessary to be able
|
|
to convert row and column indices into child indices and vice versa with the
|
|
methods IAccessibleTable::childIndex, IAccessibleTable::rowIndex, and
|
|
IAccessibleTable::columnIndex.
|
|
|
|
The range of valid coordinates for this interface are implementation dependent.
|
|
However, that range includes at least the intervals from the from the first row
|
|
or column with the index 0 up to the last (but not including) used row or column
|
|
as returned by IAccessibleTable::nRows and IAccessibleTable::nColumns.
|
|
*/
|
|
[object, uuid(35AD8070-C20C-4fb4-B094-F4F7275DD469)]
|
|
interface IAccessibleTable : IUnknown
|
|
{
|
|
|
|
/** @brief Returns the accessible object at the specified row and column in
|
|
the table. This object could be an IAccessible or an IAccessible2.
|
|
@param [in] row
|
|
The row index for which to retrieve the cell.
|
|
@param [in] column
|
|
The column index for which to retrieve the cell.
|
|
@param [out] accessible
|
|
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).
|
|
*/
|
|
[propget] HRESULT accessibleAt
|
|
(
|
|
[in] long row,
|
|
[in] long column,
|
|
[out, retval] IUnknown **accessible
|
|
);
|
|
|
|
/** @brief Returns the caption for the table. The returned object could be
|
|
an IAccessible or an IAccessible2.
|
|
@param [out] accessible
|
|
If the table has a caption then a reference to it is returned, else a NULL
|
|
pointer is returned.
|
|
*/
|
|
[propget] HRESULT caption
|
|
(
|
|
[out, retval] IUnknown **accessible
|
|
);
|
|
|
|
/** @brief Translates the given row and column indices into the corresponding child index.
|
|
@param [in] rowIndex
|
|
Index of the child of the table for which to return the row index.
|
|
@param [in] columnIndex
|
|
Index of the child of the table for which to return the column index.
|
|
@param [out] childIndex
|
|
Returns the row index of the cell of the specified child or the index of
|
|
the first row if the child spans multiple rows.
|
|
*/
|
|
[propget] HRESULT childIndex
|
|
(
|
|
[in] long rowIndex,
|
|
[in] long columnIndex,
|
|
[out, retval] long *childIndex
|
|
);
|
|
|
|
/** @brief Returns the description text of the specified column in the table.
|
|
@param [in] column
|
|
The index of the column for which to retrieve the description.
|
|
@param [out] description
|
|
Returns the description text of the specified row in the table if such a
|
|
description exists. Otherwise a NULL pointer is returned.
|
|
*/
|
|
[propget] HRESULT columnDescription
|
|
(
|
|
[in] long column,
|
|
[out, retval] BSTR *description
|
|
);
|
|
|
|
/** @brief Returns the number of columns occupied by the accessible object
|
|
at the specified row and column in the table.
|
|
|
|
The result differs from 1 if the specified cell spans multiple columns.
|
|
@param [in] row
|
|
Row index of the accessible for which to return the column extent.
|
|
@param [in] column
|
|
Column index of the accessible for which to return the column extent.
|
|
@param [out] nColumnsSpanned
|
|
Returns the column extent of the specified cell.
|
|
*/
|
|
[propget] HRESULT columnExtentAt
|
|
(
|
|
[in] long row,
|
|
[in] long column,
|
|
[out, retval] long *nColumnsSpanned
|
|
);
|
|
|
|
/** @brief Returns the column headers as an IAccessibleTable object.
|
|
|
|
Content and size of the returned table are implementation dependent.
|
|
@param [out] accessibleTable
|
|
The column header
|
|
@param [out] startingRowIndex
|
|
The row index where the header starts, usually 0.
|
|
*/
|
|
[propget] HRESULT columnHeader
|
|
(
|
|
[out] IAccessibleTable **accessibleTable,
|
|
[out, retval] long *startingRowIndex
|
|
);
|
|
|
|
/** @brief Translates the given child index into the corresponding column index.
|
|
@param [in] childIndex
|
|
Index of the child of the table for which to return the column index.
|
|
@param [out] columnIndex
|
|
Returns the column index of the cell of the specified child or the index of
|
|
the first column if the child spans multiple columns.
|
|
*/
|
|
[propget] HRESULT columnIndex
|
|
(
|
|
[in] long childIndex,
|
|
[out, retval] long *columnIndex
|
|
);
|
|
|
|
/** @brief Returns the total number of columns in table
|
|
@param [out] columnCount
|
|
Number of columns in table (including columns outside the current viewport)
|
|
*/
|
|
[propget] HRESULT nColumns
|
|
(
|
|
[out, retval] long *columnCount
|
|
);
|
|
|
|
/** @brief Returns the total number of rows in table
|
|
@param [out] rowCount
|
|
Number of rows in table (including rows outside the current viewport)
|
|
*/
|
|
[propget] HRESULT nRows
|
|
(
|
|
[out, retval] long *rowCount
|
|
);
|
|
|
|
/** @brief Returns the total number of selected children
|
|
@param [out] childCount
|
|
Number of children currently selected
|
|
*/
|
|
[propget] HRESULT nSelectedChildren
|
|
(
|
|
[out, retval] long *childCount
|
|
);
|
|
|
|
/** @brief Returns the total number of selected columns
|
|
@param [out] columnCount
|
|
Number of columns currently selected
|
|
*/
|
|
[propget] HRESULT nSelectedColumns
|
|
(
|
|
[out, retval] long *columnCount
|
|
);
|
|
|
|
/** @brief Returns the total number of selected rows
|
|
@param [out] rowCount
|
|
Number of rows currently selected
|
|
*/
|
|
[propget] HRESULT nSelectedRows
|
|
(
|
|
[out, retval] long *rowCount
|
|
);
|
|
|
|
/** @brief Returns the description text of the specified row in the table.
|
|
@param [in] row
|
|
The index of the row for which to retrieve the description.
|
|
@param [out] description
|
|
Returns the description text of the specified row in the table if such a
|
|
description exists. Otherwise a NULL pointer is returned.
|
|
*/
|
|
[propget] HRESULT rowDescription
|
|
(
|
|
[in] long row,
|
|
[out, retval] BSTR *description
|
|
);
|
|
|
|
/** @brief Returns the number of rows occupied by the accessible oject
|
|
at the specified row and column in the table.
|
|
|
|
The result differs from 1 if the specified cell spans multiple rows.
|
|
@param [in] row
|
|
Row index of the accessible for which to return the column extent.
|
|
@param [in] column
|
|
Column index of the accessible for which to return the column extent.
|
|
@param [out] nRowsSpanned
|
|
Returns the row extent of the specified cell.
|
|
*/
|
|
[propget] HRESULT rowExtentAt
|
|
(
|
|
[in] long row,
|
|
[in] long column,
|
|
[out, retval] long *nRowsSpanned
|
|
);
|
|
|
|
/** @brief Returns the row headers as an IAccessibleTable object.
|
|
|
|
Content and size of the returned table are implementation dependent.
|
|
@param [out] accessibleTable
|
|
The row header.
|
|
@param [out] startingColumnIndex
|
|
The column index where the header starts, usually 0.
|
|
*/
|
|
[propget] HRESULT rowHeader
|
|
(
|
|
[out] IAccessibleTable **accessibleTable,
|
|
[out, retval] long *startingColumnIndex
|
|
);
|
|
|
|
/** @brief Translates the given child index into a row index.
|
|
@param [in] childIndex
|
|
Index in parent (0 based)
|
|
@param [out] rowIndex
|
|
Row index (0 based)
|
|
*/
|
|
[propget] HRESULT rowIndex
|
|
(
|
|
[in] long childIndex,
|
|
[out, retval] long *rowIndex
|
|
);
|
|
|
|
/** @brief Returns a list of child indexes currently selected (0-based).
|
|
@param [in] maxChildren
|
|
Max children requested (possibly from IAccessibleTable::nSelectedChildren)
|
|
@param [out] children
|
|
array of indexes of selected children (each index is 0-based)
|
|
@param [out] nChildren
|
|
Length of array (not more than maxChildren)
|
|
*/
|
|
[propget] HRESULT selectedChildren
|
|
(
|
|
[in] long maxChildren,
|
|
[out, size_is(,maxChildren), length_is(,*nChildren)] long **children,
|
|
[out, retval] long *nChildren
|
|
);
|
|
|
|
/** @brief Returns a list of column indexes currently selected (0-based).
|
|
@param [in] maxColumns
|
|
Max rows requested (possibly from IAccessibleTable::nSelectedColumns)
|
|
@param [out] columns
|
|
array of indexes of selected columns (each index is 0-based)
|
|
@param [out] nColumns
|
|
Length of array (not more than maxColumns)
|
|
*/
|
|
[propget] HRESULT selectedColumns
|
|
(
|
|
[in] long maxColumns,
|
|
[out, size_is(,maxColumns), length_is(,*nColumns)] long **columns,
|
|
[out, retval] long *nColumns
|
|
);
|
|
|
|
/** @brief Returns a list of row indexes currently selected (0-based).
|
|
@param [in] maxRows
|
|
Max rows requested (possibly from IAccessibleTable::nSelectedRows)
|
|
@param [out] rows
|
|
array of indexes of selected rows (each index is 0-based)
|
|
@param [out] nRows
|
|
Length of array (not more than maxRows)
|
|
*/
|
|
[propget] HRESULT selectedRows
|
|
(
|
|
[in] long maxRows,
|
|
[out, size_is(,maxRows), length_is(,*nRows)] long **rows,
|
|
[out, retval] long *nRows
|
|
);
|
|
|
|
/** @brief Returns the summary description of the table. The returned object could be
|
|
an IAccessible or an IAccessible2.
|
|
@param [out] accessible
|
|
Returns a reference to an implementation dependent accessible object
|
|
representing the table's summary or a NULL pointer if the table
|
|
does not support a summary.
|
|
*/
|
|
[propget] HRESULT summary
|
|
(
|
|
[out, retval] IUnknown **accessible
|
|
);
|
|
|
|
/** @brief Returns a boolean value indicating whether the specified column is
|
|
completely selected.
|
|
@param [in] column
|
|
Index of the column for which to determine whether it is selected.
|
|
@param [out] isSelected
|
|
Returns TRUE if the specified column is selected completely and FALSE otherwise.
|
|
*/
|
|
[propget] HRESULT isColumnSelected
|
|
(
|
|
[in] long column,
|
|
[out, retval] boolean *isSelected
|
|
);
|
|
|
|
/** @brief Returns a boolean value indicating whether the specified row is completely
|
|
selected.
|
|
@param [in] row
|
|
Index of the row for which to determine whether it is selected.
|
|
@param [out] isSelected
|
|
Returns TRUE if the specified row is selected completely and FALSE otherwise.
|
|
*/
|
|
[propget] HRESULT isRowSelected
|
|
(
|
|
[in] long row,
|
|
[out, retval] boolean *isSelected
|
|
);
|
|
|
|
/** @brief Returns a boolean value indicating whether the specified cell is selected.
|
|
@param [in] row
|
|
Index of the row for the cell to determine whether it is selected.
|
|
@param [in] column
|
|
Index of the column for the cell to determine whether it is selected.
|
|
@param [out] isSelected
|
|
Returns TRUE if the specified cell is selected and FALSE otherwise.
|
|
*/
|
|
[propget] HRESULT isSelected
|
|
(
|
|
[in] long row,
|
|
[in] long column,
|
|
[out, retval] boolean *isSelected
|
|
);
|
|
|
|
/** @brief Selects a row and unselects all previously selected rows.
|
|
@param [in] row
|
|
Index of the row to be selected.
|
|
*/
|
|
HRESULT selectRow
|
|
(
|
|
[in] long row
|
|
);
|
|
|
|
/** @brief Selects a column and unselects all previously selected columns.
|
|
@param [in] column
|
|
Index of the column to be selected.
|
|
*/
|
|
HRESULT selectColumn
|
|
(
|
|
[in] long column
|
|
);
|
|
|
|
/** @brief Unselects one row, leaving other selected rows selected (if any).
|
|
@param [in] row
|
|
Index of the row to be selected.
|
|
*/
|
|
HRESULT unselectRow
|
|
(
|
|
[in] long row
|
|
);
|
|
|
|
/** @brief Unselects one column, leaving other selected columns selected (if any).
|
|
@param [in] column
|
|
Index of the column to be selected.
|
|
*/
|
|
HRESULT unselectColumn
|
|
(
|
|
[in] long column
|
|
);
|
|
|
|
/** @brief Given a child index, gets the row and column indexes and extents of a cell
|
|
and whether or not it is selected.
|
|
|
|
This is a convenience function. It is not mandatory to implement it.
|
|
@param [in] index
|
|
Index of this child in the parent.
|
|
@param [out] row
|
|
Row index.
|
|
@param [out] column
|
|
Column index.
|
|
@param [out] rowExtents
|
|
Number of cells spanned by this cell in this row.
|
|
@param [out] columnExtents
|
|
Number of cells spanned by this cell in this column.
|
|
@param [out] isSelected
|
|
Indicates if the specified cell is selected.
|
|
*/
|
|
[propget] HRESULT rowColumnExtentsAtIndex
|
|
(
|
|
[in] long index,
|
|
[out] long *row,
|
|
[out] long *column,
|
|
[out] long *rowExtents,
|
|
[out] long *columnExtents,
|
|
[out, retval] boolean *isSelected
|
|
);
|
|
|
|
/** @brief Returns the type and extents describing how a table changed.
|
|
|
|
Provided for use by the IA2_EVENT_TABLE_MODEL_CHANGED event handler.
|
|
@param [out] modelChange
|
|
A struct of (type(insert, delete, update), firstRow, lastRow, firstColumn, lastColumn).
|
|
*/
|
|
[propget] HRESULT modelChange
|
|
(
|
|
[out, retval] IA2TableModelChange *modelChange
|
|
);
|
|
|
|
}
|