~oem-solutions-group/unity-2d/clutter-1.0

« back to all changes in this revision

Viewing changes to doc/reference/clutter/xml/clutter-behaviour.xml

  • Committer: Bazaar Package Importer
  • Author(s): Emilio Pozuelo Monfort
  • Date: 2010-03-21 13:27:56 UTC
  • mto: (2.1.3 experimental)
  • mto: This revision was merged to the branch mainline in revision 8.
  • Revision ID: james.westby@ubuntu.com-20100321132756-nf8yd30yxo3zzwcm
Tags: upstream-1.2.2
ImportĀ upstreamĀ versionĀ 1.2.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?xml version="1.0"?>
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">
5
 
]>
6
 
 
7
 
<refentry id="ClutterBehaviour">
8
 
<refmeta>
9
 
<refentrytitle role="top_of_page" id="ClutterBehaviour.top_of_page">ClutterBehaviour</refentrytitle>
10
 
<manvolnum>3</manvolnum>
11
 
<refmiscinfo>CLUTTER Library</refmiscinfo>
12
 
</refmeta>
13
 
 
14
 
<refnamediv>
15
 
<refname>ClutterBehaviour</refname>
16
 
<refpurpose>Class for providing behaviours to actors</refpurpose>
17
 
</refnamediv>
18
 
 
19
 
<refsynopsisdiv id="ClutterBehaviour.synopsis" role="synopsis">
20
 
<title role="synopsis.title">Synopsis</title>
21
 
 
22
 
<synopsis>
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);
45
 
</synopsis>
46
 
</refsynopsisdiv>
47
 
 
48
 
<refsect1 id="ClutterBehaviour.object-hierarchy" role="object_hierarchy">
49
 
<title role="object_hierarchy.title">Object Hierarchy</title>
50
 
<synopsis>
51
 
  <link linkend="GObject">GObject</link>
52
 
   +----ClutterBehaviour
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>
59
 
</synopsis>
60
 
</refsect1>
61
 
 
62
 
 
63
 
 
64
 
 
65
 
 
66
 
<refsect1 id="ClutterBehaviour.properties" role="properties">
67
 
<title role="properties.title">Properties</title>
68
 
<synopsis>
69
 
  &quot;<link linkend="ClutterBehaviour--alpha">alpha</link>&quot;                    <link linkend="ClutterAlpha">ClutterAlpha</link>*         : Read / Write
70
 
</synopsis>
71
 
</refsect1>
72
 
 
73
 
<refsect1 id="ClutterBehaviour.signals" role="signal_proto">
74
 
<title role="signal_proto.title">Signals</title>
75
 
<synopsis>
76
 
  &quot;<link linkend="ClutterBehaviour-applied">applied</link>&quot;                                        : Run First
77
 
  &quot;<link linkend="ClutterBehaviour-removed">removed</link>&quot;                                        : Run First
78
 
</synopsis>
79
 
</refsect1>
80
 
 
81
 
 
82
 
<refsect1 id="ClutterBehaviour.description" role="desc">
83
 
<title role="desc.title">Description</title>
84
 
<para>
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.
93
 
</para>
94
 
<para>
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.
100
 
</para>
101
 
<para>
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:
105
 
</para>
106
 
<para>
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"/>
110
 
</figure>
111
 
</para>
112
 
<para>
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
118
 
decelerating.
119
 
</para>
120
 
<para>
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.
126
 
</para>
127
 
<para>
128
 
<link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link> is available since Clutter 0.2</para>
129
 
<para>
130
 
</para>
131
 
</refsect1>
132
 
 
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>
138
 
<para>
139
 
<link linkend="ClutterBehaviour-struct"><type>ClutterBehaviour</type></link> contains only private data and should
140
 
be accessed with the functions below.</para>
141
 
<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);
149
 
 
150
 
  /* signals */
151
 
  void (*applied)  (ClutterBehaviour *behave,
152
 
                    ClutterActor     *actor);
