1
<refentry id="AtkRelationSet">
3
<refentrytitle role="top_of_page" id="AtkRelationSet.top_of_page">AtkRelationSet</refentrytitle>
4
<manvolnum>3</manvolnum>
5
<refmiscinfo>ATK Library</refmiscinfo>
9
<refname>AtkRelationSet</refname>
10
<refpurpose>A set of AtkRelations, normally the set of AtkRelations which an AtkObject has.</refpurpose>
13
<refsynopsisdiv id="AtkRelationSet.synopsis" role="synopsis">
14
<title role="synopsis.title">Synopsis</title>
17
<link linkend="AtkRelationSet-struct">AtkRelationSet</link>;
18
<link linkend="AtkRelationSet">AtkRelationSet</link>* <link linkend="atk-relation-set-new">atk_relation_set_new</link> (void);
19
<link linkend="gboolean">gboolean</link> <link linkend="atk-relation-set-contains">atk_relation_set_contains</link> (<link linkend="AtkRelationSet">AtkRelationSet</link> *set,
20
<link linkend="AtkRelationType">AtkRelationType</link> relationship);
21
<link linkend="void">void</link> <link linkend="atk-relation-set-remove">atk_relation_set_remove</link> (<link linkend="AtkRelationSet">AtkRelationSet</link> *set,
22
<link linkend="AtkRelation">AtkRelation</link> *relation);
23
<link linkend="void">void</link> <link linkend="atk-relation-set-add">atk_relation_set_add</link> (<link linkend="AtkRelationSet">AtkRelationSet</link> *set,
24
<link linkend="AtkRelation">AtkRelation</link> *relation);
25
<link linkend="gint">gint</link> <link linkend="atk-relation-set-get-n-relations">atk_relation_set_get_n_relations</link> (<link linkend="AtkRelationSet">AtkRelationSet</link> *set);
26
<link linkend="AtkRelation">AtkRelation</link>* <link linkend="atk-relation-set-get-relation">atk_relation_set_get_relation</link> (<link linkend="AtkRelationSet">AtkRelationSet</link> *set,
27
<link linkend="gint">gint</link> i);
28
<link linkend="AtkRelation">AtkRelation</link>* <link linkend="atk-relation-set-get-relation-by-type">atk_relation_set_get_relation_by_type</link>
29
(<link linkend="AtkRelationSet">AtkRelationSet</link> *set,
30
<link linkend="AtkRelationType">AtkRelationType</link> relationship);
31
<link linkend="void">void</link> <link linkend="atk-relation-set-add-relation-by-type">atk_relation_set_add_relation_by_type</link>
32
(<link linkend="AtkRelationSet">AtkRelationSet</link> *set,
33
<link linkend="AtkRelationType">AtkRelationType</link> relationship,
34
<link linkend="AtkObject">AtkObject</link> *target);
38
<refsect1 id="AtkRelationSet.object-hierarchy" role="object_hierarchy">
39
<title role="object_hierarchy.title">Object Hierarchy</title>
41
<link linkend="GObject">GObject</link>
53
<refsect1 id="AtkRelationSet.description" role="desc">
54
<title role="desc.title">Description</title>
56
The AtkRelationSet held by an object establishes its relationships with
57
objects beyond the normal "parent/child" hierarchical relationships that all
58
user interface objects have. AtkRelationSets establish whether objects are
59
labelled or controlled by other components, share group membership with other
60
components (for instance within a radio-button group), or share content which
61
"flows" between them, among other types of possible relationships.
65
<refsect1 id="AtkRelationSet.details" role="details">
66
<title role="details.title">Details</title>
67
<refsect2 id="AtkRelationSet-struct" role="struct">
68
<title>AtkRelationSet</title>
69
<indexterm zone="AtkRelationSet-struct"><primary sortas="AtkRelationSet">AtkRelationSet</primary></indexterm><programlisting>typedef struct _AtkRelationSet AtkRelationSet;</programlisting>
71
The AtkRelationSet structure should not be accessed directly.
73
<refsect2 id="atk-relation-set-new" role="function">
74
<title>atk_relation_set_new ()</title>
75
<indexterm zone="atk-relation-set-new"><primary sortas="atk_relation_set_new">atk_relation_set_new</primary></indexterm><programlisting><link linkend="AtkRelationSet">AtkRelationSet</link>* atk_relation_set_new (void);</programlisting>
77
Creates a new empty relation set.</para>
79
</para><variablelist role="params">
80
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a new <link linkend="AtkRelationSet"><type>AtkRelationSet</type></link>
81
</simpara></listitem></varlistentry>
82
</variablelist></refsect2>
83
<refsect2 id="atk-relation-set-contains" role="function">
84
<title>atk_relation_set_contains ()</title>
85
<indexterm zone="atk-relation-set-contains"><primary sortas="atk_relation_set_contains">atk_relation_set_contains</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> atk_relation_set_contains (<link linkend="AtkRelationSet">AtkRelationSet</link> *set,
86
<link linkend="AtkRelationType">AtkRelationType</link> relationship);</programlisting>
88
Determines whether the relation set contains a relation that matches the
89
specified type.</para>
91
</para><variablelist role="params">
92
<varlistentry><term><parameter>set</parameter> :</term>
93
<listitem><simpara> an <link linkend="AtkRelationSet"><type>AtkRelationSet</type></link>
94
</simpara></listitem></varlistentry>
95
<varlistentry><term><parameter>relationship</parameter> :</term>
96
<listitem><simpara> an <link linkend="AtkRelationType"><type>AtkRelationType</type></link>
97
</simpara></listitem></varlistentry>
98
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if <parameter>relationship</parameter> is the relationship type of a relation
99
in <parameter>set</parameter>, <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise
100
</simpara></listitem></varlistentry>
101
</variablelist></refsect2>
102
<refsect2 id="atk-relation-set-remove" role="function">
103
<title>atk_relation_set_remove ()</title>
104
<indexterm zone="atk-relation-set-remove"><primary sortas="atk_relation_set_remove">atk_relation_set_remove</primary></indexterm><programlisting><link linkend="void">void</link> atk_relation_set_remove (<link linkend="AtkRelationSet">AtkRelationSet</link> *set,
105
<link linkend="AtkRelation">AtkRelation</link> *relation);</programlisting>
107
Removes a relation from the relation set.
108
This function unref's the <link linkend="AtkRelation"><type>AtkRelation</type></link> so it will be deleted unless there
109
is another reference to it.</para>
111
</para><variablelist role="params">
112
<varlistentry><term><parameter>set</parameter> :</term>
113
<listitem><simpara> an <link linkend="AtkRelationSet"><type>AtkRelationSet</type></link>
114
</simpara></listitem></varlistentry>
115
<varlistentry><term><parameter>relation</parameter> :</term>
116
<listitem><simpara> an <link linkend="AtkRelation"><type>AtkRelation</type></link>
117
</simpara></listitem></varlistentry>
118
</variablelist></refsect2>
119
<refsect2 id="atk-relation-set-add" role="function">
120
<title>atk_relation_set_add ()</title>
121
<indexterm zone="atk-relation-set-add"><primary sortas="atk_relation_set_add">atk_relation_set_add</primary></indexterm><programlisting><link linkend="void">void</link> atk_relation_set_add (<link linkend="AtkRelationSet">AtkRelationSet</link> *set,
122
<link linkend="AtkRelation">AtkRelation</link> *relation);</programlisting>
124
Add a new relation to the current relation set if it is not already
126
This function ref's the AtkRelation so the caller of this function
127
should unref it to ensure that it will be destroyed when the AtkRelationSet
130
</para><variablelist role="params">
131
<varlistentry><term><parameter>set</parameter> :</term>
132
<listitem><simpara> an <link linkend="AtkRelationSet"><type>AtkRelationSet</type></link>
133
</simpara></listitem></varlistentry>
134
<varlistentry><term><parameter>relation</parameter> :</term>
135
<listitem><simpara> an <link linkend="AtkRelation"><type>AtkRelation</type></link>
136
</simpara></listitem></varlistentry>
137
</variablelist></refsect2>
138
<refsect2 id="atk-relation-set-get-n-relations" role="function">
139
<title>atk_relation_set_get_n_relations ()</title>
140
<indexterm zone="atk-relation-set-get-n-relations"><primary sortas="atk_relation_set_get_n_relations">atk_relation_set_get_n_relations</primary></indexterm><programlisting><link linkend="gint">gint</link> atk_relation_set_get_n_relations (<link linkend="AtkRelationSet">AtkRelationSet</link> *set);</programlisting>
142
Determines the number of relations in a relation set.</para>
144
</para><variablelist role="params">
145
<varlistentry><term><parameter>set</parameter> :</term>
146
<listitem><simpara> an <link linkend="AtkRelationSet"><type>AtkRelationSet</type></link>
147
</simpara></listitem></varlistentry>
148
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> an integer representing the number of relations in the set.
149
</simpara></listitem></varlistentry>
150
</variablelist></refsect2>
151
<refsect2 id="atk-relation-set-get-relation" role="function">
152
<title>atk_relation_set_get_relation ()</title>
153
<indexterm zone="atk-relation-set-get-relation"><primary sortas="atk_relation_set_get_relation">atk_relation_set_get_relation</primary></indexterm><programlisting><link linkend="AtkRelation">AtkRelation</link>* atk_relation_set_get_relation (<link linkend="AtkRelationSet">AtkRelationSet</link> *set,
154
<link linkend="gint">gint</link> i);</programlisting>
156
Determines the relation at the specified position in the relation set.</para>
158
</para><variablelist role="params">
159
<varlistentry><term><parameter>set</parameter> :</term>
160
<listitem><simpara> an <link linkend="AtkRelationSet"><type>AtkRelationSet</type></link>
161
</simpara></listitem></varlistentry>
162
<varlistentry><term><parameter>i</parameter> :</term>
163
<listitem><simpara> a gint representing a position in the set, starting from 0.
164
</simpara></listitem></varlistentry>
165
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a <link linkend="AtkRelation"><type>AtkRelation</type></link>, which is the relation at position i in the set.
166
</simpara></listitem></varlistentry>
167
</variablelist></refsect2>
168
<refsect2 id="atk-relation-set-get-relation-by-type" role="function">
169
<title>atk_relation_set_get_relation_by_type ()</title>
170
<indexterm zone="atk-relation-set-get-relation-by-type"><primary sortas="atk_relation_set_get_relation_by_type">atk_relation_set_get_relation_by_type</primary></indexterm><programlisting><link linkend="AtkRelation">AtkRelation</link>* atk_relation_set_get_relation_by_type
171
(<link linkend="AtkRelationSet">AtkRelationSet</link> *set,
172
<link linkend="AtkRelationType">AtkRelationType</link> relationship);</programlisting>
174
Finds a relation that matches the specified type.</para>
176
</para><variablelist role="params">
177
<varlistentry><term><parameter>set</parameter> :</term>
178
<listitem><simpara> an <link linkend="AtkRelationSet"><type>AtkRelationSet</type></link>
179
</simpara></listitem></varlistentry>
180
<varlistentry><term><parameter>relationship</parameter> :</term>
181
<listitem><simpara> an <link linkend="AtkRelationType"><type>AtkRelationType</type></link>
182
</simpara></listitem></varlistentry>
183
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> an <link linkend="AtkRelation"><type>AtkRelation</type></link>, which is a relation matching the specified type.
184
</simpara></listitem></varlistentry>
185
</variablelist></refsect2>
186
<refsect2 id="atk-relation-set-add-relation-by-type" role="function" condition="since:1.9">
187
<title>atk_relation_set_add_relation_by_type ()</title>
188
<indexterm zone="atk-relation-set-add-relation-by-type" role="1.9"><primary sortas="atk_relation_set_add_relation_by_type">atk_relation_set_add_relation_by_type</primary></indexterm><programlisting><link linkend="void">void</link> atk_relation_set_add_relation_by_type
189
(<link linkend="AtkRelationSet">AtkRelationSet</link> *set,
190
<link linkend="AtkRelationType">AtkRelationType</link> relationship,
191
<link linkend="AtkObject">AtkObject</link> *target);</programlisting>
193
Add a new relation of the specified type with the specified target to
194
the current relation set if the relation set does not contain a relation
195
of that type. If it is does contain a relation of that typea the target
196
is added to the relation.</para>
198
</para><variablelist role="params">
199
<varlistentry><term><parameter>set</parameter> :</term>
200
<listitem><simpara> an <link linkend="AtkRelationSet"><type>AtkRelationSet</type></link>
201
</simpara></listitem></varlistentry>
202
<varlistentry><term><parameter>relationship</parameter> :</term>
203
<listitem><simpara> an <link linkend="AtkRelationType"><type>AtkRelationType</type></link>
204
</simpara></listitem></varlistentry>
205
<varlistentry><term><parameter>target</parameter> :</term>
206
<listitem><simpara> an <link linkend="AtkObject"><type>AtkObject</type></link>
207
</simpara></listitem></varlistentry>
208
</variablelist><para role="since">Since 1.9</para></refsect2>