## AtkTable

AtkTable — The ATK interface implemented for UI components which contain tabular or row/column information.

## Synopsis

    struct      AtkTable;
    AtkObject*  atk_table_ref_at                (AtkTable *table,
                                                 gint row,
                                                 gint column);
    gint        atk_table_get_index_at          (AtkTable *table,
                                                 gint row,
                                                 gint column);
    gint        atk_table_get_column_at_index   (AtkTable *table,
                                                 gint index_);
    gint        atk_table_get_row_at_index      (AtkTable *table,
                                                 gint index_);
    gint        atk_table_get_n_columns         (AtkTable *table);
    gint        atk_table_get_n_rows            (AtkTable *table);
    gint        atk_table_get_column_extent_at  (AtkTable *table,
                                                 gint row,
                                                 gint column);
    gint        atk_table_get_row_extent_at     (AtkTable *table,
                                                 gint row,
                                                 gint column);
    AtkObject*  atk_table_get_caption           (AtkTable *table);
    G_CONST_RETURN gchar* atk_table_get_column_description
                                                (AtkTable *table,
                                                 gint column);
    G_CONST_RETURN gchar* atk_table_get_row_description
                                                (AtkTable *table,
                                                 gint row);
    AtkObject*  atk_table_get_column_header     (AtkTable *table,
                                                 gint column);
    AtkObject*  atk_table_get_row_header        (AtkTable *table,
                                                 gint row);
    AtkObject*  atk_table_get_summary           (AtkTable *table);
    void        atk_table_set_caption           (AtkTable *table,
                                                 AtkObject *caption);
    void        atk_table_set_row_description   (AtkTable *table,
                                                 gint row,
                                                 const gchar *description);
    void        atk_table_set_column_description
                                                (AtkTable *table,
                                                 gint column,
                                                 const gchar *description);
    void        atk_table_set_row_header        (AtkTable *table,
                                                 gint row,
                                                 AtkObject *header);
    void        atk_table_set_column_header     (AtkTable *table,
                                                 gint column,
                                                 AtkObject *header);
    void        atk_table_set_summary           (AtkTable *table,
                                                 AtkObject *accessible);
    gint        atk_table_get_selected_columns  (AtkTable *table,
                                                 gint **selected);
    gint        atk_table_get_selected_rows     (AtkTable *table,
                                                 gint **selected);
    gboolean    atk_table_is_column_selected    (AtkTable *table,
                                                 gint column);
    gboolean    atk_table_is_row_selected       (AtkTable *table,
                                                 gint row);
    gboolean    atk_table_is_selected           (AtkTable *table,
                                                 gint row,
                                                 gint column);
    gboolean    atk_table_add_column_selection  (AtkTable *table,
                                                 gint column);
    gboolean    atk_table_add_row_selection     (AtkTable *table,
                                                 gint row);
    gboolean    atk_table_remove_column_selection
                                                (AtkTable *table,
                                                 gint column);
    gboolean    atk_table_remove_row_selection  (AtkTable *table,
                                                 gint row);

## Object Hierarchy

      GInterface
       +----AtkTable

## Implementations

AtkTable is implemented by AtkNoOpObject.

## Signal Prototypes

    "column-deleted"
                void        user_function      (AtkTable *atktable,
                                                gint arg1,
                                                gint arg2,
                                                gpointer user_data);
    "column-inserted"
                void        user_function      (AtkTable *atktable,
                                                gint arg1,
                                                gint arg2,
                                                gpointer user_data);
    "column-reordered"
                void        user_function      (AtkTable *atktable,
                                                gpointer user_data);
    "model-changed"
                void        user_function      (AtkTable *atktable,
                                                gpointer user_data);
    "row-deleted"
                void        user_function      (AtkTable *atktable,
                                                gint arg1,
                                                gint arg2,
                                                gpointer user_data);
    "row-inserted"
                void        user_function      (AtkTable *atktable,
                                                gint arg1,
                                                gint arg2,
                                                gpointer user_data);
    "row-reordered"
                void        user_function      (AtkTable *atktable,
                                                gpointer user_data);

## Description

AtkTable should be implemented by components which present elements ordered via rows and columns. It may also be used to present tree-structured information if the nodes of the trees can be said to contain multiple "columns". Individual elements of an AtkTable are typically referred to as "cells", and these cells are exposed by AtkTable as child AtkObjects of the AtkTable. Both row/column and child-index-based access to these children is provided.

Children of AtkTable are frequently "lightweight" objects, that is, they may not have backing widgets in the host UI toolkit. They are therefore often transient.

