## AccessibleTable Interface AccessibleTable Interface |

## Synopsis

    void                AccessibleTable_ref                 (AccessibleTable *obj);
    void                AccessibleTable_unref               (AccessibleTable *obj);
    Accessible*         AccessibleTable_getAccessibleAt     (AccessibleTable *obj,
                                                             long int row,
                                                             long int column);
    Accessible*         AccessibleTable_getCaption          (AccessibleTable *obj);
    long                AccessibleTable_getColumnAtIndex    (AccessibleTable *obj,
                                                             long int index);
    char*               AccessibleTable_getColumnDescription
                                                            (AccessibleTable *obj,
                                                             long int column);
    long                AccessibleTable_getColumnExtentAt   (AccessibleTable *obj,
                                                             long int row,
                                                             long int column);
    Accessible*         AccessibleTable_getColumnHeader     (AccessibleTable *obj,
                                                             long int column);
    long                AccessibleTable_getIndexAt          (AccessibleTable *obj,
                                                             long int row,
                                                             long int column);
    long                AccessibleTable_getNColumns         (AccessibleTable *obj);
    long                AccessibleTable_getNRows            (AccessibleTable *obj);
    long                AccessibleTable_getNSelectedColumns (AccessibleTable *obj);
    long                AccessibleTable_getNSelectedRows    (AccessibleTable *obj);
    SPIBoolean          AccessibleTable_getRowColumnExtentsAtIndex
                                                            (AccessibleTable *obj,
                                                             long int index,
                                                             long int *row,
                                                             long int *col,
                                                             long int *row_extents,
                                                             long int *col_extents,
                                                             long int *is_selected);
    long                AccessibleTable_getRowAtIndex       (AccessibleTable *obj,
                                                             long int index);
    char*               AccessibleTable_getRowDescription   (AccessibleTable *obj,
                                                             long int row);
    long                AccessibleTable_getRowExtentAt      (AccessibleTable *obj,
                                                             long int row,
                                                             long int column);
    Accessible*         AccessibleTable_getRowHeader        (AccessibleTable *obj,
                                                             long int row);
    long                AccessibleTable_getSelectedRows     (AccessibleTable *obj,
                                                             long int **selectedRows);
    long                AccessibleTable_getSelectedColumns  (AccessibleTable *obj,
                                                             long int **selectedColumns);
    Accessible*         AccessibleTable_getSummary          (AccessibleTable *obj);
    SPIBoolean          AccessibleTable_isColumnSelected    (AccessibleTable *obj,
                                                             long int column);
    SPIBoolean          AccessibleTable_isRowSelected       (AccessibleTable *obj,
                                                             long int row);
    SPIBoolean          AccessibleTable_isSelected          (AccessibleTable *obj,
                                                             long int row,
                                                             long int column);
    SPIBoolean          AccessibleTable_addColumnSelection  (AccessibleTable *obj,
                                                             long int column);
    SPIBoolean          AccessibleTable_addRowSelection     (AccessibleTable *obj,
                                                             long int row);
    SPIBoolean          AccessibleTable_removeColumnSelection
                                                            (AccessibleTable *obj,
                                                             long int column);
    SPIBoolean          AccessibleTable_removeRowSelection  (AccessibleTable *obj,
                                                             long int row);

## Description

## Details

### AccessibleTable_ref ()

    void                AccessibleTable_ref                 (AccessibleTable *obj);

Increment the reference count for an AccessibleTable object.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.

### AccessibleTable_unref ()

    void                AccessibleTable_unref               (AccessibleTable *obj);

Decrement the reference count for an AccessibleTable object.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.

### AccessibleTable_getAccessibleAt ()

    Accessible*         AccessibleTable_getAccessibleAt     (AccessibleTable *obj,
                                                             long int row,
                                                             long int column);

Get the table cell at the specified row and column indices. To get the accessible object at a particular (x, y) screen coordinate, use #`Accessible_getAccessibleAtPoint()`.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
`row` : | the specified table row, zero-indexed.
`column` : | the specified table column, zero-indexed.
Returns : | an Accessible object representing the specified table cell.

### AccessibleTable_getCaption ()

    Accessible*         AccessibleTable_getCaption          (AccessibleTable *obj);

Get an accessible representation of the caption for an AccessibleTable.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
Returns : | an Accessible object that serves as the table's caption.

### AccessibleTable_getColumnAtIndex ()

    long                AccessibleTable_getColumnAtIndex    (AccessibleTable *obj,
                                                             long int index);

Get the table column index occupied by the child at a particular 1-D child index.

`see` #`AccessibleTable_getIndexAt()`, #`AccessibleTable_getRowAtIndex()`

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
`index` : | the specified child index, zero-indexed.
Returns : | a long integer indicating the first column spanned by the child of a table, at the specified 1-D (zero-offset) `index`.

### AccessibleTable_getColumnDescription ()

    char*               AccessibleTable_getColumnDescription
                                                            (AccessibleTable *obj,
                                                             long int column);

