2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
3
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
4
<!ENTITY version "1.0.8">
7
<refentry id="ClutterContainer">
9
<refentrytitle role="top_of_page" id="ClutterContainer.top_of_page">ClutterContainer</refentrytitle>
10
<manvolnum>3</manvolnum>
11
<refmiscinfo>CLUTTER Library</refmiscinfo>
15
<refname>ClutterContainer</refname>
16
<refpurpose>An interface for implementing container actors</refpurpose>
19
<refsynopsisdiv id="ClutterContainer.synopsis" role="synopsis">
20
<title role="synopsis.title">Synopsis</title>
23
<link linkend="ClutterContainer-struct">ClutterContainer</link>;
24
<link linkend="ClutterContainerIface">ClutterContainerIface</link>;
25
<link linkend="void">void</link> <link linkend="clutter-container-add-actor">clutter_container_add_actor</link> (<link linkend="ClutterContainer">ClutterContainer</link> *container,
26
<link linkend="ClutterActor">ClutterActor</link> *actor);
27
<link linkend="void">void</link> <link linkend="clutter-container-add">clutter_container_add</link> (<link linkend="ClutterContainer">ClutterContainer</link> *container,
28
<link linkend="ClutterActor">ClutterActor</link> *first_actor,
30
<link linkend="void">void</link> <link linkend="clutter-container-add-valist">clutter_container_add_valist</link> (<link linkend="ClutterContainer">ClutterContainer</link> *container,
31
<link linkend="ClutterActor">ClutterActor</link> *first_actor,
32
<link linkend="va-list">va_list</link> var_args);
33
<link linkend="void">void</link> <link linkend="clutter-container-remove-actor">clutter_container_remove_actor</link> (<link linkend="ClutterContainer">ClutterContainer</link> *container,
34
<link linkend="ClutterActor">ClutterActor</link> *actor);
35
<link linkend="void">void</link> <link linkend="clutter-container-remove">clutter_container_remove</link> (<link linkend="ClutterContainer">ClutterContainer</link> *container,
36
<link linkend="ClutterActor">ClutterActor</link> *first_actor,
38
<link linkend="void">void</link> <link linkend="clutter-container-remove-valist">clutter_container_remove_valist</link> (<link linkend="ClutterContainer">ClutterContainer</link> *container,
39
<link linkend="ClutterActor">ClutterActor</link> *first_actor,
40
<link linkend="va-list">va_list</link> var_args);
41
<link linkend="GList">GList</link> * <link linkend="clutter-container-get-children">clutter_container_get_children</link> (<link linkend="ClutterContainer">ClutterContainer</link> *container);
42
<link linkend="void">void</link> <link linkend="clutter-container-foreach">clutter_container_foreach</link> (<link linkend="ClutterContainer">ClutterContainer</link> *container,
43
<link linkend="ClutterCallback">ClutterCallback</link> callback,
44
<link linkend="gpointer">gpointer</link> user_data);
45
<link linkend="void">void</link> <link linkend="clutter-container-foreach-with-internals">clutter_container_foreach_with_internals</link>
46
(<link linkend="ClutterContainer">ClutterContainer</link> *container,
47
<link linkend="ClutterCallback">ClutterCallback</link> callback,
48
<link linkend="gpointer">gpointer</link> user_data);
50
<link linkend="ClutterActor">ClutterActor</link> * <link linkend="clutter-container-find-child-by-name">clutter_container_find_child_by_name</link>
51
(<link linkend="ClutterContainer">ClutterContainer</link> *container,
52
const <link linkend="gchar">gchar</link> *child_name);
53
<link linkend="void">void</link> <link linkend="clutter-container-raise-child">clutter_container_raise_child</link> (<link linkend="ClutterContainer">ClutterContainer</link> *container,
54
<link linkend="ClutterActor">ClutterActor</link> *actor,
55
<link linkend="ClutterActor">ClutterActor</link> *sibling);
56
<link linkend="void">void</link> <link linkend="clutter-container-lower-child">clutter_container_lower_child</link> (<link linkend="ClutterContainer">ClutterContainer</link> *container,
57
<link linkend="ClutterActor">ClutterActor</link> *actor,
58
<link linkend="ClutterActor">ClutterActor</link> *sibling);
59
<link linkend="void">void</link> <link linkend="clutter-container-sort-depth-order">clutter_container_sort_depth_order</link> (<link linkend="ClutterContainer">ClutterContainer</link> *container);
61
<link linkend="GParamSpec">GParamSpec</link> * <link linkend="clutter-container-class-find-child-property">clutter_container_class_find_child_property</link>
62
(<link linkend="GObjectClass">GObjectClass</link> *klass,
63
const <link linkend="gchar">gchar</link> *property_name);
64
<link linkend="GParamSpec">GParamSpec</link> ** <link linkend="clutter-container-class-list-child-properties">clutter_container_class_list_child_properties</link>
65
(<link linkend="GObjectClass">GObjectClass</link> *klass,
66
<link linkend="guint">guint</link> *n_properties);
67
<link linkend="void">void</link> <link linkend="clutter-container-child-set-property">clutter_container_child_set_property</link>
68
(<link linkend="ClutterContainer">ClutterContainer</link> *container,
69
<link linkend="ClutterActor">ClutterActor</link> *child,
70
const <link linkend="gchar">gchar</link> *property,
71
const <link linkend="GValue">GValue</link> *value);
72
<link linkend="void">void</link> <link linkend="clutter-container-child-get-property">clutter_container_child_get_property</link>
73
(<link linkend="ClutterContainer">ClutterContainer</link> *container,
74
<link linkend="ClutterActor">ClutterActor</link> *child,
75
const <link linkend="gchar">gchar</link> *property,
76
<link linkend="GValue">GValue</link> *value);
77
<link linkend="void">void</link> <link linkend="clutter-container-child-set">clutter_container_child_set</link> (<link linkend="ClutterContainer">ClutterContainer</link> *container,
78
<link linkend="ClutterActor">ClutterActor</link> *actor,
79
const <link linkend="gchar">gchar</link> *first_prop,
81
<link linkend="void">void</link> <link linkend="clutter-container-child-get">clutter_container_child_get</link> (<link linkend="ClutterContainer">ClutterContainer</link> *container,
82
<link linkend="ClutterActor">ClutterActor</link> *actor,
83
const <link linkend="gchar">gchar</link> *first_prop,
86
<link linkend="ClutterChildMeta">ClutterChildMeta</link> * <link linkend="clutter-container-get-child-meta">clutter_container_get_child_meta</link> (<link linkend="ClutterContainer">ClutterContainer</link> *container,
87
<link linkend="ClutterActor">ClutterActor</link> *actor);
91
<refsect1 id="ClutterContainer.object-hierarchy" role="object_hierarchy">
92
<title role="object_hierarchy.title">Object Hierarchy</title>
94
<link linkend="GInterface">GInterface</link>
99
<refsect1 id="ClutterContainer.prerequisites" role="prerequisites">
100
<title role="prerequisites.title">Prerequisites</title>
102
ClutterContainer requires
103
<link linkend="GObject">GObject</link>.</para>
108
<refsect1 id="ClutterContainer.implementations" role="implementations">
109
<title role="implementations.title">Known Implementations</title>
111
ClutterContainer is implemented by
112
<link linkend="ClutterStage">ClutterStage</link> and <link linkend="ClutterGroup">ClutterGroup</link>.</para>
118
<refsect1 id="ClutterContainer.description" role="desc">
119
<title role="desc.title">Description</title>
121
<link linkend="ClutterContainer"><type>ClutterContainer</type></link> is an interface for writing actors containing other
122
<link linkend="ClutterActor"><type>ClutterActor</type></link><!-- -->s. It provides a standard API for adding, removing
123
and iterating on every contained actor.
126
An actor implementing <link linkend="ClutterContainer"><type>ClutterContainer</type></link> is <link linkend="ClutterGroup"><type>ClutterGroup</type></link>.
129
<link linkend="ClutterContainer"><type>ClutterContainer</type></link> is available since Clutter 0.4</para>
134
<refsect1 id="ClutterContainer.details" role="details">
135
<title role="details.title">Details</title>
136
<refsect2 id="ClutterContainer-struct" role="struct">
137
<title>ClutterContainer</title>
138
<indexterm zone="ClutterContainer-struct"><primary sortas="Container">ClutterContainer</primary></indexterm><programlisting>typedef struct _ClutterContainer ClutterContainer;</programlisting>
141
<refsect2 id="ClutterContainerIface" role="struct" condition="since:0.4">
142
<title>ClutterContainerIface</title>
143
<indexterm zone="ClutterContainerIface" role="0.4"><primary sortas="ContainerIface">ClutterContainerIface</primary></indexterm><programlisting>typedef struct {
144
void (* add) (ClutterContainer *container,
145
ClutterActor *actor);
146
void (* remove) (ClutterContainer *container,
147
ClutterActor *actor);
148
void (* foreach) (ClutterContainer *container,
149
ClutterCallback callback,
152
void (* foreach_with_internals) (ClutterContainer *container,
153
ClutterCallback callback,
157
void (* raise) (ClutterContainer *container,
159
ClutterActor *sibling);
160
void (* lower) (ClutterContainer *container,
162
ClutterActor *sibling);
163
void (* sort_depth_order) (ClutterContainer *container);
165
/* ClutterChildMeta management */
166
GType child_meta_type;
167
void (* create_child_meta) (ClutterContainer *container,
168
ClutterActor *actor);
169
void (* destroy_child_meta) (ClutterContainer *container,
170
ClutterActor *actor);
171
ClutterChildMeta *(* get_child_meta) (ClutterContainer *container,
172
ClutterActor *actor);
175
void (* actor_added) (ClutterContainer *container,
176
ClutterActor *actor);
177
void (* actor_removed) (ClutterContainer *container,
178
ClutterActor *actor);
180
void (* child_notify) (ClutterContainer *container,
183
} ClutterContainerIface;
186
Base interface for container actors. The <parameter>add</parameter>, <parameter>remove</parameter> and <parameter>foreach</parameter>
187
virtual functions must be provided by any implementation; the other
188
virtual functions are optional.</para>
190
</para><variablelist role="struct">
192
<term><structfield>add</structfield> ()</term>
193
<listitem><simpara> virtual function for adding an actor to the container. The
194
implementation of this virtual function is required.
195
</simpara></listitem>
198
<term><structfield>remove</structfield> ()</term>
199
<listitem><simpara> virtual function for removing an actor from the container. The
200
implementation of this virtual function is required.
201
</simpara></listitem>
204
<term><structfield>foreach</structfield> ()</term>
205
<listitem><simpara> virtual function for iterating over the container's children.
206
The implementation of this virtual function is required.
207
</simpara></listitem>
210
<term><structfield>foreach_with_internals</structfield> ()</term>
211
<listitem><simpara> virtual functions for iterating over the
212
container's children, both added using the <link linkend="ClutterContainer"><type>ClutterContainer</type></link> API
213
and internal children. The implementation of this virtual function
214
is required only if the <link linkend="ClutterContainer"><type>ClutterContainer</type></link> implementation has
216
</simpara></listitem>
219
<term><structfield>raise</structfield> ()</term>
220
<listitem><simpara> virtual function for raising a child
221
</simpara></listitem>
224
<term><structfield>lower</structfield> ()</term>
225
<listitem><simpara> virtual function for lowering a child
226
</simpara></listitem>
229
<term><structfield>sort_depth_order</structfield> ()</term>
230
<listitem><simpara> virtual function for sorting the children of a
231
container depending on their depth
232
</simpara></listitem>
235
<term><link linkend="GType">GType</link> <structfield>child_meta_type</structfield>;</term>
236
<listitem><simpara> The GType used for storing auxiliary information about
237
each of the containers children.
238
</simpara></listitem>
241
<term><structfield>create_child_meta</structfield> ()</term>
242
<listitem><simpara> virtual function that gets called for each added
243
child, the function should instantiate an object of type
244
<link linkend="ClutterContainerIface-child-meta-type"><type>"child_meta_type"</type></link>, set the container and actor
245
fields in the instance and add the record to a data structure for
246
subsequent access for <link linkend="ClutterContainerIface-get-child-meta"><type>"get_child_meta"</type></link>
247
</simpara></listitem>
250
<term><structfield>destroy_child_meta</structfield> ()</term>
251
<listitem><simpara> virtual function that gets called when a child is
252
removed; it shuld release all resources held by the record
253
</simpara></listitem>
256
<term><structfield>get_child_meta</structfield> ()</term>
257
<listitem><simpara> return the record for a container child
258
</simpara></listitem>
261
<term><structfield>actor_added</structfield> ()</term>
262
<listitem><simpara> class handler for <link linkend="ClutterContainer-actor-added"><type>"actor_added"</type></link>
263
</simpara></listitem>
266
<term><structfield>actor_removed</structfield> ()</term>
267
<listitem><simpara> class handler for <link linkend="ClutterContainer-actor-removed"><type>"actor_removed"</type></link>
268
</simpara></listitem>
271
<term><structfield>child_notify</structfield> ()</term>
272
<listitem><simpara> class handler for <link linkend="ClutterContainer-child-notify"><type>"child-notify"</type></link>
273
</simpara></listitem>
275
</variablelist><para role="since">Since 0.4</para></refsect2>
276
<refsect2 id="clutter-container-add-actor" role="function" condition="since:0.4">
277
<title>clutter_container_add_actor ()</title>
278
<indexterm zone="clutter-container-add-actor" role="0.4"><primary sortas="container_add_actor">clutter_container_add_actor</primary></indexterm><programlisting><link linkend="void">void</link> clutter_container_add_actor (<link linkend="ClutterContainer">ClutterContainer</link> *container,
279
<link linkend="ClutterActor">ClutterActor</link> *actor);</programlisting>
281
Adds a <link linkend="ClutterActor"><type>ClutterActor</type></link> to <parameter>container</parameter>. This function will emit the
282
"actor-added" signal. The actor should be parented to
283
<parameter>container</parameter>. You cannot add a <link linkend="ClutterActor"><type>ClutterActor</type></link> to more than one
284
<link linkend="ClutterContainer"><type>ClutterContainer</type></link>.</para>
286
</para><variablelist role="params">
287
<varlistentry><term><parameter>container</parameter> :</term>
288
<listitem><simpara> a <link linkend="ClutterContainer"><type>ClutterContainer</type></link>
289
</simpara></listitem></varlistentry>
290
<varlistentry><term><parameter>actor</parameter> :</term>
291
<listitem><simpara> the first <link linkend="ClutterActor"><type>ClutterActor</type></link> to add
292
</simpara></listitem></varlistentry>
293
</variablelist><para role="since">Since 0.4</para></refsect2>
294
<refsect2 id="clutter-container-add" role="function" condition="since:0.4">
295
<title>clutter_container_add ()</title>
296
<indexterm zone="clutter-container-add" role="0.4"><primary sortas="container_add">clutter_container_add</primary></indexterm><programlisting><link linkend="void">void</link> clutter_container_add (<link linkend="ClutterContainer">ClutterContainer</link> *container,
297
<link linkend="ClutterActor">ClutterActor</link> *first_actor,
298
...);</programlisting>
300
Adds a list of <link linkend="ClutterActor"><type>ClutterActor</type></link><!-- -->s to <parameter>container</parameter>. Each time and
301
actor is added, the "actor-added" signal is emitted. Each actor should
302
be parented to <parameter>container</parameter>, which takes a reference on the actor. You
303
cannot add a <link linkend="ClutterActor"><type>ClutterActor</type></link> to more than one <link linkend="ClutterContainer"><type>ClutterContainer</type></link>.</para>
305
</para><variablelist role="params">
306
<varlistentry><term><parameter>container</parameter> :</term>
307
<listitem><simpara> a <link linkend="ClutterContainer"><type>ClutterContainer</type></link>
308
</simpara></listitem></varlistentry>
309
<varlistentry><term><parameter>first_actor</parameter> :</term>
310
<listitem><simpara> the first <link linkend="ClutterActor"><type>ClutterActor</type></link> to add
311
</simpara></listitem></varlistentry>
312
<varlistentry><term><parameter>...</parameter> :</term>
313
<listitem><simpara> <link linkend="NULL--CAPS"><literal>NULL</literal></link> terminated list of actors to add
314
</simpara></listitem></varlistentry>
315
</variablelist><para role="since">Since 0.4</para></refsect2>
316
<refsect2 id="clutter-container-add-valist" role="function" condition="since:0.4">
317
<title>clutter_container_add_valist ()</title>
318
<indexterm zone="clutter-container-add-valist" role="0.4"><primary sortas="container_add_valist">clutter_container_add_valist</primary></indexterm><programlisting><link linkend="void">void</link> clutter_container_add_valist (<link linkend="ClutterContainer">ClutterContainer</link> *container,
319
<link linkend="ClutterActor">ClutterActor</link> *first_actor,
320
<link linkend="va-list">va_list</link> var_args);</programlisting>
322
Alternative va_list version of <link linkend="clutter-container-add"><function>clutter_container_add()</function></link>.</para>
324
</para><variablelist role="params">
325
<varlistentry><term><parameter>container</parameter> :</term>
326
<listitem><simpara> a <link linkend="ClutterContainer"><type>ClutterContainer</type></link>
327
</simpara></listitem></varlistentry>
328
<varlistentry><term><parameter>first_actor</parameter> :</term>
329
<listitem><simpara> the first <link linkend="ClutterActor"><type>ClutterActor</type></link> to add
330
</simpara></listitem></varlistentry>
331
<varlistentry><term><parameter>var_args</parameter> :</term>
332
<listitem><simpara> list of actors to add, followed by <link linkend="NULL--CAPS"><literal>NULL</literal></link>
333
</simpara></listitem></varlistentry>
334
</variablelist><para role="since">Since 0.4</para></refsect2>
335
<refsect2 id="clutter-container-remove-actor" role="function" condition="since:0.4">
336
<title>clutter_container_remove_actor ()</title>
337
<indexterm zone="clutter-container-remove-actor" role="0.4"><primary sortas="container_remove_actor">clutter_container_remove_actor</primary></indexterm><programlisting><link linkend="void">void</link> clutter_container_remove_actor (<link linkend="ClutterContainer">ClutterContainer</link> *container,
338
<link linkend="ClutterActor">ClutterActor</link> *actor);</programlisting>
340
Removes <parameter>actor</parameter> from <parameter>container</parameter>. The actor should be unparented, so
341
if you want to keep it around you must hold a reference to it
342
yourself, using <link linkend="g-object-ref"><function>g_object_ref()</function></link>. When the actor has been removed,
343
the "actor-removed" signal is emitted by <parameter>container</parameter>.</para>
345
</para><variablelist role="params">
346
<varlistentry><term><parameter>container</parameter> :</term>
347
<listitem><simpara> a <link linkend="ClutterContainer"><type>ClutterContainer</type></link>
348
</simpara></listitem></varlistentry>
349
<varlistentry><term><parameter>actor</parameter> :</term>
350
<listitem><simpara> a <link linkend="ClutterActor"><type>ClutterActor</type></link>
351
</simpara></listitem></varlistentry>
352
</variablelist><para role="since">Since 0.4</para></refsect2>
353
<refsect2 id="clutter-container-remove" role="function" condition="since:0.4">
354
<title>clutter_container_remove ()</title>
355
<indexterm zone="clutter-container-remove" role="0.4"><primary sortas="container_remove">clutter_container_remove</primary></indexterm><programlisting><link linkend="void">void</link> clutter_container_remove (<link linkend="ClutterContainer">ClutterContainer</link> *container,
356
<link linkend="ClutterActor">ClutterActor</link> *first_actor,
357
...);</programlisting>
359
Removes a <link linkend="NULL--CAPS"><literal>NULL</literal></link> terminated list of <link linkend="ClutterActor"><type>ClutterActor</type></link><!-- -->s from
360
<parameter>container</parameter>. Each actor should be unparented, so if you want to keep it
361
around you must hold a reference to it yourself, using <link linkend="g-object-ref"><function>g_object_ref()</function></link>.
362
Each time an actor is removed, the "actor-removed" signal is
363
emitted by <parameter>container</parameter>.</para>
365
</para><variablelist role="params">
366
<varlistentry><term><parameter>container</parameter> :</term>
367
<listitem><simpara> a <link linkend="ClutterContainer"><type>ClutterContainer</type></link>
368
</simpara></listitem></varlistentry>
369
<varlistentry><term><parameter>first_actor</parameter> :</term>
370
<listitem><simpara> first <link linkend="ClutterActor"><type>ClutterActor</type></link> to remove
371
</simpara></listitem></varlistentry>
372
<varlistentry><term><parameter>...</parameter> :</term>
373
<listitem><simpara> a <link linkend="NULL--CAPS"><literal>NULL</literal></link>-terminated list of actors to remove
374
</simpara></listitem></varlistentry>
375
</variablelist><para role="since">Since 0.4</para></refsect2>
376
<refsect2 id="clutter-container-remove-valist" role="function" condition="since:0.4">
377
<title>clutter_container_remove_valist ()</title>
378
<indexterm zone="clutter-container-remove-valist" role="0.4"><primary sortas="container_remove_valist">clutter_container_remove_valist</primary></indexterm><programlisting><link linkend="void">void</link> clutter_container_remove_valist (<link linkend="ClutterContainer">ClutterContainer</link> *container,
379
<link linkend="ClutterActor">ClutterActor</link> *first_actor,
380
<link linkend="va-list">va_list</link> var_args);</programlisting>
382
Alternative va_list version of <link linkend="clutter-container-remove"><function>clutter_container_remove()</function></link>.</para>
384
</para><variablelist role="params">
385
<varlistentry><term><parameter>container</parameter> :</term>
386
<listitem><simpara> a <link linkend="ClutterContainer"><type>ClutterContainer</type></link>
387
</simpara></listitem></varlistentry>
388
<varlistentry><term><parameter>first_actor</parameter> :</term>
389
<listitem><simpara> the first <link linkend="ClutterActor"><type>ClutterActor</type></link> to add
390
</simpara></listitem></varlistentry>
391
<varlistentry><term><parameter>var_args</parameter> :</term>
392
<listitem><simpara> list of actors to remove, followed by <link linkend="NULL--CAPS"><literal>NULL</literal></link>
393
</simpara></listitem></varlistentry>
394
</variablelist><para role="since">Since 0.4</para></refsect2>
395
<refsect2 id="clutter-container-get-children" role="function" condition="since:0.4">
396
<title>clutter_container_get_children ()</title>
397
<indexterm zone="clutter-container-get-children" role="0.4"><primary sortas="container_get_children">clutter_container_get_children</primary></indexterm><programlisting><link linkend="GList">GList</link> * clutter_container_get_children (<link linkend="ClutterContainer">ClutterContainer</link> *container);</programlisting>
399
Retrieves all the children of <parameter>container</parameter>.</para>
401
</para><variablelist role="params">
402
<varlistentry><term><parameter>container</parameter> :</term>
403
<listitem><simpara> a <link linkend="ClutterContainer"><type>ClutterContainer</type></link>
404
</simpara></listitem></varlistentry>
405
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>element-type Actor) (transfer container. <acronym>element-type</acronym> Actor. <acronym>transfer</acronym> container. </simpara></listitem></varlistentry>
406
</variablelist><para role="since">Since 0.4</para></refsect2>
407
<refsect2 id="clutter-container-foreach" role="function" condition="since:0.4">
408
<title>clutter_container_foreach ()</title>
409
<indexterm zone="clutter-container-foreach" role="0.4"><primary sortas="container_foreach">clutter_container_foreach</primary></indexterm><programlisting><link linkend="void">void</link> clutter_container_foreach (<link linkend="ClutterContainer">ClutterContainer</link> *container,
410
<link linkend="ClutterCallback">ClutterCallback</link> callback,
411
<link linkend="gpointer">gpointer</link> user_data);</programlisting>
413
Calls <parameter>callback</parameter> for each child of <parameter>container</parameter> that was added
414
by the application (with <link linkend="clutter-container-add-actor"><function>clutter_container_add_actor()</function></link>). Does
415
not iterate over "internal" children that are part of the
416
container's own implementation, if any.</para>
418
</para><variablelist role="params">
419
<varlistentry><term><parameter>container</parameter> :</term>
420
<listitem><simpara> a <link linkend="ClutterContainer"><type>ClutterContainer</type></link>
421
</simpara></listitem></varlistentry>
422
<varlistentry><term><parameter>callback</parameter> :</term>
423
<listitem><simpara> a function to be called for each child
424
</simpara></listitem></varlistentry>
425
<varlistentry><term><parameter>user_data</parameter> :</term>
426
<listitem><simpara> data to be passed to the function, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
427
</simpara></listitem></varlistentry>
428
</variablelist><para role="since">Since 0.4</para></refsect2>
429
<refsect2 id="clutter-container-foreach-with-internals" role="function" condition="since:1.0">
430
<title>clutter_container_foreach_with_internals ()</title>
431
<indexterm zone="clutter-container-foreach-with-internals" role="1.0"><primary sortas="container_foreach_with_internals">clutter_container_foreach_with_internals</primary></indexterm><programlisting><link linkend="void">void</link> clutter_container_foreach_with_internals
432
(<link linkend="ClutterContainer">ClutterContainer</link> *container,
433
<link linkend="ClutterCallback">ClutterCallback</link> callback,
434
<link linkend="gpointer">gpointer</link> user_data);</programlisting>
436
Calls <parameter>callback</parameter> for each child of <parameter>container</parameter>, including "internal"
437
children built in to the container itself that were never added
438
by the application.</para>
440
</para><variablelist role="params">
441
<varlistentry><term><parameter>container</parameter> :</term>
442
<listitem><simpara> a <link linkend="ClutterContainer"><type>ClutterContainer</type></link>
443
</simpara></listitem></varlistentry>
444
<varlistentry><term><parameter>callback</parameter> :</term>
445
<listitem><simpara> a function to be called for each child
446
</simpara></listitem></varlistentry>
447
<varlistentry><term><parameter>user_data</parameter> :</term>
448
<listitem><simpara> data to be passed to the function, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
449
</simpara></listitem></varlistentry>
450
</variablelist><para role="since">Since 1.0</para></refsect2>
451
<refsect2 id="clutter-container-find-child-by-name" role="function" condition="since:0.6">
452
<title>clutter_container_find_child_by_name ()</title>
453
<indexterm zone="clutter-container-find-child-by-name" role="0.6"><primary sortas="container_find_child_by_name">clutter_container_find_child_by_name</primary></indexterm><programlisting><link linkend="ClutterActor">ClutterActor</link> * clutter_container_find_child_by_name
454
(<link linkend="ClutterContainer">ClutterContainer</link> *container,
455
const <link linkend="gchar">gchar</link> *child_name);</programlisting>
457
Finds a child actor of a container by its name. Search recurses
458
into any child container.</para>
460
</para><variablelist role="params">
461
<varlistentry><term><parameter>container</parameter> :</term>
462
<listitem><simpara> a <link linkend="ClutterContainer"><type>ClutterContainer</type></link>
463
</simpara></listitem></varlistentry>
464
<varlistentry><term><parameter>child_name</parameter> :</term>
465
<listitem><simpara> the name of the requested child.
466
</simpara></listitem></varlistentry>
467
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>transfer none. <acronym>transfer</acronym> none. </simpara></listitem></varlistentry>
468
</variablelist><para role="since">Since 0.6</para></refsect2>
469
<refsect2 id="clutter-container-raise-child" role="function" condition="since:0.6">
470
<title>clutter_container_raise_child ()</title>
471
<indexterm zone="clutter-container-raise-child" role="0.6"><primary sortas="container_raise_child">clutter_container_raise_child</primary></indexterm><programlisting><link linkend="void">void</link> clutter_container_raise_child (<link linkend="ClutterContainer">ClutterContainer</link> *container,
472
<link linkend="ClutterActor">ClutterActor</link> *actor,
473
<link linkend="ClutterActor">ClutterActor</link> *sibling);</programlisting>
475
Raises <parameter>actor</parameter> to <parameter>sibling</parameter> level, in the depth ordering.</para>
477
</para><variablelist role="params">
478
<varlistentry><term><parameter>container</parameter> :</term>
479
<listitem><simpara> a <link linkend="ClutterContainer"><type>ClutterContainer</type></link>
480
</simpara></listitem></varlistentry>
481
<varlistentry><term><parameter>actor</parameter> :</term>
482
<listitem><simpara> the actor to raise
483
</simpara></listitem></varlistentry>
484
<varlistentry><term><parameter>sibling</parameter> :</term>
485
<listitem><simpara> the sibling to raise to, or <link linkend="NULL--CAPS"><literal>NULL</literal></link> to raise to the top
486
</simpara></listitem></varlistentry>
487
</variablelist><para role="since">Since 0.6</para></refsect2>
488
<refsect2 id="clutter-container-lower-child" role="function" condition="since:0.6">
489
<title>clutter_container_lower_child ()</title>
490
<indexterm zone="clutter-container-lower-child" role="0.6"><primary sortas="container_lower_child">clutter_container_lower_child</primary></indexterm><programlisting><link linkend="void">void</link> clutter_container_lower_child (<link linkend="ClutterContainer">ClutterContainer</link> *container,
491
<link linkend="ClutterActor">ClutterActor</link> *actor,
492
<link linkend="ClutterActor">ClutterActor</link> *sibling);</programlisting>
494
Lowers <parameter>actor</parameter> to <parameter>sibling</parameter> level, in the depth ordering.</para>
496
</para><variablelist role="params">
497
<varlistentry><term><parameter>container</parameter> :</term>
498
<listitem><simpara> a <link linkend="ClutterContainer"><type>ClutterContainer</type></link>
499
</simpara></listitem></varlistentry>
500
<varlistentry><term><parameter>actor</parameter> :</term>
501
<listitem><simpara> the actor to raise
502
</simpara></listitem></varlistentry>
503
<varlistentry><term><parameter>sibling</parameter> :</term>
504
<listitem><simpara> the sibling to lower to, or <link linkend="NULL--CAPS"><literal>NULL</literal></link> to lower to the bottom
505
</simpara></listitem></varlistentry>
506
</variablelist><para role="since">Since 0.6</para></refsect2>
507
<refsect2 id="clutter-container-sort-depth-order" role="function" condition="since:0.6">
508
<title>clutter_container_sort_depth_order ()</title>
509
<indexterm zone="clutter-container-sort-depth-order" role="0.6"><primary sortas="container_sort_depth_order">clutter_container_sort_depth_order</primary></indexterm><programlisting><link linkend="void">void</link> clutter_container_sort_depth_order (<link linkend="ClutterContainer">ClutterContainer</link> *container);</programlisting>
511
Sorts a container's children using their depth. This function should not
512
be normally used by applications.</para>
514
</para><variablelist role="params">
515
<varlistentry><term><parameter>container</parameter> :</term>
516
<listitem><simpara> a <link linkend="ClutterContainer"><type>ClutterContainer</type></link>
517
</simpara></listitem></varlistentry>
518
</variablelist><para role="since">Since 0.6</para></refsect2>
519
<refsect2 id="clutter-container-class-find-child-property" role="function" condition="since:0.8">
520
<title>clutter_container_class_find_child_property ()</title>
521
<indexterm zone="clutter-container-class-find-child-property" role="0.8"><primary sortas="container_class_find_child_property">clutter_container_class_find_child_property</primary></indexterm><programlisting><link linkend="GParamSpec">GParamSpec</link> * clutter_container_class_find_child_property
522
(<link linkend="GObjectClass">GObjectClass</link> *klass,
523
const <link linkend="gchar">gchar</link> *property_name);</programlisting>
525
Looks up the <link linkend="GParamSpec"><type>GParamSpec</type></link> for a child property of <parameter>klass</parameter>.</para>
527
</para><variablelist role="params">
528
<varlistentry><term><parameter>klass</parameter> :</term>
529
<listitem><simpara> a <link linkend="GObjectClass"><type>GObjectClass</type></link> implementing the <link linkend="ClutterContainer"><type>ClutterContainer</type></link> interface.
530
</simpara></listitem></varlistentry>
531
<varlistentry><term><parameter>property_name</parameter> :</term>
532
<listitem><simpara> a property name.
533
</simpara></listitem></varlistentry>
534
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>transfer none. <acronym>transfer</acronym> none. </simpara></listitem></varlistentry>
535
</variablelist><para role="since">Since 0.8</para></refsect2>
536
<refsect2 id="clutter-container-class-list-child-properties" role="function" condition="since:0.8">
537
<title>clutter_container_class_list_child_properties ()</title>
538
<indexterm zone="clutter-container-class-list-child-properties" role="0.8"><primary sortas="container_class_list_child_properties">clutter_container_class_list_child_properties</primary></indexterm><programlisting><link linkend="GParamSpec">GParamSpec</link> ** clutter_container_class_list_child_properties
539
(<link linkend="GObjectClass">GObjectClass</link> *klass,
540
<link linkend="guint">guint</link> *n_properties);</programlisting>
542
Returns an array of <link linkend="GParamSpec"><type>GParamSpec</type></link> for all child properties.</para>
544
</para><variablelist role="params">
545
<varlistentry><term><parameter>klass</parameter> :</term>
546
<listitem><simpara> a <link linkend="GObjectClass"><type>GObjectClass</type></link> implementing the <link linkend="ClutterContainer"><type>ClutterContainer</type></link> interface.
547
</simpara></listitem></varlistentry>
548
<varlistentry><term><parameter>n_properties</parameter> :</term>
549
<listitem><simpara> return location for length of returned array.
550
</simpara></listitem></varlistentry>
551
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>array length=n_properties) (transfer container. <acronym>array</acronym> length=n_properties. <acronym>transfer</acronym> container. </simpara></listitem></varlistentry>
552
</variablelist><para role="since">Since 0.8</para></refsect2>
553
<refsect2 id="clutter-container-child-set-property" role="function" condition="since:0.8">
554
<title>clutter_container_child_set_property ()</title>
555
<indexterm zone="clutter-container-child-set-property" role="0.8"><primary sortas="container_child_set_property">clutter_container_child_set_property</primary></indexterm><programlisting><link linkend="void">void</link> clutter_container_child_set_property
556
(<link linkend="ClutterContainer">ClutterContainer</link> *container,
557
<link linkend="ClutterActor">ClutterActor</link> *child,
558
const <link linkend="gchar">gchar</link> *property,
559
const <link linkend="GValue">GValue</link> *value);</programlisting>
561
Sets a container-specific property on a child of <parameter>container</parameter>.</para>
563
</para><variablelist role="params">
564
<varlistentry><term><parameter>container</parameter> :</term>
565
<listitem><simpara> a <link linkend="ClutterContainer"><type>ClutterContainer</type></link>
566
</simpara></listitem></varlistentry>
567
<varlistentry><term><parameter>child</parameter> :</term>
568
<listitem><simpara> a <link linkend="ClutterActor"><type>ClutterActor</type></link> that is a child of <parameter>container</parameter>.
569
</simpara></listitem></varlistentry>
570
<varlistentry><term><parameter>property</parameter> :</term>
571
<listitem><simpara> the name of the property to set.
572
</simpara></listitem></varlistentry>
573
<varlistentry><term><parameter>value</parameter> :</term>
574
<listitem><simpara> the value.
575
</simpara></listitem></varlistentry>
576
</variablelist><para role="since">Since 0.8</para></refsect2>
577
<refsect2 id="clutter-container-child-get-property" role="function" condition="since:0.8">
578
<title>clutter_container_child_get_property ()</title>
579
<indexterm zone="clutter-container-child-get-property" role="0.8"><primary sortas="container_child_get_property">clutter_container_child_get_property</primary></indexterm><programlisting><link linkend="void">void</link> clutter_container_child_get_property
580
(<link linkend="ClutterContainer">ClutterContainer</link> *container,
581
<link linkend="ClutterActor">ClutterActor</link> *child,
582
const <link linkend="gchar">gchar</link> *property,
583
<link linkend="GValue">GValue</link> *value);</programlisting>
585
Gets a container specific property of a child of <parameter>container</parameter>, In general,
586
a copy is made of the property contents and the caller is responsible for
587
freeing the memory by calling <link linkend="g-value-unset"><function>g_value_unset()</function></link>.
590
Note that <link linkend="clutter-container-child-set-property"><function>clutter_container_child_set_property()</function></link> is really intended for
591
language bindings, <link linkend="clutter-container-child-set"><function>clutter_container_child_set()</function></link> is much more convenient
592
for C programming.</para>
594
</para><variablelist role="params">
595
<varlistentry><term><parameter>container</parameter> :</term>
596
<listitem><simpara> a <link linkend="ClutterContainer"><type>ClutterContainer</type></link>
597
</simpara></listitem></varlistentry>
598
<varlistentry><term><parameter>child</parameter> :</term>
599
<listitem><simpara> a <link linkend="ClutterActor"><type>ClutterActor</type></link> that is a child of <parameter>container</parameter>.
600
</simpara></listitem></varlistentry>
601
<varlistentry><term><parameter>property</parameter> :</term>
602
<listitem><simpara> the name of the property to set.
603
</simpara></listitem></varlistentry>
604
<varlistentry><term><parameter>value</parameter> :</term>
605
<listitem><simpara> the value.
606
</simpara></listitem></varlistentry>
607
</variablelist><para role="since">Since 0.8</para></refsect2>
608
<refsect2 id="clutter-container-child-set" role="function" condition="since:0.8">
609
<title>clutter_container_child_set ()</title>
610
<indexterm zone="clutter-container-child-set" role="0.8"><primary sortas="container_child_set">clutter_container_child_set</primary></indexterm><programlisting><link linkend="void">void</link> clutter_container_child_set (<link linkend="ClutterContainer">ClutterContainer</link> *container,
611
<link linkend="ClutterActor">ClutterActor</link> *actor,
612
const <link linkend="gchar">gchar</link> *first_prop,
613
...);</programlisting>
615
Sets container specific properties on the child of a container.</para>
617
</para><variablelist role="params">
618
<varlistentry><term><parameter>container</parameter> :</term>
619
<listitem><simpara> a <link linkend="ClutterContainer"><type>ClutterContainer</type></link>
620
</simpara></listitem></varlistentry>
621
<varlistentry><term><parameter>actor</parameter> :</term>
622
<listitem><simpara> a <link linkend="ClutterActor"><type>ClutterActor</type></link> that is a child of <parameter>container</parameter>.
623
</simpara></listitem></varlistentry>
624
<varlistentry><term><parameter>first_prop</parameter> :</term>
625
<listitem><simpara> name of the first property to be set.
626
</simpara></listitem></varlistentry>
627
<varlistentry><term><parameter>...</parameter> :</term>
628
<listitem><simpara> value for the first property, followed optionally by more name/value
629
pairs terminated with NULL.
630
</simpara></listitem></varlistentry>
631
</variablelist><para role="since">Since 0.8</para></refsect2>
632
<refsect2 id="clutter-container-child-get" role="function" condition="since:0.8">
633
<title>clutter_container_child_get ()</title>
634
<indexterm zone="clutter-container-child-get" role="0.8"><primary sortas="container_child_get">clutter_container_child_get</primary></indexterm><programlisting><link linkend="void">void</link> clutter_container_child_get (<link linkend="ClutterContainer">ClutterContainer</link> *container,
635
<link linkend="ClutterActor">ClutterActor</link> *actor,
636
const <link linkend="gchar">gchar</link> *first_prop,
637
...);</programlisting>
639
Gets <parameter>container</parameter> specific properties of an actor.
642
In general, a copy is made of the property contents and the caller is
643
responsible for freeing the memory in the appropriate manner for the type, for
644
instance by calling <link linkend="g-free"><function>g_free()</function></link> or <link linkend="g-object-unref"><function>g_object_unref()</function></link>.</para>
646
</para><variablelist role="params">
647
<varlistentry><term><parameter>container</parameter> :</term>
648
<listitem><simpara> a <link linkend="ClutterContainer"><type>ClutterContainer</type></link>
649
</simpara></listitem></varlistentry>
650
<varlistentry><term><parameter>actor</parameter> :</term>
651
<listitem><simpara> a <link linkend="ClutterActor"><type>ClutterActor</type></link> that is a child of <parameter>container</parameter>.
652
</simpara></listitem></varlistentry>
653
<varlistentry><term><parameter>first_prop</parameter> :</term>
654
<listitem><simpara> name of the first property to be set.
655
</simpara></listitem></varlistentry>
656
<varlistentry><term><parameter>...</parameter> :</term>
657
<listitem><simpara> value for the first property, followed optionally by more name/value
658
pairs terminated with NULL.
659
</simpara></listitem></varlistentry>
660
</variablelist><para role="since">Since 0.8</para></refsect2>
661
<refsect2 id="clutter-container-get-child-meta" role="function" condition="since:0.8">
662
<title>clutter_container_get_child_meta ()</title>
663
<indexterm zone="clutter-container-get-child-meta" role="0.8"><primary sortas="container_get_child_meta">clutter_container_get_child_meta</primary></indexterm><programlisting><link linkend="ClutterChildMeta">ClutterChildMeta</link> * clutter_container_get_child_meta (<link linkend="ClutterContainer">ClutterContainer</link> *container,
664
<link linkend="ClutterActor">ClutterActor</link> *actor);</programlisting>
666
Retrieves the <link linkend="ClutterChildMeta"><type>ClutterChildMeta</type></link> which contains the data about the
667
<parameter>container</parameter> specific state for <parameter>actor</parameter>.</para>
669
</para><variablelist role="params">
670
<varlistentry><term><parameter>container</parameter> :</term>
671
<listitem><simpara> a <link linkend="ClutterContainer"><type>ClutterContainer</type></link>
672
</simpara></listitem></varlistentry>
673
<varlistentry><term><parameter>actor</parameter> :</term>
674
<listitem><simpara> a <link linkend="ClutterActor"><type>ClutterActor</type></link> that is a child of <parameter>container</parameter>.
675
</simpara></listitem></varlistentry>
676
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>transfer none. <acronym>transfer</acronym> none. </simpara></listitem></varlistentry>
677
</variablelist><para role="since">Since 0.8</para></refsect2>