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="ClutterBehaviour">
9
<refentrytitle role="top_of_page" id="ClutterBehaviour.top_of_page">ClutterBehaviour</refentrytitle>
10
<manvolnum>3</manvolnum>
11
<refmiscinfo>CLUTTER Library</refmiscinfo>
15
<refname>ClutterBehaviour</refname>
16
<refpurpose>Class for providing behaviours to actors</refpurpose>
19
<refsynopsisdiv id="ClutterBehaviour.synopsis" role="synopsis">
20
<title role="synopsis.title">Synopsis</title>
23
<link linkend="ClutterBehaviour-struct">ClutterBehaviour</link>;
24
<link linkend="ClutterBehaviourClass">ClutterBehaviourClass</link>;
25
<link linkend="void">void</link> <link linkend="clutter-behaviour-apply">clutter_behaviour_apply</link> (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behave,
26
<link linkend="ClutterActor">ClutterActor</link> *actor);
27
<link linkend="void">void</link> <link linkend="clutter-behaviour-remove">clutter_behaviour_remove</link> (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behave,
28
<link linkend="ClutterActor">ClutterActor</link> *actor);
29
<link linkend="void">void</link> <link linkend="clutter-behaviour-remove-all">clutter_behaviour_remove_all</link> (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behave);
30
<link linkend="gboolean">gboolean</link> <link linkend="clutter-behaviour-is-applied">clutter_behaviour_is_applied</link> (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behave,
31
<link linkend="ClutterActor">ClutterActor</link> *actor);
32
<link linkend="void">void</link> (<link linkend="ClutterBehaviourForeachFunc">*ClutterBehaviourForeachFunc</link>) (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behaviour,
33
<link linkend="ClutterActor">ClutterActor</link> *actor,
34
<link linkend="gpointer">gpointer</link> data);
35
<link linkend="void">void</link> <link linkend="clutter-behaviour-actors-foreach">clutter_behaviour_actors_foreach</link> (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behave,
36
<link linkend="ClutterBehaviourForeachFunc">ClutterBehaviourForeachFunc</link> func,
37
<link linkend="gpointer">gpointer</link> data);
38
<link linkend="GSList">GSList</link> * <link linkend="clutter-behaviour-get-actors">clutter_behaviour_get_actors</link> (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behave);
39
<link linkend="gint">gint</link> <link linkend="clutter-behaviour-get-n-actors">clutter_behaviour_get_n_actors</link> (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behave);
40
<link linkend="ClutterActor">ClutterActor</link> * <link linkend="clutter-behaviour-get-nth-actor">clutter_behaviour_get_nth_actor</link> (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behave,
41
<link linkend="gint">gint</link> index_);
42
<link linkend="ClutterAlpha">ClutterAlpha</link> * <link linkend="clutter-behaviour-get-alpha">clutter_behaviour_get_alpha</link> (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behave);
43
<link linkend="void">void</link> <link linkend="clutter-behaviour-set-alpha">clutter_behaviour_set_alpha</link> (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behave,
44
<link linkend="ClutterAlpha">ClutterAlpha</link> *alpha);
48
<refsect1 id="ClutterBehaviour.object-hierarchy" role="object_hierarchy">
49
<title role="object_hierarchy.title">Object Hierarchy</title>
51
<link linkend="GObject">GObject</link>
53
+----<link linkend="ClutterBehaviourDepth">ClutterBehaviourDepth</link>
54
+----<link linkend="ClutterBehaviourEllipse">ClutterBehaviourEllipse</link>
55
+----<link linkend="ClutterBehaviourOpacity">ClutterBehaviourOpacity</link>
56
+----<link linkend="ClutterBehaviourPath">ClutterBehaviourPath</link>
57
+----<link linkend="ClutterBehaviourRotate">ClutterBehaviourRotate</link>
58
+----<link linkend="ClutterBehaviourScale">ClutterBehaviourScale</link>
66
<refsect1 id="ClutterBehaviour.properties" role="properties">
67
<title role="properties.title">Properties</title>
69
"<link linkend="ClutterBehaviour--alpha">alpha</link>" <link linkend="ClutterAlpha">ClutterAlpha</link>* : Read / Write
73
<refsect1 id="ClutterBehaviour.signals" role="signal_proto">
74
<title role="signal_proto.title">Signals</title>
76
"<link linkend="ClutterBehaviour-applied">applied</link>" : Run First
77
"<link linkend="ClutterBehaviour-removed">removed</link>" : Run First
82
<refsect1 id="ClutterBehaviour.description" role="desc">
83
<title role="desc.title">Description</title>
85
<link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link> is the base class for implementing behaviours. A
86
behaviour is a controller object for <link linkend="ClutterActor"><type>ClutterActor</type></link><!-- -->s; you can
87
use a behaviour to control one or more properties of an actor (such
88
as its opacity, or its position). A <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link> is driven by
89
an "alpha function" stored inside a <link linkend="ClutterAlpha"><type>ClutterAlpha</type></link> object; an alpha
90
function is a function depending solely on time. The alpha function
91
computes a value which is then applied to the properties of the
92
actors driven by a behaviour.
95
Clutter provides some pre-defined behaviours, like <link linkend="ClutterBehaviourPath"><type>ClutterBehaviourPath</type></link>,
96
which controls the position of a set of actors making them "walk" along
97
a set of nodes; <link linkend="ClutterBehaviourOpacity"><type>ClutterBehaviourOpacity</type></link>, which controls the opacity
98
of a set of actors; <link linkend="ClutterBehaviourScale"><type>ClutterBehaviourScale</type></link>, which controls the width
99
and height of a set of actors.
102
To visualize the effects of different alpha functions on a
103
<link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link> implementation it is possible to take the
104
<link linkend="ClutterBehaviourPath"><type>ClutterBehaviourPath</type></link> as an example:
107
<figure id="behaviour-path-alpha">
108
<title>Effects of alpha functions on a path</title>
109
<graphic fileref="path-alpha-func.png" format="PNG"/>
113
The actors position between the path's end points directly correlates
114
to the <link linkend="ClutterAlpha"><type>ClutterAlpha</type></link>'s current alpha value driving the behaviour. With
115
the <link linkend="ClutterAlpha"><type>ClutterAlpha</type></link>'s function set to <link linkend="CLUTTER-ALPHA-RAMP-INC--CAPS"><literal>CLUTTER_ALPHA_RAMP_INC</literal></link> the actor
116
will follow the path at a constant velocity, but when changing to
117
<link linkend="CLUTTER-ALPHA-SINE-INC--CAPS"><literal>CLUTTER_ALPHA_SINE_INC</literal></link> the actor initially accelerates before quickly
121
In order to implement a new behaviour you should subclass <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
122
and override the "alpha_notify" virtual function; inside the overridden
123
function you should obtain the alpha value from the <link linkend="ClutterAlpha"><type>ClutterAlpha</type></link>
124
instance bound to the behaviour and apply it to the desiderd property
125
(or properties) of every actor controlled by the behaviour.
128
<link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link> is available since Clutter 0.2</para>
133
<refsect1 id="ClutterBehaviour.details" role="details">
134
<title role="details.title">Details</title>
135
<refsect2 id="ClutterBehaviour-struct" role="struct">
136
<title>ClutterBehaviour</title>
137
<indexterm zone="ClutterBehaviour-struct" role="0.2"><primary sortas="Behaviour">ClutterBehaviour</primary></indexterm><programlisting>typedef struct _ClutterBehaviour ClutterBehaviour;</programlisting>
139
<link linkend="ClutterBehaviour-struct"><type>ClutterBehaviour</type></link> contains only private data and should
140
be accessed with the functions below.</para>
142
</para><para role="since">Since 0.2</para></refsect2>
143
<refsect2 id="ClutterBehaviourClass" role="struct" condition="since:0.2">
144
<title>ClutterBehaviourClass</title>
145
<indexterm zone="ClutterBehaviourClass" role="0.2"><primary sortas="BehaviourClass">ClutterBehaviourClass</primary></indexterm><programlisting>typedef struct {
146
/* vfunc, not signal */
147
void (*alpha_notify) (ClutterBehaviour *behave,
148
gdouble alpha_value);
151
void (*applied) (ClutterBehaviour *behave,
152
ClutterActor *actor);
153
void (*removed) (ClutterBehaviour *behave,
154
ClutterActor *actor);
155
} ClutterBehaviourClass;
158
Base class for behaviours.</para>
160
</para><variablelist role="struct">
162
<term><structfield>alpha_notify</structfield> ()</term>
163
<listitem><simpara> virtual function, called each time the <link linkend="ClutterAlpha"><type>ClutterAlpha</type></link>
164
computes a new alpha value; the actors to which the behaviour applies
165
should be changed in this function. Every subclass of <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
166
must implement this virtual function
167
</simpara></listitem>
170
<term><structfield>applied</structfield> ()</term>
171
<listitem><simpara> signal class handler for the ClutterBehaviour::applied signal
172
</simpara></listitem>
175
<term><structfield>removed</structfield> ()</term>
176
<listitem><simpara> signal class handler for the ClutterBehaviour::removed signal
177
</simpara></listitem>
179
</variablelist><para role="since">Since 0.2</para></refsect2>
180
<refsect2 id="clutter-behaviour-apply" role="function" condition="since:0.2">
181
<title>clutter_behaviour_apply ()</title>
182
<indexterm zone="clutter-behaviour-apply" role="0.2"><primary sortas="behaviour_apply">clutter_behaviour_apply</primary></indexterm><programlisting><link linkend="void">void</link> clutter_behaviour_apply (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behave,
183
<link linkend="ClutterActor">ClutterActor</link> *actor);</programlisting>
185
Applies <parameter>behave</parameter> to <parameter>actor</parameter>. This function adds a reference on
188
</para><variablelist role="params">
189
<varlistentry><term><parameter>behave</parameter> :</term>
190
<listitem><simpara> a <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
191
</simpara></listitem></varlistentry>
192
<varlistentry><term><parameter>actor</parameter> :</term>
193
<listitem><simpara> a <link linkend="ClutterActor"><type>ClutterActor</type></link>
194
</simpara></listitem></varlistentry>
195
</variablelist><para role="since">Since 0.2</para></refsect2>
196
<refsect2 id="clutter-behaviour-remove" role="function" condition="since:0.2">
197
<title>clutter_behaviour_remove ()</title>
198
<indexterm zone="clutter-behaviour-remove" role="0.2"><primary sortas="behaviour_remove">clutter_behaviour_remove</primary></indexterm><programlisting><link linkend="void">void</link> clutter_behaviour_remove (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behave,
199
<link linkend="ClutterActor">ClutterActor</link> *actor);</programlisting>
201
Removes <parameter>actor</parameter> from the list of <link linkend="ClutterActor"><type>ClutterActor</type></link><!-- -->s to which
202
<parameter>behave</parameter> applies. This function removes a reference on the actor.</para>
204
</para><variablelist role="params">
205
<varlistentry><term><parameter>behave</parameter> :</term>
206
<listitem><simpara> a <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
207
</simpara></listitem></varlistentry>
208
<varlistentry><term><parameter>actor</parameter> :</term>
209
<listitem><simpara> a <link linkend="ClutterActor"><type>ClutterActor</type></link>
210
</simpara></listitem></varlistentry>
211
</variablelist><para role="since">Since 0.2</para></refsect2>
212
<refsect2 id="clutter-behaviour-remove-all" role="function" condition="since:0.4">
213
<title>clutter_behaviour_remove_all ()</title>
214
<indexterm zone="clutter-behaviour-remove-all" role="0.4"><primary sortas="behaviour_remove_all">clutter_behaviour_remove_all</primary></indexterm><programlisting><link linkend="void">void</link> clutter_behaviour_remove_all (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behave);</programlisting>
216
Removes every actor from the list that <parameter>behave</parameter> holds.</para>
218
</para><variablelist role="params">
219
<varlistentry><term><parameter>behave</parameter> :</term>
220
<listitem><simpara> a <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
221
</simpara></listitem></varlistentry>
222
</variablelist><para role="since">Since 0.4</para></refsect2>
223
<refsect2 id="clutter-behaviour-is-applied" role="function" condition="since:0.4">
224
<title>clutter_behaviour_is_applied ()</title>
225
<indexterm zone="clutter-behaviour-is-applied" role="0.4"><primary sortas="behaviour_is_applied">clutter_behaviour_is_applied</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> clutter_behaviour_is_applied (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behave,
226
<link linkend="ClutterActor">ClutterActor</link> *actor);</programlisting>
228
Check if <parameter>behave</parameter> applied to <parameter>actor</parameter>.</para>
230
</para><variablelist role="params">
231
<varlistentry><term><parameter>behave</parameter> :</term>
232
<listitem><simpara> a <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
233
</simpara></listitem></varlistentry>
234
<varlistentry><term><parameter>actor</parameter> :</term>
235
<listitem><simpara> a <link linkend="ClutterActor"><type>ClutterActor</type></link>
236
</simpara></listitem></varlistentry>
237
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> TRUE if actor has behaviour. FALSE otherwise.
239
</simpara></listitem></varlistentry>
240
</variablelist><para role="since">Since 0.4</para></refsect2>
241
<refsect2 id="ClutterBehaviourForeachFunc" role="function" condition="since:0.2">
242
<title>ClutterBehaviourForeachFunc ()</title>
243
<indexterm zone="ClutterBehaviourForeachFunc" role="0.2"><primary sortas="BehaviourForeachFunc">ClutterBehaviourForeachFunc</primary></indexterm><programlisting><link linkend="void">void</link> (*ClutterBehaviourForeachFunc) (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behaviour,
244
<link linkend="ClutterActor">ClutterActor</link> *actor,
245
<link linkend="gpointer">gpointer</link> data);</programlisting>
247
This function is passed to <link linkend="clutter-behaviour-foreach-actor"><function>clutter_behaviour_foreach_actor()</function></link> and
248
will be called for each actor driven by <parameter>behaviour</parameter>.</para>
250
</para><variablelist role="params">
251
<varlistentry><term><parameter>behaviour</parameter> :</term>
252
<listitem><simpara> the <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
253
</simpara></listitem></varlistentry>
254
<varlistentry><term><parameter>actor</parameter> :</term>
255
<listitem><simpara> an actor driven by <parameter>behaviour</parameter>
256
</simpara></listitem></varlistentry>
257
<varlistentry><term><parameter>data</parameter> :</term>
258
<listitem><simpara> optional data passed to the function
259
</simpara></listitem></varlistentry>
260
</variablelist><para role="since">Since 0.2</para></refsect2>
261
<refsect2 id="clutter-behaviour-actors-foreach" role="function" condition="since:0.2">
262
<title>clutter_behaviour_actors_foreach ()</title>
263
<indexterm zone="clutter-behaviour-actors-foreach" role="0.2"><primary sortas="behaviour_actors_foreach">clutter_behaviour_actors_foreach</primary></indexterm><programlisting><link linkend="void">void</link> clutter_behaviour_actors_foreach (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behave,
264
<link linkend="ClutterBehaviourForeachFunc">ClutterBehaviourForeachFunc</link> func,
265
<link linkend="gpointer">gpointer</link> data);</programlisting>
267
Calls <parameter>func</parameter> for every actor driven by <parameter>behave</parameter>.</para>
269
</para><variablelist role="params">
270
<varlistentry><term><parameter>behave</parameter> :</term>
271
<listitem><simpara> a <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
272
</simpara></listitem></varlistentry>
273
<varlistentry><term><parameter>func</parameter> :</term>
274
<listitem><simpara> a function called for each actor
275
</simpara></listitem></varlistentry>
276
<varlistentry><term><parameter>data</parameter> :</term>
277
<listitem><simpara> optional data to be passed to the function, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
278
</simpara></listitem></varlistentry>
279
</variablelist><para role="since">Since 0.2</para></refsect2>
280
<refsect2 id="clutter-behaviour-get-actors" role="function" condition="since:0.2">
281
<title>clutter_behaviour_get_actors ()</title>
282
<indexterm zone="clutter-behaviour-get-actors" role="0.2"><primary sortas="behaviour_get_actors">clutter_behaviour_get_actors</primary></indexterm><programlisting><link linkend="GSList">GSList</link> * clutter_behaviour_get_actors (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behave);</programlisting>
284
Retrieves all the actors to which <parameter>behave</parameter> applies. It is not recommended
285
for derived classes to use this in there alpha notify method but use
286
<link linkend="clutter-behaviour-actors-foreach"><type>clutter_behaviour_actors_foreach</type></link> as it avoids alot of needless allocations.</para>
288
</para><variablelist role="params">
289
<varlistentry><term><parameter>behave</parameter> :</term>
290
<listitem><simpara> a <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
291
</simpara></listitem></varlistentry>
292
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>transfer container) (element-type ClutterActor. <acronym>transfer</acronym> container. <acronym>element-type</acronym> ClutterActor. </simpara></listitem></varlistentry>
293
</variablelist><para role="since">Since 0.2</para></refsect2>
294
<refsect2 id="clutter-behaviour-get-n-actors" role="function" condition="since:0.2">
295
<title>clutter_behaviour_get_n_actors ()</title>
296
<indexterm zone="clutter-behaviour-get-n-actors" role="0.2"><primary sortas="behaviour_get_n_actors">clutter_behaviour_get_n_actors</primary></indexterm><programlisting><link linkend="gint">gint</link> clutter_behaviour_get_n_actors (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behave);</programlisting>
298
Gets the number of actors this behaviour is applied too.</para>
300
</para><variablelist role="params">
301
<varlistentry><term><parameter>behave</parameter> :</term>
302
<listitem><simpara> a <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
303
</simpara></listitem></varlistentry>
304
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The number of applied actors
306
</simpara></listitem></varlistentry>
307
</variablelist><para role="since">Since 0.2</para></refsect2>
308
<refsect2 id="clutter-behaviour-get-nth-actor" role="function" condition="since:0.2">
309
<title>clutter_behaviour_get_nth_actor ()</title>
310
<indexterm zone="clutter-behaviour-get-nth-actor" role="0.2"><primary sortas="behaviour_get_nth_actor">clutter_behaviour_get_nth_actor</primary></indexterm><programlisting><link linkend="ClutterActor">ClutterActor</link> * clutter_behaviour_get_nth_actor (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behave,
311
<link linkend="gint">gint</link> index_);</programlisting>
313
Gets an actor the behaviour was applied to referenced by index num.</para>
315
</para><variablelist role="params">
316
<varlistentry><term><parameter>behave</parameter> :</term>
317
<listitem><simpara> a <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
318
</simpara></listitem></varlistentry>
319
<varlistentry><term><parameter>index_</parameter> :</term>
320
<listitem><simpara> the index of an actor this behaviour is applied too.
321
</simpara></listitem></varlistentry>
322
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> A Clutter actor or NULL if <parameter>index_</parameter> is invalid.. <acronym>transfer</acronym> none. </simpara></listitem></varlistentry>
323
</variablelist><para role="since">Since 0.2</para></refsect2>
324
<refsect2 id="clutter-behaviour-get-alpha" role="function" condition="since:0.2">
325
<title>clutter_behaviour_get_alpha ()</title>
326
<indexterm zone="clutter-behaviour-get-alpha" role="0.2"><primary sortas="behaviour_get_alpha">clutter_behaviour_get_alpha</primary></indexterm><programlisting><link linkend="ClutterAlpha">ClutterAlpha</link> * clutter_behaviour_get_alpha (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behave);</programlisting>
328
Retrieves the <link linkend="ClutterAlpha"><type>ClutterAlpha</type></link> object bound to <parameter>behave</parameter>.</para>
330
</para><variablelist role="params">
331
<varlistentry><term><parameter>behave</parameter> :</term>
332
<listitem><simpara> a <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
333
</simpara></listitem></varlistentry>
334
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>transfer none. <acronym>transfer</acronym> none. </simpara></listitem></varlistentry>
335
</variablelist><para role="since">Since 0.2</para></refsect2>
336
<refsect2 id="clutter-behaviour-set-alpha" role="function" condition="since:0.2">
337
<title>clutter_behaviour_set_alpha ()</title>
338
<indexterm zone="clutter-behaviour-set-alpha" role="0.2"><primary sortas="behaviour_set_alpha">clutter_behaviour_set_alpha</primary></indexterm><programlisting><link linkend="void">void</link> clutter_behaviour_set_alpha (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behave,
339
<link linkend="ClutterAlpha">ClutterAlpha</link> *alpha);</programlisting>
341
Binds <parameter>alpha</parameter> to a <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>. The <link linkend="ClutterAlpha"><type>ClutterAlpha</type></link> object
342
is what makes a behaviour work: for each tick of the timeline
343
used by <link linkend="ClutterAlpha"><type>ClutterAlpha</type></link> a new value of the alpha parameter is
344
computed by the alpha function; the value should be used by
345
the <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link> to update one or more properties of the
346
actors to which the behaviour applies.
349
If <parameter>alpha</parameter> is not <link linkend="NULL--CAPS"><literal>NULL</literal></link>, the <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link> will take ownership
350
of the <link linkend="ClutterAlpha"><type>ClutterAlpha</type></link> instance.</para>
352
</para><variablelist role="params">
353
<varlistentry><term><parameter>behave</parameter> :</term>
354
<listitem><simpara> a <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
355
</simpara></listitem></varlistentry>
356
<varlistentry><term><parameter>alpha</parameter> :</term>
357
<listitem><simpara> a <link linkend="ClutterAlpha"><type>ClutterAlpha</type></link> or <link linkend="NULL--CAPS"><literal>NULL</literal></link> to unset a previously set alpha
358
</simpara></listitem></varlistentry>
359
</variablelist><para role="since">Since 0.2</para></refsect2>
362
<refsect1 id="ClutterBehaviour.property-details" role="property_details">
363
<title role="property_details.title">Property Details</title>
364
<refsect2 id="ClutterBehaviour--alpha" role="property"><title>The <literal>"alpha"</literal> property</title>
365
<indexterm zone="ClutterBehaviour--alpha" role="0.2"><primary sortas="Behaviour:alpha">ClutterBehaviour:alpha</primary></indexterm><programlisting> "alpha" <link linkend="ClutterAlpha">ClutterAlpha</link>* : Read / Write</programlisting>
367
The <link linkend="ClutterAlpha"><type>ClutterAlpha</type></link> object used to drive this behaviour. A <link linkend="ClutterAlpha"><type>ClutterAlpha</type></link>
368
object binds a <link linkend="ClutterTimeline"><type>ClutterTimeline</type></link> and a function which computes a value
369
(the "alpha") depending on the time. Each time the alpha value changes
370
the alpha-notify virtual function is called.</para>
372
</para><para>Since 0.2</para>
376
<refsect1 id="ClutterBehaviour.signal-details" role="signals">
377
<title role="signals.title">Signal Details</title>
378
<refsect2 id="ClutterBehaviour-applied" role="signal"><title>The <literal>"applied"</literal> signal</title>
379
<indexterm zone="ClutterBehaviour-applied" role="0.4"><primary sortas="Behaviour::applied">ClutterBehaviour::applied</primary></indexterm><programlisting><link linkend="void">void</link> user_function (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behaviour,
380
<link linkend="ClutterActor">ClutterActor</link> *actor,
381
<link linkend="gpointer">gpointer</link> user_data) : Run First</programlisting>
383
The ::apply signal is emitted each time the behaviour is applied
386
</para><variablelist role="params">
387
<varlistentry><term><parameter>behaviour</parameter> :</term>
388
<listitem><simpara> the <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link> that received the signal
389
</simpara></listitem></varlistentry>
390
<varlistentry><term><parameter>actor</parameter> :</term>
391
<listitem><simpara> the actor the behaviour was applied to.
392
</simpara></listitem></varlistentry>
393
<varlistentry><term><parameter>user_data</parameter> :</term>
394
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
395
</variablelist><para>Since 0.4</para></refsect2><refsect2 id="ClutterBehaviour-removed" role="signal"><title>The <literal>"removed"</literal> signal</title>
396
<indexterm zone="ClutterBehaviour-removed"><primary sortas="Behaviour::removed">ClutterBehaviour::removed</primary></indexterm><programlisting><link linkend="void">void</link> user_function (<link linkend="ClutterBehaviour">ClutterBehaviour</link> *behaviour,
397
<link linkend="ClutterActor">ClutterActor</link> *actor,
398
<link linkend="gpointer">gpointer</link> user_data) : Run First</programlisting>
400
The ::removed signal is emitted each time a behaviour is not applied
401
to an actor anymore.</para>
403
</para><variablelist role="params">
404
<varlistentry><term><parameter>behaviour</parameter> :</term>
405
<listitem><simpara> the <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link> that received the signal
406
</simpara></listitem></varlistentry>
407
<varlistentry><term><parameter>actor</parameter> :</term>
408
<listitem><simpara> the removed actor
409
</simpara></listitem></varlistentry>
410
<varlistentry><term><parameter>user_data</parameter> :</term>
411
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
412
</variablelist></refsect2>