Get a text description of a particular table column. This differs from AccessibleTable_getColumnHeader, which returns an Accessible.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
`column` : | the specified table column, zero-indexed.
Returns : | a UTF-8 string describing the specified table column, if available.

### AccessibleTable_getColumnExtentAt ()

    long                AccessibleTable_getColumnExtentAt   (AccessibleTable *obj,
                                                             long int row,
                                                             long int column);

Get the number of columns spanned by the table cell at the specific row and column. (some tables can have cells which span multiple rows and/or columns).

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
`row` : | the specified table row, zero-indexed.
`column` : | the specified table column, zero-indexed.
Returns : | a long integer indicating the number of columns spanned by the specified cell.

### AccessibleTable_getColumnHeader ()

    Accessible*         AccessibleTable_getColumnHeader     (AccessibleTable *obj,
                                                             long int column);

Get the header associated with a table column, if available. This differs from AccessibleTable_getColumnDescription, which returns a string.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
`column` : | the specified table column, zero-indexed.
Returns : | a Accessible representatin of the specified table column, if available.

### AccessibleTable_getIndexAt ()

    long                AccessibleTable_getIndexAt          (AccessibleTable *obj,
                                                             long int row,
                                                             long int column);

Get the 1-D child index corresponding to the specified 2-D row and column indices. To get the accessible object at a particular (x, y) screen coordinate, use #`Accessible_getAccessibleAtPoint()`. `see` #`AccessibleTable_getRowAtIndex()`, #`AccessibleTable_getColumnAtIndex()`

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
`row` : | the specified table row, zero-indexed.
`column` : | the specified table column, zero-indexed.
Returns : | a long integer which serves as the index of a specified cell in the table, in a form usable by #`Accessible_getChildAtIndex()`.

### AccessibleTable_getNColumns ()

    long                AccessibleTable_getNColumns         (AccessibleTable *obj);

Get the number of columns in an AccessibleTable, exclusive of any columns that are programmatically hidden, but inclusive of columns that may be outside of the current scrolling window or viewport.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
Returns : | a long integer indicating the number of columns in the table.

### AccessibleTable_getNRows ()

    long                AccessibleTable_getNRows            (AccessibleTable *obj);

Get the number of rows in an AccessibleTable, exclusive of any rows that are programmatically hidden, but inclusive of rows that may be outside of the current scrolling window or viewport.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
Returns : | a long integer indicating the number of rows in the table.

### AccessibleTable_getNSelectedColumns ()

    long                AccessibleTable_getNSelectedColumns (AccessibleTable *obj);

Query a table to find out how many columns are currently selected. Not all tables support column selection.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
Returns : | a long integer indicating the number of columns currently selected.

### AccessibleTable_getNSelectedRows ()

    long                AccessibleTable_getNSelectedRows    (AccessibleTable *obj);

Query a table to find out how many rows are currently selected. Not all tables support row selection.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
Returns : | a long integer indicating the number of rows currently selected.

### AccessibleTable_getRowColumnExtentsAtIndex ()

    SPIBoolean          AccessibleTable_getRowColumnExtentsAtIndex
                                                            (AccessibleTable *obj,
                                                             long int index,
                                                             long int *row,
                                                             long int *col,
                                                             long int *row_extents,
                                                             long int *col_extents,
                                                             long int *is_selected);

Given a child index, determine the row and column indices and extents, and whether the cell is currently selected. If the child at \c index is not a cell (for instance, if it is a summary, caption, etc.), \c False is returned.

Example: If the Table child at index '6' extends across columns 5 and 6 of row 2 of a Table instance, and is currently selected, then

retval = table::getRowColumnExtentsAtIndex (6, row, col, row_extents, col_extents, is_selected);

will return True, and after the call row, col, row_extents, col_extents, and \c is_selected will contain 2, 5, 1, 2, and True, respectively.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
`index` : | the index of the Table child whose row/column extents are requested.
`row` : | back-filled with the first table row associated with the cell with child index \c index.
`col` : | back-filled with the first table column associated with the cell with child index \c index.
`row_extents` : | back-filled with the number of table rows across which child \c i extends.
`col_extents` : | back-filled with the number of table columns across which child \c i extends.
`is_selected` : | a boolean which is back-filled with \c True if the child at index \c i corresponds to a selected table cell, \c False otherwise.
Returns : | \c True if the index is associated with a valid table cell, \c False if the index does not correspond to a cell. If \c False is returned, the values of the out parameters are undefined. Since AT-SPI 1.7.0

### AccessibleTable_getRowAtIndex ()

    long                AccessibleTable_getRowAtIndex       (AccessibleTable *obj,
                                                             long int index);

Get the table row index occupied by the child at a particular 1-D child index.

`see` #`AccessibleTable_getIndexAt()`, #`AccessibleTable_getColumnAtIndex()`

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
`index` : | the specified child index, zero-indexed.
Returns : | a long integer indicating the first row spanned by the child of a table, at the specified 1-D (zero-offset) `index`.

