# Accessibility::Selection Interface Reference

`import "Accessibility_Selection.idl";`

## Public Member Functions

Accessible | getSelectedChild (in long selectedChildIndex)
boolean | selectChild (in long childIndex)
boolean | deselectSelectedChild (in long selectedChildIndex)
boolean | isChildSelected (in long childIndex)
boolean | selectAll ()
boolean | clearSelection ()
boolean | deselectChild (in long childIndex)
void | unImplemented ()
void | unImplemented2 ()
void | unImplemented3 ()

## Data Fields

readonly attribute long | nSelectedChildren

## Detailed Description

An interface which indicates that an object exposes a 'selection' model, allowing the selection of one or more of its children. Read-only Selection instances are possible, in which case the interface is used to programmatically determine the selected-ness of its children. A selected child has State::STATE_SELECTED, and a child which may hypothetically be selected (though possibly not programmatically selectable) has State::STATE_SELECTABLE.

Note:
  Events emitted by implementors of Selection include:
  - `"object:selection-changed"` An instance of Selection has undergone a change in the 'selected-ness' of its children, i.e. had a selection added, removed, and/or modified. Usually accompanied by corresponding `"object:state-changed:selected"` events from the corresponding children, unless the children are previously un-queried via AT-SPI and the Selection instance has State::STATE_MANAGES_DESCENDANTS.

## Member Function Documentation

boolean Accessibility::Selection::clearSelection | ( |  | ) |

Attempt to clear all selections (i.e. deselect all children) of a Selection. Not all Selection implementations allow the removal of all selections.

Note:
  this operation may fail if the object must have at least one selected child, if the user does not have permission to change the selection, or if the Selection does not have State::STATE_SENSITIVE.

Returns:
  `True` if the selections were successfully cleared, `False` otherwise.

boolean Accessibility::Selection::deselectChild | ( | in long | childIndex | ) |

Remove a child from the selected children list of a Selection, if the child is currently selected.

Note:
  unlike deselectSelectedChild, `childIndex` is the zero-offset index into the Accessible instance's list of children, not the index into the 'selected child list'.

Parameters:

  | childIndex,: | a long integer (the zero offset index into the Accessible object's list of children) indicating which child of the Selection is to be selected.

Returns:
  `True` if the child was successfully selected, `False` otherwise.

See also:
  deselectSelectedChild

Since:
  AT-SPI 1.8.0

boolean Accessibility::Selection::deselectSelectedChild | ( | in long | selectedChildIndex | ) |

Remove a child to the selected children list of a Selection.

Note:
  `childIndex` is the index in the selected-children list, not the index in the parent container. `selectedChildIndex` in this method, and `childIndex` in Selection::selectChild are asymmettric.

Parameters:

  | selectedChildIndex,: | a long integer indicating which of the selected children of the Selection is to be deselected. The index is a zero-offset index into the 'selected child list', not a zero-offset index into the list of all children of the Selection.

Returns:
  `True` if the child was successfully deselected, `False` otherwise.

See also:
  deselectChild

Accessible Accessibility::Selection::getSelectedChild | ( | in long | selectedChildIndex | ) |

Get the i-th selected Accessible child of a Selection.

Note:
  `selectedChildIndex` refers to the index in the list of 'selected' children as opposed to the more general 'child index' of an object; as such it generally differs from that used in Accessible::getChildAtIndex() or returned by Accessible::getIndexInParent(). `selectedChildIndex` must lie between 0 and Selection::nSelectedChildren-1, inclusive.

Parameters:

  | selectedChildIndex,: | a long integer indicating which of the selected children of an object is being requested.

Returns:
  a pointer to a selected Accessible child object, specified by `selectedChildIndex`.

boolean Accessibility::Selection::isChildSelected | ( | in long | childIndex | ) |

Determine whether a particular child of an Selection implementor is currently selected. Note that `childIndex` is the zero-offset index into the standard Accessible container's list of children.

Parameters:

  | childIndex,: | an index into the Selection's list of children.

Returns:
  `True` if the specified child is currently selected, `False` otherwise.

boolean Accessibility::Selection::selectAll | ( |  | ) |

Attempt to select all of the children of a Selection implementor. Not all Selection implementors support this operation (for instance, implementations which support only "single selection" do not support this operation).

Returns:
  `True` if successful, `False` otherwise.

boolean Accessibility::Selection::selectChild | ( | in long | childIndex | ) |

Add a child to the selected children list of a Selection.

Note:
  For Selection implementors that only allow single selections, this call may result in the replacement of the (single) current selection. The call may return `False` if the child is not selectable (i.e. does not have State::STATE_SELECTABLE), if the user does not have permission to change the selection, or if the Selection instance does not have State::STATE_SENSITIVE.

Parameters:

  | childIndex,: | a long integer indicating which child of the Selection is to be selected.

Returns:
  `True` if the child was successfully selected, `False` otherwise.

void Accessibility::Selection::unImplemented | ( |  | ) |

unImplemented:

placeholders for future expansion.

void Accessibility::Selection::unImplemented2 | ( |  | ) |

void Accessibility::Selection::unImplemented3 | ( |  | ) |

## Field Documentation

readonly attribute long Accessibility::Selection::nSelectedChildren

The number of children of a Selection implementor which are currently selected.

The documentation for this interface was generated from the following file:

- /home/gnome-dev/src/at-spi/idl/Accessibility_Selection.idl