153
 
  void (*removed)  (ClutterBehaviour *behave,
154
 
                    ClutterActor     *actor);
155
 
} ClutterBehaviourClass;
156
 
</programlisting>
157
 
<para>
158
 
Base class for behaviours.</para>
159
 
<para>
160
 
</para><variablelist role="struct">
161
 
<varlistentry>
162
 
<term><structfield>alpha_notify</structfield>&#160;()</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>
168
 
</varlistentry>
169
 
<varlistentry>
170
 
<term><structfield>applied</structfield>&#160;()</term>
171
 
<listitem><simpara> signal class handler for the ClutterBehaviour::applied signal
172
 
</simpara></listitem>
173
 
</varlistentry>
174
 
<varlistentry>
175
 
<term><structfield>removed</structfield>&#160;()</term>
176
 
<listitem><simpara> signal class handler for the ClutterBehaviour::removed signal
177
 
</simpara></listitem>
178
 
</varlistentry>
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>
184
 
<para>
185
 
Applies <parameter>behave</parameter> to <parameter>actor</parameter>.  This function adds a reference on
186
 
the actor.</para>
187
 
<para>
188
 
</para><variablelist role="params">
189
 
<varlistentry><term><parameter>behave</parameter>&#160;:</term>
190
 
<listitem><simpara> a <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
191
 
</simpara></listitem></varlistentry>
192
 
<varlistentry><term><parameter>actor</parameter>&#160;:</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>
200
 
<para>
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>
203
 
<para>
204
 
</para><variablelist role="params">
205
 
<varlistentry><term><parameter>behave</parameter>&#160;:</term>
206
 
<listitem><simpara> a <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
207
 
</simpara></listitem></varlistentry>
208
 
<varlistentry><term><parameter>actor</parameter>&#160;:</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>
215
 
<para>
216
 
Removes every actor from the list that <parameter>behave</parameter> holds.</para>
217
 
<para>
218
 
</para><variablelist role="params">
219
 
<varlistentry><term><parameter>behave</parameter>&#160;:</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>
227
 
<para>
228
 
Check if <parameter>behave</parameter> applied to  <parameter>actor</parameter>.</para>
229
 
<para>
230
 
</para><variablelist role="params">
231
 
<varlistentry><term><parameter>behave</parameter>&#160;:</term>
232
 
<listitem><simpara> a <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
233
 
</simpara></listitem></varlistentry>
234
 
<varlistentry><term><parameter>actor</parameter>&#160;:</term>
235
 
<listitem><simpara> a <link linkend="ClutterActor"><type>ClutterActor</type></link>
236
 
</simpara></listitem></varlistentry>
237
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> TRUE if actor has behaviour. FALSE otherwise.
238
 
 
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>
246
 
<para>
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>
249
 
<para>
250
 
</para><variablelist role="params">
251
 
<varlistentry><term><parameter>behaviour</parameter>&#160;:</term>
252
 
<listitem><simpara> the <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
253
 
</simpara></listitem></varlistentry>
254
 
<varlistentry><term><parameter>actor</parameter>&#160;:</term>
255
 
<listitem><simpara> an actor driven by <parameter>behaviour</parameter>
256
 
</simpara></listitem></varlistentry>
257
 
<varlistentry><term><parameter>data</parameter>&#160;:</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>
266
 
<para>
267
 
Calls <parameter>func</parameter> for every actor driven by <parameter>behave</parameter>.</para>
268
 
<para>
269
 
</para><variablelist role="params">
270
 
<varlistentry><term><parameter>behave</parameter>&#160;:</term>
271
 
<listitem><simpara> a <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
272
 
</simpara></listitem></varlistentry>
273
 
<varlistentry><term><parameter>func</parameter>&#160;:</term>
274
 
<listitem><simpara> a function called for each actor
275
 
</simpara></listitem></varlistentry>
276
 
<varlistentry><term><parameter>data</parameter>&#160;:</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>
283
 