### AccessibleTable_getRowDescription ()

    char*               AccessibleTable_getRowDescription   (AccessibleTable *obj,
                                                             long int row);

Get a text description of a particular table row. This differs from AccessibleTable_getRowHeader, which returns an Accessible.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
`row` : | the specified table row, zero-indexed.
Returns : | a UTF-8 string describing the specified table row, if available.

### AccessibleTable_getRowExtentAt ()

    long                AccessibleTable_getRowExtentAt      (AccessibleTable *obj,
                                                             long int row,
                                                             long int column);

Get the number of rows spanned by the table cell at the specific row and column. (some tables can have cells which span multiple rows and/or columns).

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
`row` : | the specified table row, zero-indexed.
`column` : | the specified table column, zero-indexed.
Returns : | a long integer indicating the number of rows spanned by the specified cell.

### AccessibleTable_getRowHeader ()

    Accessible*         AccessibleTable_getRowHeader        (AccessibleTable *obj,
                                                             long int row);

Get the header associated with a table row, if available. This differs from AccessibleTable_getRowDescription, which returns a string.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
`row` : | the specified table row, zero-indexed.
Returns : | a Accessible representatin of the specified table row, if available.

### AccessibleTable_getSelectedRows ()

    long                AccessibleTable_getSelectedRows     (AccessibleTable *obj,
                                                             long int **selectedRows);

Query a table for a list of indices of rows which are currently selected.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
`selectedRows` : | a doubly indirected pointer which will be set to the address of an array of long integers, specifying which rows are currently selected.
Returns : | a long integer indicating the length of the array returned in `selectedRows`.

### AccessibleTable_getSelectedColumns ()

    long                AccessibleTable_getSelectedColumns  (AccessibleTable *obj,
                                                             long int **selectedColumns);

Query a table for a list of indices of columns which are currently selected. Not all tables support column selection.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
`selectedColumns` : | a doubly indirected pointer which will be set to the address of an array of long integers, specifying which columns are currently selected.
Returns : | a long integer indicating the length of the array returned in `selectedColumns`.

### AccessibleTable_getSummary ()

    Accessible*         AccessibleTable_getSummary          (AccessibleTable *obj);

Get an accessible object which summarizes the contents of an AccessibleTable.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
Returns : | an Accessible object that serves as the table's summary (often a reduced AccessibleTable).

### AccessibleTable_isColumnSelected ()

    SPIBoolean          AccessibleTable_isColumnSelected    (AccessibleTable *obj,
                                                             long int column);

Determine whether specified table column is selected. Not all tables support column selection.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
`column` : | the zero-indexed column number of the column being queried.
Returns : | TRUE if the specified column is currently selected, FALSE if not.

### AccessibleTable_isRowSelected ()

    SPIBoolean          AccessibleTable_isRowSelected       (AccessibleTable *obj,
                                                             long int row);

Determine whether a table row is selected. Not all tables support row selection.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
`row` : | the zero-indexed row number of the row being queried.
Returns : | TRUE if the specified row is currently selected, FALSE if not.

### AccessibleTable_isSelected ()

    SPIBoolean          AccessibleTable_isSelected          (AccessibleTable *obj,
                                                             long int row,
                                                             long int column);

Determine whether the cell at a specific row and column is selected.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
`row` : | the zero-indexed row of the cell being queried.
`column` : | the zero-indexed column of the cell being queried.
Returns : | TRUE if the specified cell is currently selected, FALSE if not.

### AccessibleTable_addColumnSelection ()

    SPIBoolean          AccessibleTable_addColumnSelection  (AccessibleTable *obj,
                                                             long int column);

Select the specified column, adding it to the current column selection. Not all tables support column selection.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
`column` : | the zero-indexed column number of the column being selected.
Returns : | TRUE if the specified column was successfully selected, FALSE if not.

### AccessibleTable_addRowSelection ()

    SPIBoolean          AccessibleTable_addRowSelection     (AccessibleTable *obj,
                                                             long int row);

Select the specified row, adding it to the current row selection. Not all tables support row selection.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
`row` : | the zero-indexed row number of the row being selected.
Returns : | TRUE if the specified row was successfully selected, FALSE if not.

### AccessibleTable_removeColumnSelection ()

    SPIBoolean          AccessibleTable_removeColumnSelection
                                                            (AccessibleTable *obj,
                                                             long int column);

De-select the specified column, removing it to the current column selection. Not all tables support column selection.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
`column` : | the zero-indexed column number of the column being de-selected.
Returns : | TRUE if the specified column was successfully de-selected, FALSE if not.

### AccessibleTable_removeRowSelection ()

    SPIBoolean          AccessibleTable_removeRowSelection  (AccessibleTable *obj,
                                                             long int row);

De-select the specified row, removing it to the current row selection. Not all tables support row selection.

`obj` : | a pointer to the AccessibleTable implementor on which to operate.
`row` : | the zero-indexed number of the row being deselected.
Returns : | TRUE if the specified row was successfully de-selected, FALSE if not.