Since tables are often very complex, AtkTable includes provision for offering simplified summary information, as well as row and column headers and captions. Headers and captions are AtkObjects which may implement other interfaces (AtkText, AtkImage, etc.) as appropriate. AtkTable summaries may themselves be (simplified) AtkTables, etc.

## Details

### struct AtkTable

    struct AtkTable;

The AtkTable structure does not contain any fields.

### atk_table_ref_at ()

    AtkObject*  atk_table_ref_at                (AtkTable *table,
                                                 gint row,
                                                 gint column);

Get a reference to the table cell at `row`, `column`.

`table` : | a GObject instance that implements AtkTableIface
`row` : | a gint representing a row in `table`
`column` : | a gint representing a column in `table`
Returns : | a AtkObject* representing the referred to accessible

### atk_table_get_index_at ()

    gint        atk_table_get_index_at          (AtkTable *table,
                                                 gint row,
                                                 gint column);

Gets a gint representing the index at the specified `row` and `column`. The value -1 is returned if the object at row,column is not a child of table or table does not implement this interface.

`table` : | a GObject instance that implements AtkTableIface
`row` : | a gint representing a row in `table`
`column` : | a gint representing a column in `table`
Returns : | a gint representing the index at specified position

### atk_table_get_column_at_index ()

    gint        atk_table_get_column_at_index   (AtkTable *table,
                                                 gint index_);

Gets a gint representing the column at the specified `index_`, or -1 if the table does not implement this interface

`table` : | a GObject instance that implements AtkTableInterface
`index_` : | a gint representing an index in `table`
Returns : | a gint representing the column at the specified index.

### atk_table_get_row_at_index ()

    gint        atk_table_get_row_at_index      (AtkTable *table,
                                                 gint index_);

Gets a gint representing the row at the specified `index_`, or -1 if the table does not implement this interface

`table` : | a GObject instance that implements AtkTableInterface
`index_` : | a gint representing an index in `table`
Returns : | a gint representing the row at the specified index.

### atk_table_get_n_columns ()

    gint        atk_table_get_n_columns         (AtkTable *table);

Gets the number of columns in the table.

`table` : | a GObject instance that implements AtkTableIface
Returns : | a gint representing the number of columns, or 0 if value does not implement this interface.

### atk_table_get_n_rows ()

    gint        atk_table_get_n_rows            (AtkTable *table);

Gets the number of rows in the table.

`table` : | a GObject instance that implements AtkTableIface
Returns : | a gint representing the number of rows, or 0 if value does not implement this interface.

### atk_table_get_column_extent_at ()

    gint        atk_table_get_column_extent_at  (AtkTable *table,
                                                 gint row,
                                                 gint column);

Gets the number of columns occupied by the accessible object at the specified `row` and `column` in the `table`.

`table` : | a GObject instance that implements AtkTableIface
`row` : | a gint representing a row in `table`
`column` : | a gint representing a column in `table`
Returns : | a gint representing the column extent at specified position, or 0 if value does not implement this interface.

### atk_table_get_row_extent_at ()

    gint        atk_table_get_row_extent_at     (AtkTable *table,
                                                 gint row,
                                                 gint column);

Gets the number of rows occupied by the accessible object at a specified `row` and `column` in the `table`.

`table` : | a GObject instance that implements AtkTableIface
`row` : | a gint representing a row in `table`
`column` : | a gint representing a column in `table`
Returns : | a gint representing the row extent at specified position, or 0 if value does not implement this interface.

### atk_table_get_caption ()

    AtkObject*  atk_table_get_caption           (AtkTable *table);

Gets the caption for the `table`.

`table` : | a GObject instance that implements AtkTableInterface
Returns : | a AtkObject* representing the table caption, or `NULL` if value does not implement this interface.

### atk_table_get_column_description ()

    G_CONST_RETURN gchar* atk_table_get_column_description
                                                (AtkTable *table,
                                                 gint column);

Gets the description text of the specified `column` in the table

`table` : | a GObject instance that implements AtkTableIface
`column` : | a gint representing a column in `table`
Returns : | a gchar* representing the column description, or `NULL` if value does not implement this interface.

### atk_table_get_row_description ()

    G_CONST_RETURN gchar* atk_table_get_row_description
                                                (AtkTable *table,
                                                 gint row);

Gets the description text of the specified row in the table

`table` : | a GObject instance that implements AtkTableIface
`row` : | a gint representing a row in `table`
Returns : | a gchar* representing the row description, or `NULL` if value does not implement this interface.

