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

## Synopsis

                        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);
    const gchar *       atk_table_get_column_description    (AtkTable *table,
                                                             gint column);
    const 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

## Known Implementations

AtkTable is implemented by AtkNoOpObject.

## Signals

      "column-deleted"                                 : Run Last
      "column-inserted"                                : Run Last
      "column-reordered"                               : Run Last
      "model-changed"                                  : Run Last
      "row-deleted"                                    : Run Last
      "row-inserted"                                   : Run Last
      "row-reordered"                                  : Run Last

## 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

### AtkTable

    typedef struct _AtkTable 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`.

`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. The value -1 is returned if the object at row,column is not a child of table or table does not implement this interface.

### 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_`.

`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, or -1 if the table does not implement this interface

### 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_`.

`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, or -1 if the table does not implement this interface

### 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 ()

    const 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 ()

    const 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.

## Signal Details

### The `"column-deleted"` signal

    void                user_function                      (AtkTable *atktable,
                                                            gint      arg1,
                                                            gint      arg2,
                                                            gpointer  user_data)      : Run Last

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)      : Run Last

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)      : Run Last

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)      : Run Last

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)      : Run Last

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)      : Run Last

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)      : Run Last

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