AccessibleRelations and RelationSets
3
AT-SPI-CSPI Library

# AccessibleRelations and RelationSets

## Synopsis

    enum                AccessibleRelationType;
    void                AccessibleRelation_ref              (AccessibleRelation *obj);
    void                AccessibleRelation_unref            (AccessibleRelation *obj);
    int                 AccessibleRelation_getNTargets      (AccessibleRelation *obj);
    Accessible*         AccessibleRelation_getTarget        (AccessibleRelation *obj,
                                                             int i);
    AccessibleRelationType AccessibleRelation_getRelationType
                                                            (AccessibleRelation *obj);

## Description

## Details

### enum AccessibleRelationType

    typedef enum
    {
      SPI_RELATION_NULL,
      SPI_RELATION_LABEL_FOR,
      SPI_RELATION_LABELED_BY,
      SPI_RELATION_CONTROLLER_FOR,
      SPI_RELATION_CONTROLLED_BY,
      SPI_RELATION_MEMBER_OF,
      SPI_RELATION_NODE_CHILD_OF,
      SPI_RELATION_EXTENDED,
      SPI_RELATION_FLOWS_TO,
      SPI_RELATION_FLOWS_FROM,
      SPI_RELATION_SUBWINDOW_OF,
      SPI_RELATION_EMBEDS,
      SPI_RELATION_EMBEDDED_BY,
      SPI_RELATION_POPUP_FOR,
      SPI_RELATION_PARENT_WINDOW_OF,
      SPI_RELATION_DESCRIPTION_FOR,
      SPI_RELATION_DESCRIBED_BY,
      SPI_RELATION_LAST_DEFINED
    } AccessibleRelationType;

Describes the type of the relation

`SPI_RELATION_NULL`

  Not used, this is an invalid value for this enumeration.

`SPI_RELATION_LABEL_FOR`

  Indicates an object is a label for one or more target objects.

`SPI_RELATION_LABELED_BY`

  Indicates an object is labelled by one or more target objects.

`SPI_RELATION_CONTROLLER_FOR`

  Indicates an object is an controller for one or more target objects.

`SPI_RELATION_CONTROLLED_BY`

  Indicates an object controlled by one or more target objects.

`SPI_RELATION_MEMBER_OF`

  Indicates an object is a member of a group of one or more target objects.

`SPI_RELATION_NODE_CHILD_OF`

  Indicates an object is a cell in a treetable which is displayed because a cell in the same column is expanded and identifies that cell.

`SPI_RELATION_EXTENDED`

  This value indicates that a relation other than those pre-specified by this version of AT-SPI is present.

`SPI_RELATION_FLOWS_TO`

  Indicates that the object has content that flows logically to another AtkObject in a sequential way, (for instance text-flow).

`SPI_RELATION_FLOWS_FROM`

  Indicates that the object has content that flows logically from another AtkObject in a sequential way, (for instance text-flow).

`SPI_RELATION_SUBWINDOW_OF`

  Indicates a subwindow attached to a component but otherwise has no connection in the UI heirarchy to that component.

`SPI_RELATION_EMBEDS`

  Indicates that the object visually embeds another object's content, i.e. this object's content flows around another's content.

`SPI_RELATION_EMBEDDED_BY`

  Inverse of `SPI_RELATION_EMBEDS`, indicates that this object's content is visualy embedded in another object.

`SPI_RELATION_POPUP_FOR`

  Indicates that an object is a popup for another object.

`SPI_RELATION_PARENT_WINDOW_OF`

  Indicates that an object is a parent window of another object.

`SPI_RELATION_DESCRIPTION_FOR`

  Indicates that an object provides descriptive information about another object; more verbose than `SPI_RELATION_LABEL_FOR`.

`SPI_RELATION_DESCRIBED_BY`

  Indicates that another object provides descriptive information about this object; more verbose than `SPI_RELATION_LABELLED_BY`.

`SPI_RELATION_LAST_DEFINED`

  Do not use, this is an implementation detail used to identify the size of this enumeration.

### AccessibleRelation_ref ()

    void                AccessibleRelation_ref              (AccessibleRelation *obj);

Increment the reference count for an AccessibleRelation object.

`obj` :

  a pointer to the AccessibleRelation object on which to operate.

### AccessibleRelation_unref ()

    void                AccessibleRelation_unref            (AccessibleRelation *obj);

Decrement the reference count for an AccessibleRelation object.

`obj` :

  a pointer to the AccessibleRelation object on which to operate.

### AccessibleRelation_getNTargets ()

    int                 AccessibleRelation_getNTargets      (AccessibleRelation *obj);

Get the number of objects which this relationship has as its target objects (the subject is the Accessible from which this AccessibleRelation originated).

`obj` :

  a pointer to the AccessibleRelation object to query.

Returns :

  a short integer indicating how many target objects which the originating Accessible object has the AccessibleRelation relationship with.

### AccessibleRelation_getTarget ()

    Accessible*         AccessibleRelation_getTarget        (AccessibleRelation *obj,
                                                             int i);

Get the `i`-th target of a specified AccessibleRelation relationship.

`obj` :

  a pointer to the AccessibleRelation object to query.

`i` :

  a (zero-index) integer indicating which (of possibly several) target is requested.

Returns :

  an Accessible which is the `i`-th object with which the originating Accessible has relationship specified in the AccessibleRelation object.

### AccessibleRelation_getRelationType ()

    AccessibleRelationType AccessibleRelation_getRelationType
                                                            (AccessibleRelation *obj);

Get the type of relationship represented by an AccessibleRelation.

`obj` :

  a pointer to the AccessibleRelation object to query.

Returns :

  an AccessibleRelationType indicating the type of relation encapsulated in this AccessibleRelation object.