### atk_table_get_column_header ()

    AtkObject*  atk_table_get_column_header     (AtkTable *table,
                                                 gint column);

Gets the column header of a specified column in an accessible table.

`table` : | a GObject instance that implements AtkTableIface
`column` : | a gint representing a column in the table
Returns : | a AtkObject* representing the specified column header, or `NULL` if value does not implement this interface.

### atk_table_get_row_header ()

    AtkObject*  atk_table_get_row_header        (AtkTable *table,
                                                 gint row);

Gets the row header of a specified row in an accessible table.

`table` : | a GObject instance that implements AtkTableIface
`row` : | a gint representing a row in the table
Returns : | a AtkObject* representing the specified row header, or `NULL` if value does not implement this interface.

### atk_table_get_summary ()

    AtkObject*  atk_table_get_summary           (AtkTable *table);

Gets the summary description of the table.

`table` : | a GObject instance that implements AtkTableIface
Returns : | a AtkObject* representing a summary description of the table, or zero if value does not implement this interface.

### atk_table_set_caption ()

    void        atk_table_set_caption           (AtkTable *table,
                                                 AtkObject *caption);

Sets the caption for the table.

`table` : | a GObject instance that implements AtkTableIface
`caption` : | a AtkObject representing the caption to set for `table`

### atk_table_set_row_description ()

    void        atk_table_set_row_description   (AtkTable *table,
                                                 gint row,
                                                 const gchar *description);

Sets the description text for the specified `row` of `table`.

`table` : | a GObject instance that implements AtkTableIface
`row` : | a gint representing a row in `table`
`description` : | a gchar representing the description text to set for the specified `row` of `table`

### atk_table_set_column_description ()

    void        atk_table_set_column_description
                                                (AtkTable *table,
                                                 gint column,
                                                 const gchar *description);

Sets the description text for the specified `column` of the `table`.

`table` : | a GObject instance that implements AtkTableIface
`column` : | a gint representing a column in `table`
`description` : | a gchar representing the description text to set for the specified `column` of the `table`

### atk_table_set_row_header ()

    void        atk_table_set_row_header        (AtkTable *table,
                                                 gint row,
                                                 AtkObject *header);

Sets the specified row header to `header`.

`table` : | a GObject instance that implements AtkTableIface
`row` : | a gint representing a row in `table`
`header` : | an AtkTable

### atk_table_set_column_header ()

    void        atk_table_set_column_header     (AtkTable *table,
                                                 gint column,
                                                 AtkObject *header);

Sets the specified column header to `header`.

`table` : | a GObject instance that implements AtkTableIface
`column` : | a gint representing a column in `table`
`header` : | an AtkTable

### atk_table_set_summary ()

    void        atk_table_set_summary           (AtkTable *table,
                                                 AtkObject *accessible);

Sets the summary description of the table.

`table` : | a GObject instance that implements AtkTableIface
`accessible` : | an AtkObject representing the summary description to set for `table`

### atk_table_get_selected_columns ()

    gint        atk_table_get_selected_columns  (AtkTable *table,
                                                 gint **selected);

Gets the selected columns of the table by initializing **selected with the selected column numbers. This array should be freed by the caller.

`table` : | a GObject instance that implements AtkTableIface
`selected` : | a gint** that is to contain the selected columns numbers
Returns : | a gint representing the number of selected columns, or `0` if value does not implement this interface.

### atk_table_get_selected_rows ()

    gint        atk_table_get_selected_rows     (AtkTable *table,
                                                 gint **selected);

Gets the selected rows of the table by initializing **selected with the selected row numbers. This array should be freed by the caller.

`table` : | a GObject instance that implements AtkTableIface
`selected` : | a gint** that is to contain the selected row numbers
Returns : | a gint representing the number of selected rows, or zero if value does not implement this interface.

### atk_table_is_column_selected ()

    gboolean    atk_table_is_column_selected    (AtkTable *table,
                                                 gint column);

Gets a boolean value indicating whether the specified `column` is selected

`table` : | a GObject instance that implements AtkTableIface
`column` : | a gint representing a column in `table`
Returns : | a gboolean representing if the column is selected, or 0 if value does not implement this interface.

### atk_table_is_row_selected ()

    gboolean    atk_table_is_row_selected       (AtkTable *table,
                                                 gint row);

Gets a boolean value indicating whether the specified `row` is selected

`table` : | a GObject instance that implements AtkTableIface
`row` : | a gint representing a row in `table`
Returns : | a gboolean representing if the row is selected, or 0 if value does not implement this interface.