<para>
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>
287
 
<para>
288
 
</para><variablelist role="params">
289
 
<varlistentry><term><parameter>behave</parameter>&#160;:</term>
290
 
<listitem><simpara> a <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
291
 
</simpara></listitem></varlistentry>
292
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</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>
297
 
<para>
298
 
Gets the number of actors this behaviour is applied too.</para>
299
 
<para>
300
 
</para><variablelist role="params">
301
 
<varlistentry><term><parameter>behave</parameter>&#160;:</term>
302
 
<listitem><simpara> a <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
303
 
</simpara></listitem></varlistentry>
304
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> The number of applied actors 
305
 
 
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>
312
 
<para>
313
 
Gets an actor the behaviour was applied to referenced by index num.</para>
314
 
<para>
315
 
</para><variablelist role="params">
316
 
<varlistentry><term><parameter>behave</parameter>&#160;:</term>
317
 
<listitem><simpara> a <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
318
 
</simpara></listitem></varlistentry>
319
 
<varlistentry><term><parameter>index_</parameter>&#160;:</term>
320
 
<listitem><simpara> the index of an actor this behaviour is applied too. 
321
 
</simpara></listitem></varlistentry>
322
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</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>
327
 
<para>
328
 
Retrieves the <link linkend="ClutterAlpha"><type>ClutterAlpha</type></link> object bound to <parameter>behave</parameter>.</para>
329
 
<para>
330
 
</para><variablelist role="params">
331
 
<varlistentry><term><parameter>behave</parameter>&#160;:</term>
332
 
<listitem><simpara> a <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
333
 
</simpara></listitem></varlistentry>
334
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</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>
340
 
<para>
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.
347
 
</para>
348
 
<para>
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>
351
 
<para>
352
 
</para><variablelist role="params">
353
 
<varlistentry><term><parameter>behave</parameter>&#160;:</term>
354
 
<listitem><simpara> a <link linkend="ClutterBehaviour"><type>ClutterBehaviour</type></link>
355
 
</simpara></listitem></varlistentry>
356
 
<varlistentry><term><parameter>alpha</parameter>&#160;:</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>
360
 
 
361
 
</refsect1>
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>&quot;alpha&quot;</literal> property</title>
365
 
<indexterm zone="ClutterBehaviour--alpha" role="0.2"><primary sortas="Behaviour:alpha">ClutterBehaviour:alpha</primary></indexterm><programlisting>  &quot;alpha&quot;                    <link linkend="ClutterAlpha">ClutterAlpha</link>*         : Read / Write</programlisting>
366
 
<para>
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>
371
 
<para>
372
 
</para><para>Since 0.2</para>
373
 
</refsect2>
374
 
</refsect1>
375
 
 
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>&quot;applied&quot;</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>
382
 
<para>
383
 
The ::apply signal is emitted each time the behaviour is applied
384
 
to an actor.</para>
385
 
<para>
386
 
</para><variablelist role="params">
387
 
<varlistentry><term><parameter>behaviour</parameter>&#160;:</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>&#160;:</term>
391
 
<listitem><simpara> the actor the behaviour was applied to.
392
 
</simpara></listitem></varlistentry>
393
 
<varlistentry><term><parameter>user_data</parameter>&#160;:</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>&quot;removed&quot;</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>
399
 
<para>
400
 
The ::removed signal is emitted each time a behaviour is not applied
401
 
to an actor anymore.</para>
402
 
<para>
403
 
</para><variablelist role="params">
404
 
<varlistentry><term><parameter>behaviour</parameter>&#160;:</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>&#160;:</term>
408
 
<listitem><simpara> the removed actor
409
 
</simpara></listitem></varlistentry>
410
 
<varlistentry><term><parameter>user_data</parameter>&#160;:</term>
411
 
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
412
 
</variablelist></refsect2>
413
 
</refsect1>
414
 
 
415
 
 
416
 
 
417
 
</refentry>