## AtkRelationSet AtkRelationSet — A set of AtkRelations, normally the set of AtkRelations which an AtkObject has. |

## Functions

AtkRelationSet * | atk_relation_set_new ()
gboolean | atk_relation_set_contains ()
gboolean | atk_relation_set_contains_target ()
void | atk_relation_set_remove ()
void | atk_relation_set_add ()
gint | atk_relation_set_get_n_relations ()
AtkRelation * | atk_relation_set_get_relation ()
AtkRelation * | atk_relation_set_get_relation_by_type ()
void | atk_relation_set_add_relation_by_type ()

## Types and Values

| AtkRelationSet

## Object Hierarchy

        GObject
        ╰── AtkRelationSet

## Includes

    #include <atk/atk.h>

## Description

The AtkRelationSet held by an object establishes its relationships with objects beyond the normal "parent/child" hierarchical relationships that all user interface objects have. AtkRelationSets establish whether objects are labelled or controlled by other components, share group membership with other components (for instance within a radio-button group), or share content which "flows" between them, among other types of possible relationships.

## Functions

### atk_relation_set_new ()

    AtkRelationSet *
    atk_relation_set_new (void);

Creates a new empty relation set.

#### Returns

a new AtkRelationSet

### atk_relation_set_contains ()

    gboolean
    atk_relation_set_contains (AtkRelationSet *set,
                               AtkRelationType relationship);

Determines whether the relation set contains a relation that matches the specified type.

#### Parameters

set | an AtkRelationSet |
relationship | an AtkRelationType |

#### Returns

`TRUE` if `relationship` is the relationship type of a relation in `set` , `FALSE` otherwise

### atk_relation_set_contains_target ()

    gboolean
    atk_relation_set_contains_target (AtkRelationSet *set,
                                      AtkRelationType relationship,
                                      AtkObject *target);

Determines whether the relation set contains a relation that matches the specified pair formed by type `relationship` and object `target` .

#### Parameters

set | an AtkRelationSet |
relationship | an AtkRelationType |
target | an AtkObject |

#### Returns

`TRUE` if `set` contains a relation with the relationship type `relationship` with an object `target` , `FALSE` otherwise

### atk_relation_set_remove ()

    void
    atk_relation_set_remove (AtkRelationSet *set,
                             AtkRelation *relation);

Removes a relation from the relation set. This function unref's the AtkRelation so it will be deleted unless there is another reference to it.

#### Parameters

set | an AtkRelationSet |
relation | an AtkRelation |

### atk_relation_set_add ()

    void
    atk_relation_set_add (AtkRelationSet *set,
                          AtkRelation *relation);

Add a new relation to the current relation set if it is not already present. This function ref's the AtkRelation so the caller of this function should unref it to ensure that it will be destroyed when the AtkRelationSet is destroyed.

#### Parameters

set | an AtkRelationSet |
relation | an AtkRelation |

### atk_relation_set_get_n_relations ()

    gint
    atk_relation_set_get_n_relations (AtkRelationSet *set);

Determines the number of relations in a relation set.

#### Parameters

set | an AtkRelationSet |

#### Returns

an integer representing the number of relations in the set.

### atk_relation_set_get_relation ()

    AtkRelation *
    atk_relation_set_get_relation (AtkRelationSet *set,
                                   gint i);

Determines the relation at the specified position in the relation set.

#### Parameters

set | an AtkRelationSet |
i | a gint representing a position in the set, starting from 0. |

#### Returns

a AtkRelation, which is the relation at position i in the set.

[transfer none]

### atk_relation_set_get_relation_by_type ()

    AtkRelation *
    atk_relation_set_get_relation_by_type (AtkRelationSet *set,
                                           AtkRelationType relationship);

Finds a relation that matches the specified type.

#### Parameters

set | an AtkRelationSet |
relationship | an AtkRelationType |

#### Returns

an AtkRelation, which is a relation matching the specified type.

[transfer none]

### atk_relation_set_add_relation_by_type ()

    void
    atk_relation_set_add_relation_by_type (AtkRelationSet *set,
                                           AtkRelationType relationship,
                                           AtkObject *target);

Add a new relation of the specified type with the specified target to the current relation set if the relation set does not contain a relation of that type. If it is does contain a relation of that typea the target is added to the relation.

#### Parameters

set | an AtkRelationSet |
relationship | an AtkRelationType |
target | an AtkObject |

Since: 1.9

## Types and Values

### AtkRelationSet

    typedef struct _AtkRelationSet AtkRelationSet;