cleanup specfile for packaging
[profile/ivi/clutter.git] / doc / reference / clutter / html / migrating-ClutterBehaviour.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>Migrating from ClutterBehaviour</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="index.html" title="Clutter Reference Manual">
8 <link rel="up" href="migration.html" title="Part IX. Migrating from previous version of Clutter">
9 <link rel="prev" href="using-cairo.html" title="Integration with Cairo">
10 <link rel="next" href="deprecated.html" title="Part X. Deprecated Classes">
11 <meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
16 <td><a accesskey="p" href="using-cairo.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
17 <td><a accesskey="u" href="migration.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
18 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
19 <th width="100%" align="center">Clutter Reference Manual</th>
20 <td><a accesskey="n" href="deprecated.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
21 </tr></table>
22 <div class="chapter">
23 <div class="titlepage"><div>
24 <div><h2 class="title">
25 <a name="migrating-ClutterBehaviour"></a>Migrating from ClutterBehaviour</h2></div>
26 <div><div class="author">
27 <h3 class="author">
28 <span class="firstname">Emmanuele</span> <span class="surname">Bassi</span>
29 </h3>
30 <div class="affiliation"><div class="address"><p><br>
31           <code class="email">&lt;<a class="email" href="mailto:ebassilinux.intel.com">ebassi<em class="parameter"><code>linux.intel.com</code></em></a>&gt;</code><br>
32         </p></div></div>
33 </div></div>
34 </div></div>
35 <p>The <a class="link" href="ClutterBehaviour.html" title="ClutterBehaviour"><span class="type">ClutterBehaviour</span></a> class and its sub-classes have been deprecated
36   since Clutter 1.6. The animation framework provided by <a class="link" href="clutter-Implicit-Animations.html#ClutterAnimation"><span class="type">ClutterAnimation</span></a>,
37   <a class="link" href="ClutterAnimator.html" title="ClutterAnimator"><span class="type">ClutterAnimator</span></a> and <a class="link" href="ClutterState.html" title="ClutterState"><span class="type">ClutterState</span></a> fully replaces all functionality from the
38   <a class="link" href="ClutterBehaviour.html" title="ClutterBehaviour"><span class="type">ClutterBehaviour</span></a> classes.</p>
39 <p>Generally, animations using <a class="link" href="ClutterBehaviour.html" title="ClutterBehaviour"><span class="type">ClutterBehaviour</span></a> sub-classes can be
40   effectively re-implemented just by using <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> properties.</p>
41 <p>Here is an example of an animation using a
42   <a class="link" href="ClutterBehaviourOpacity.html" title="ClutterBehaviourOpacity"><span class="type">ClutterBehaviourOpacity</span></a> instance:</p>
43 <div class="informalexample">
44   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
45     <tbody>
46       <tr>
47         <td class="listing_lines" align="right"><pre>1
48 2
49 3
50 4
51 5
52 6
53 7</pre></td>
54         <td class="listing_code"><pre class="programlisting"><span class="usertype">ClutterTimeline</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">timeline </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="ClutterTimeline.html#clutter-timeline-new">clutter_timeline_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="number">250</span><span class="symbol">);</span>
55 <span class="usertype">ClutterAlpha</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">alpha </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="ClutterAlpha.html#clutter-alpha-new-full">clutter_alpha_new_full</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">timeline</span><span class="symbol">,</span><span class="normal"> <a href="clutter-Implicit-Animations.html#CLUTTER-LINEAR:CAPS">CLUTTER_LINEAR</a></span><span class="symbol">);</span>
56 <span class="usertype">ClutterBehaviour</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">behaviour </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="ClutterBehaviourOpacity.html#clutter-behaviour-opacity-new">clutter_behaviour_opacity_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">alpha</span><span class="symbol">,</span><span class="normal"> </span><span class="number">255</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">);</span>
57
58 <span class="function"><a href="ClutterBehaviour.html#clutter-behaviour-apply">clutter_behaviour_apply</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">behaviour</span><span class="symbol">,</span><span class="normal"> some_actor</span><span class="symbol">);</span>
59
60 <span class="function"><a href="ClutterTimeline.html#clutter-timeline-start">clutter_timeline_start</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">timeline</span><span class="symbol">);</span></pre></td>
61       </tr>
62     </tbody>
63   </table>
64 </div>
65
66 <p>The same effect can be achieved by using <a class="link" href="clutter-Implicit-Animations.html#clutter-actor-animate" title="clutter_actor_animate ()"><code class="function">clutter_actor_animate()</code></a> and
67   the <a class="link" href="ClutterActor.html#ClutterActor--opacity" title='The "opacity" property'><span class="type">"opacity"</span></a> property:</p>
68 <div class="informalexample">
69   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
70     <tbody>
71       <tr>
72         <td class="listing_lines" align="right"><pre>1
73 2
74 3
75 4</pre></td>
76         <td class="listing_code"><pre class="programlisting"><span class="function"><a href="ClutterActor.html#clutter-actor-set-opacity">clutter_actor_set_opacity</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">some_actor</span><span class="symbol">,</span><span class="normal"> </span><span class="number">255</span><span class="symbol">);</span>
77 <span class="function"><a href="clutter-Implicit-Animations.html#clutter-actor-animate">clutter_actor_animate</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">some_actor</span><span class="symbol">,</span><span class="normal"> <a href="clutter-Implicit-Animations.html#CLUTTER-LINEAR:CAPS">CLUTTER_LINEAR</a></span><span class="symbol">,</span><span class="normal"> </span><span class="number">250</span><span class="symbol">,</span>
78 <span class="normal">                       </span><span class="string">"opacity"</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span>
79 <span class="normal">                       <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS">NULL</a></span><span class="symbol">);</span></pre></td>
80       </tr>
81     </tbody>
82   </table>
83 </div>
84
85 <p><a class="link" href="ClutterBehaviour.html" title="ClutterBehaviour"><span class="type">ClutterBehaviour</span></a>s used for continuous animations with looping
86   timelines can still be effectively replaced by looping animations; for
87   instance, the following example of a "pulsating" actor using
88   <a class="link" href="ClutterBehaviourScale.html" title="ClutterBehaviourScale"><span class="type">ClutterBehaviourScale</span></a>:</p>
89 <div class="informalexample">
90   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
91     <tbody>
92       <tr>
93         <td class="listing_lines" align="right"><pre>1
94 2
95 3
96 4
97 5
98 6
99 7
100 8
101 9
102 10
103 11
104 12
105 13
106 14
107 15
108 16
109 17
110 18
111 19
112 20
113 21
114 22
115 23
116 24
117 25
118 26
119 27
120 28
121 29</pre></td>
122         <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
123 <span class="function">reverse_timeline</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">ClutterTimeline</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">timeline</span><span class="symbol">)</span>
124 <span class="cbracket">{</span>
125 <span class="normal">  </span><span class="usertype">ClutterTimelineDirection</span><span class="normal"> dir </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="ClutterTimeline.html#clutter-timeline-get-direction">clutter_timeline_get_direction</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">timeline</span><span class="symbol">);</span>
126
127 <span class="normal">  </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">dir </span><span class="symbol">==</span><span class="normal"> <a href="ClutterTimeline.html#CLUTTER-TIMELINE-FORWARD:CAPS">CLUTTER_TIMELINE_FORWARD</a></span><span class="symbol">)</span>
128 <span class="normal">    dir </span><span class="symbol">=</span><span class="normal"> <a href="ClutterTimeline.html#CLUTTER-TIMELINE-BACKWARD:CAPS">CLUTTER_TIMELINE_BACKWARD</a></span><span class="symbol">;</span>
129 <span class="normal">  </span><span class="keyword">else</span>
130 <span class="normal">    dir </span><span class="symbol">=</span><span class="normal"> <a href="ClutterTimeline.html#CLUTTER-TIMELINE-FORWARD:CAPS">CLUTTER_TIMELINE_FORWARD</a></span><span class="symbol">;</span>
131
132 <span class="normal">  </span><span class="function"><a href="ClutterTimeline.html#clutter-timeline-set-direction">clutter_timeline_set_direction</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">timeline</span><span class="symbol">,</span><span class="normal"> dir</span><span class="symbol">);</span>
133 <span class="cbracket">}</span>
134
135 <span class="normal">  </span><span class="usertype">ClutterTimeline</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">timeline </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="ClutterTimeline.html#clutter-timeline-new">clutter_timeline_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="number">500</span><span class="symbol">);</span>
136 <span class="normal">  </span><span class="usertype">ClutterAlpha</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">alpha </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="ClutterAlpha.html#clutter-alpha-new-full">clutter_alpha_new_full</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">timeline</span><span class="symbol">,</span><span class="normal"> <a href="clutter-Implicit-Animations.html#CLUTTER-LINEAR:CAPS">CLUTTER_LINEAR</a></span><span class="symbol">);</span>
137 <span class="normal">  </span><span class="usertype">ClutterBehaviour</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">behaviour</span><span class="symbol">;</span>
138
139 <span class="normal">  </span><span class="function">g_object_set</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">some_actor</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"scale-gravity"</span><span class="symbol">,</span><span class="normal"> <a href="ClutterBehaviourScale.html#CLUTTER-GRAVITY-CENTER:CAPS">CLUTTER_GRAVITY_CENTER</a></span><span class="symbol">,</span><span class="normal"> <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS">NULL</a></span><span class="symbol">);</span>
140 <span class="normal">  behaviour </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="ClutterBehaviourScale.html#clutter-behaviour-scale-new">clutter_behaviour_scale_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">alpha</span><span class="symbol">,</span>
141 <span class="normal">                                           </span><span class="number">1.0</span><span class="symbol">,</span><span class="normal"> </span><span class="number">2.0</span><span class="symbol">,</span>
142 <span class="normal">                                           </span><span class="number">1.0</span><span class="symbol">,</span><span class="normal"> </span><span class="number">2.0</span><span class="symbol">);</span>
143 <span class="normal">  </span><span class="function"><a href="ClutterBehaviour.html#clutter-behaviour-apply">clutter_behaviour_apply</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">behaviour</span><span class="symbol">,</span><span class="normal"> some_actor</span><span class="symbol">);</span>
144
145 <span class="normal">  </span><span class="function">g_signal_connect</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">timeline</span><span class="symbol">,</span>
146 <span class="normal">                    </span><span class="string">"completed"</span><span class="symbol">,</span><span class="normal"> </span><span class="function">G_CALLBACK</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">reverse_timeline</span><span class="symbol">),</span>
147 <span class="normal">                    <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS">NULL</a></span><span class="symbol">);</span>
148
149 <span class="normal">  </span><span class="function"><a href="ClutterTimeline.html#clutter-timeline-set-loop">clutter_timeline_set_loop</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">timeline</span><span class="symbol">);</span>
150 <span class="normal">  </span><span class="function"><a href="ClutterTimeline.html#clutter-timeline-start">clutter_timeline_start</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">timeline</span><span class="symbol">);</span></pre></td>
151       </tr>
152     </tbody>
153   </table>
154 </div>
155
156 <p>The same effect can be achieved using a <a class="link" href="clutter-Implicit-Animations.html#ClutterAnimation"><span class="type">ClutterAnimation</span></a>:</p>
157 <div class="informalexample">
158   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
159     <tbody>
160       <tr>
161         <td class="listing_lines" align="right"><pre>1
162 2
163 3
164 4
165 5
166 6
167 7
168 8
169 9
170 10</pre></td>
171         <td class="listing_code"><pre class="programlisting"><span class="usertype">ClutterAnimation</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">animation </span><span class="symbol">=</span>
172 <span class="normal">  </span><span class="function"><a href="clutter-Implicit-Animations.html#clutter-actor-animate">clutter_actor_animate</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">some_actor</span><span class="symbol">,</span><span class="normal"> <a href="clutter-Implicit-Animations.html#CLUTTER-LINEAR:CAPS">CLUTTER_LINEAR</a></span><span class="symbol">,</span><span class="normal"> </span><span class="number">500</span><span class="symbol">,</span>
173 <span class="normal">                         </span><span class="string">"scale-x"</span><span class="symbol">,</span><span class="normal"> </span><span class="number">2.0</span><span class="symbol">,</span>
174 <span class="normal">                         </span><span class="string">"scale-y"</span><span class="symbol">,</span><span class="normal"> </span><span class="number">2.0</span><span class="symbol">,</span>
175 <span class="normal">                         </span><span class="string">"fixed::scale-gravity"</span><span class="symbol">,</span><span class="normal"> <a href="ClutterBehaviourScale.html#CLUTTER-GRAVITY-CENTER:CAPS">CLUTTER_GRAVITY_CENTER</a></span><span class="symbol">,</span>
176 <span class="normal">                         <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL--CAPS">NULL</a></span><span class="symbol">);</span>
177
178 <span class="usertype">ClutterTimeline</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">timeline </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="clutter-Implicit-Animations.html#clutter-animation-get-timeline">clutter_animation_get_timeline</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">animation</span><span class="symbol">);</span>
179 <span class="function"><a href="ClutterTimeline.html#clutter-timeline-set-repeat-count">clutter_timeline_set_repeat_count</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">timeline</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">-</span><span class="number">1</span><span class="symbol">);</span>
180 <span class="function"><a href="ClutterTimeline.html#clutter-timeline-set-auto-reverse">clutter_timeline_set_auto_reverse</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">timeline</span><span class="symbol">,</span><span class="normal"> TRUE</span><span class="symbol">);</span></pre></td>
181       </tr>
182     </tbody>
183   </table>
184 </div>
185
186 <p><a class="link" href="ClutterBehaviour.html" title="ClutterBehaviour"><span class="type">ClutterBehaviour</span></a> sub-classes can be applied to multiple actors, in
187   order to share the duration and the easing mode. It is possible to use the
188   same underlying <a class="link" href="ClutterTimeline.html" title="ClutterTimeline"><span class="type">ClutterTimeline</span></a> and <a class="link" href="ClutterAlpha.html" title="ClutterAlpha"><span class="type">ClutterAlpha</span></a> instances with
189   <a class="link" href="clutter-Implicit-Animations.html#ClutterAnimation"><span class="type">ClutterAnimation</span></a> to achieve the same effect. Complex animations, spanning
190   multiple actors, should use the <a class="link" href="ClutterAnimator.html" title="ClutterAnimator"><span class="type">ClutterAnimator</span></a> and <a class="link" href="ClutterState.html" title="ClutterState"><span class="type">ClutterState</span></a> classes
191   instead.</p>
192 </div>
193 <div class="footer">
194 <hr>
195           Generated by GTK-Doc V1.18.1</div>
196 </body>
197 </html>