## AtkSelection AtkSelection — The ATK interface implemented by container objects whose AtkObject children can be selected. |

## Functions

gboolean | atk_selection_add_selection ()
gboolean | atk_selection_clear_selection ()
AtkObject * | atk_selection_ref_selection ()
gint | atk_selection_get_selection_count ()
gboolean | atk_selection_is_child_selected ()
gboolean | atk_selection_remove_selection ()
gboolean | atk_selection_select_all_selection ()

## Signals

void | selection-changed | Run Last

## Types and Values

| AtkSelection

## Object Hierarchy

        GInterface
        ╰── AtkSelection

## Known Implementations

AtkSelection is implemented by AtkNoOpObject.

## Includes

    #include <atk/atk.h>

## Description

AtkSelection should be implemented by UI components with children which are exposed by atk_object_ref_child and atk_object_get_n_children, if the use of the parent UI component ordinarily involves selection of one or more of the objects corresponding to those AtkObject children - for example, selectable lists.

Note that other types of "selection" (for instance text selection) are accomplished a other ATK interfaces - AtkSelection is limited to the selection/deselection of children.

## Functions

### atk_selection_add_selection ()

    gboolean
    atk_selection_add_selection (AtkSelection *selection,
                                 gint i);

Adds the specified accessible child of the object to the object's selection.

#### Parameters

selection | a GObject instance that implements AtkSelectionIface |
i | a gint specifying the child index. |

#### Returns

TRUE if success, FALSE otherwise.

### atk_selection_clear_selection ()

    gboolean
    atk_selection_clear_selection (AtkSelection *selection);

Clears the selection in the object so that no children in the object are selected.

#### Parameters

selection | a GObject instance that implements AtkSelectionIface |

#### Returns

TRUE if success, FALSE otherwise.

### atk_selection_ref_selection ()

    AtkObject *
    atk_selection_ref_selection (AtkSelection *selection,
                                 gint i);

Gets a reference to the accessible object representing the specified selected child of the object. Note: callers should not rely on `NULL` or on a zero value for indication of whether AtkSelectionIface is implemented, they should use type checking/interface checking macros or the `atk_get_accessible_value()` convenience method.

#### Parameters

selection | a GObject instance that implements AtkSelectionIface |
i | a gint specifying the index in the selection set. (e.g. the ith selection as opposed to the ith child). |

#### Returns

an AtkObject representing the selected accessible, or `NULL` if `selection` does not implement this interface.

[nullable][transfer full]

### atk_selection_get_selection_count ()

    gint
    atk_selection_get_selection_count (AtkSelection *selection);

Gets the number of accessible children currently selected. Note: callers should not rely on `NULL` or on a zero value for indication of whether AtkSelectionIface is implemented, they should use type checking/interface checking macros or the `atk_get_accessible_value()` convenience method.

#### Parameters

selection | a GObject instance that implements AtkSelectionIface |

#### Returns

a gint representing the number of items selected, or 0 if `selection` does not implement this interface.

### atk_selection_is_child_selected ()

    gboolean
    atk_selection_is_child_selected (AtkSelection *selection,
                                     gint i);

Determines if the current child of this object is selected Note: callers should not rely on `NULL` or on a zero value for indication of whether AtkSelectionIface is implemented, they should use type checking/interface checking macros or the `atk_get_accessible_value()` convenience method.

#### Parameters

selection | a GObject instance that implements AtkSelectionIface |
i | a gint specifying the child index. |

#### Returns

a gboolean representing the specified child is selected, or 0 if `selection` does not implement this interface.

### atk_selection_remove_selection ()

    gboolean
    atk_selection_remove_selection (AtkSelection *selection,
                                    gint i);

Removes the specified child of the object from the object's selection.

#### Parameters

selection | a GObject instance that implements AtkSelectionIface |
i | a gint specifying the index in the selection set. (e.g. the ith selection as opposed to the ith child). |

#### Returns

TRUE if success, FALSE otherwise.

### atk_selection_select_all_selection ()

    gboolean
    atk_selection_select_all_selection (AtkSelection *selection);

Causes every child of the object to be selected if the object supports multiple selections.

#### Parameters

selection | a GObject instance that implements AtkSelectionIface |

#### Returns

TRUE if success, FALSE otherwise.

## Types and Values

### AtkSelection

    typedef struct _AtkSelection AtkSelection;

## Signal Details

### The `“selection-changed”` signal

    void
    user_function (AtkSelection *atkselection,
                   gpointer      user_data)

The "selection-changed" signal is emitted by an object which implements AtkSelection interface when the selection changes.

#### Parameters

atkselection | the object which received the signal. |
user_data | user data set when the signal handler was connected. |

Flags: Run Last