### atk_table_is_selected ()

    gboolean    atk_table_is_selected           (AtkTable *table,
                                                 gint row,
                                                 gint column);

Gets a boolean value indicating whether the accessible object at the specified `row` and `column` is selected

`table` : | a GObject instance that implements AtkTableIface
`row` : | a gint representing a row in `table`
`column` : | a gint representing a column in `table`
Returns : | a gboolean representing if the cell is selected, or 0 if value does not implement this interface.

### atk_table_add_column_selection ()

    gboolean    atk_table_add_column_selection  (AtkTable *table,
                                                 gint column);

Adds the specified `column` to the selection.

`table` : | a GObject instance that implements AtkTableIface
`column` : | a gint representing a column in `table`
Returns : | a gboolean representing if the column was successfully added to the selection, or 0 if value does not implement this interface.

### atk_table_add_row_selection ()

    gboolean    atk_table_add_row_selection     (AtkTable *table,
                                                 gint row);

Adds the specified `row` to the selection.

`table` : | a GObject instance that implements AtkTableIface
`row` : | a gint representing a row in `table`
Returns : | a gboolean representing if row was successfully added to selection, or 0 if value does not implement this interface.

### atk_table_remove_column_selection ()

    gboolean    atk_table_remove_column_selection
                                                (AtkTable *table,
                                                 gint column);

Adds the specified `column` to the selection.

`table` : | a GObject instance that implements AtkTableIface
`column` : | a gint representing a column in `table`
Returns : | a gboolean representing if the column was successfully removed from the selection, or 0 if value does not implement this interface.

### atk_table_remove_row_selection ()

    gboolean    atk_table_remove_row_selection  (AtkTable *table,
                                                 gint row);

Removes the specified `row` from the selection.

`table` : | a GObject instance that implements AtkTableIface
`row` : | a gint representing a row in `table`
Returns : | a gboolean representing if the row was successfully removed from the selection, or 0 if value does not implement this interface.

## Signals

### The "column-deleted" signal

    void        user_function                  (AtkTable *atktable,
                                                gint arg1,
                                                gint arg2,
                                                gpointer user_data);

The "column-deleted" signal is emitted by an object which implements the AtkTable interface when a column is deleted.

`atktable` : | the object which received the signal.
`arg1` : | The index of the first column deleted.
`arg2` : | The number of columns deleted.
`user_data` : | user data set when the signal handler was connected.

### The "column-inserted" signal

    void        user_function                  (AtkTable *atktable,
                                                gint arg1,
                                                gint arg2,
                                                gpointer user_data);

The "column-inserted" signal is emitted by an object which implements the AtkTable interface when a column is inserted.

`atktable` : | the object which received the signal.
`arg1` : | The index of the column inserted.
`arg2` : | The number of colums inserted.
`user_data` : | user data set when the signal handler was connected.

### The "column-reordered" signal

    void        user_function                  (AtkTable *atktable,
                                                gpointer user_data);

The "column-reordered" signal is emitted by an object which implements the AtkTable interface when the columns are reordered.

`atktable` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.

### The "model-changed" signal

    void        user_function                  (AtkTable *atktable,
                                                gpointer user_data);

The "model-changed" signal is emitted by an object which implements the AtkTable interface when the model displayed by the table changes.

`atktable` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.

### The "row-deleted" signal

    void        user_function                  (AtkTable *atktable,
                                                gint arg1,
                                                gint arg2,
                                                gpointer user_data);

The "row-deleted" signal is emitted by an object which implements the AtkTable interface when a column is inserted.

`atktable` : | the object which received the signal.
`arg1` : | The index of the first row deleted.
`arg2` : | The number of rows deleted.
`user_data` : | user data set when the signal handler was connected.

### The "row-inserted" signal

    void        user_function                  (AtkTable *atktable,
                                                gint arg1,
                                                gint arg2,
                                                gpointer user_data);

The "row-inserted" signal is emitted by an object which implements the AtkTable interface when a column is inserted.

`atktable` : | the object which received the signal.
`arg1` : | The index of the first row deleted.
`arg2` : | The number of rows deleted.
`user_data` : | user data set when the signal handler was connected.

### The "row-reordered" signal

    void        user_function                  (AtkTable *atktable,
                                                gpointer user_data);

The "row-reordered" signal is emitted by an object which implements the AtkTable interface when the columns are reordered.

`atktable` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.

## See Also

AtkObject, ATK_STATE_TRANSIENT