update to 1.10.4
[profile/ivi/clutter.git] / doc / reference / clutter / html / ClutterLayoutManager.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>ClutterLayoutManager</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="ch01.html" title="Abstract classes and interfaces">
9 <link rel="prev" href="ClutterMedia.html" title="ClutterMedia">
10 <link rel="next" href="ClutterLayoutMeta.html" title="ClutterLayoutMeta">
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">
16 <tr valign="middle">
17 <td><a accesskey="p" href="ClutterMedia.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20 <th width="100%" align="center">Clutter Reference Manual</th>
21 <td><a accesskey="n" href="ClutterLayoutMeta.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
22 </tr>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#ClutterLayoutManager.synopsis" class="shortcut">Top</a>
25                    | 
26                   <a href="#ClutterLayoutManager.description" class="shortcut">Description</a>
27                    | 
28                   <a href="#ClutterLayoutManager.object-hierarchy" class="shortcut">Object Hierarchy</a>
29                    | 
30                   <a href="#ClutterLayoutManager.signals" class="shortcut">Signals</a>
31 </td></tr>
32 </table>
33 <div class="refentry">
34 <a name="ClutterLayoutManager"></a><div class="titlepage"></div>
35 <div class="refnamediv"><table width="100%"><tr>
36 <td valign="top">
37 <h2><span class="refentrytitle"><a name="ClutterLayoutManager.top_of_page"></a>ClutterLayoutManager</span></h2>
38 <p>ClutterLayoutManager — Layout managers base class</p>
39 </td>
40 <td valign="top" align="right"></td>
41 </tr></table></div>
42 <div class="refsynopsisdiv">
43 <a name="ClutterLayoutManager.synopsis"></a><h2>Synopsis</h2>
44 <pre class="synopsis">                    <a class="link" href="ClutterLayoutManager.html#ClutterLayoutManager-struct" title="ClutterLayoutManager">ClutterLayoutManager</a>;
45 struct              <a class="link" href="ClutterLayoutManager.html#ClutterLayoutManagerClass" title="struct ClutterLayoutManagerClass">ClutterLayoutManagerClass</a>;
46 <span class="returnvalue">void</span>                <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-get-preferred-width" title="clutter_layout_manager_get_preferred_width ()">clutter_layout_manager_get_preferred_width</a>
47                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
48                                                          <em class="parameter"><code><a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> *container</code></em>,
49                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> for_height</code></em>,
50                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *min_width_p</code></em>,
51                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *nat_width_p</code></em>);
52 <span class="returnvalue">void</span>                <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-get-preferred-height" title="clutter_layout_manager_get_preferred_height ()">clutter_layout_manager_get_preferred_height</a>
53                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
54                                                          <em class="parameter"><code><a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> *container</code></em>,
55                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> for_width</code></em>,
56                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *min_height_p</code></em>,
57                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *nat_height_p</code></em>);
58 <span class="returnvalue">void</span>                <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-allocate" title="clutter_layout_manager_allocate ()">clutter_layout_manager_allocate</a>     (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
59                                                          <em class="parameter"><code><a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> *container</code></em>,
60                                                          <em class="parameter"><code>const <a class="link" href="ClutterActor.html#ClutterActorBox" title="struct ClutterActorBox"><span class="type">ClutterActorBox</span></a> *allocation</code></em>,
61                                                          <em class="parameter"><code><a class="link" href="ClutterActor.html#ClutterAllocationFlags" title="enum ClutterAllocationFlags"><span class="type">ClutterAllocationFlags</span></a> flags</code></em>);
62 <span class="returnvalue">void</span>                <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-layout-changed" title="clutter_layout_manager_layout_changed ()">clutter_layout_manager_layout_changed</a>
63                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>);
64 <span class="returnvalue">void</span>                <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-set-container" title="clutter_layout_manager_set_container ()">clutter_layout_manager_set_container</a>
65                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
66                                                          <em class="parameter"><code><a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> *container</code></em>);
67
68 <a class="link" href="ClutterLayoutMeta.html" title="ClutterLayoutMeta"><span class="returnvalue">ClutterLayoutMeta</span></a> * <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-get-child-meta" title="clutter_layout_manager_get_child_meta ()">clutter_layout_manager_get_child_meta</a>
69                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
70                                                          <em class="parameter"><code><a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> *container</code></em>,
71                                                          <em class="parameter"><code><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> *actor</code></em>);
72 <span class="returnvalue">void</span>                <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-child-set" title="clutter_layout_manager_child_set ()">clutter_layout_manager_child_set</a>    (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
73                                                          <em class="parameter"><code><a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> *container</code></em>,
74                                                          <em class="parameter"><code><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> *actor</code></em>,
75                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property</code></em>,
76                                                          <em class="parameter"><code>...</code></em>);
77 <span class="returnvalue">void</span>                <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-child-set-property" title="clutter_layout_manager_child_set_property ()">clutter_layout_manager_child_set_property</a>
78                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
79                                                          <em class="parameter"><code><a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> *container</code></em>,
80                                                          <em class="parameter"><code><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> *actor</code></em>,
81                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
82                                                          <em class="parameter"><code>const <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
83 <span class="returnvalue">void</span>                <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-child-get" title="clutter_layout_manager_child_get ()">clutter_layout_manager_child_get</a>    (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
84                                                          <em class="parameter"><code><a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> *container</code></em>,
85                                                          <em class="parameter"><code><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> *actor</code></em>,
86                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property</code></em>,
87                                                          <em class="parameter"><code>...</code></em>);
88 <span class="returnvalue">void</span>                <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-child-get-property" title="clutter_layout_manager_child_get_property ()">clutter_layout_manager_child_get_property</a>
89                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
90                                                          <em class="parameter"><code><a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> *container</code></em>,
91                                                          <em class="parameter"><code><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> *actor</code></em>,
92                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
93                                                          <em class="parameter"><code><a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
94
95 <a href="../gobject/gobject-GParamSpec.html#GParamSpec"><span class="returnvalue">GParamSpec</span></a> *        <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-find-child-property" title="clutter_layout_manager_find_child_property ()">clutter_layout_manager_find_child_property</a>
96                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
97                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
98 <a href="../gobject/gobject-GParamSpec.html#GParamSpec"><span class="returnvalue">GParamSpec</span></a> **       <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-list-child-properties" title="clutter_layout_manager_list_child_properties ()">clutter_layout_manager_list_child_properties</a>
99                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
100                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_pspecs</code></em>);
101
102 <a class="link" href="ClutterAlpha.html" title="ClutterAlpha"><span class="returnvalue">ClutterAlpha</span></a> *      <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-begin-animation" title="clutter_layout_manager_begin_animation ()">clutter_layout_manager_begin_animation</a>
103                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
104                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> duration</code></em>,
105                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> mode</code></em>);
106 <span class="returnvalue">void</span>                <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-end-animation" title="clutter_layout_manager_end_animation ()">clutter_layout_manager_end_animation</a>
107                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>);
108 <a href="../glib/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>             <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-get-animation-progress" title="clutter_layout_manager_get_animation_progress ()">clutter_layout_manager_get_animation_progress</a>
109                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>);
110 </pre>
111 </div>
112 <div class="refsect1">
113 <a name="ClutterLayoutManager.object-hierarchy"></a><h2>Object Hierarchy</h2>
114 <pre class="synopsis">
115   <a href="../gobject/gobject-The-Base-Object-Type.html#GObject">GObject</a>
116    +----<a href="../gobject/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
117          +----ClutterLayoutManager
118                +----<a class="link" href="ClutterBinLayout.html" title="ClutterBinLayout">ClutterBinLayout</a>
119                +----<a class="link" href="ClutterBoxLayout.html" title="ClutterBoxLayout">ClutterBoxLayout</a>
120                +----<a class="link" href="ClutterFixedLayout.html" title="ClutterFixedLayout">ClutterFixedLayout</a>
121                +----<a class="link" href="ClutterFlowLayout.html" title="ClutterFlowLayout">ClutterFlowLayout</a>
122                +----<a class="link" href="ClutterTableLayout.html" title="ClutterTableLayout">ClutterTableLayout</a>
123 </pre>
124 </div>
125 <div class="refsect1">
126 <a name="ClutterLayoutManager.signals"></a><h2>Signals</h2>
127 <pre class="synopsis">
128   "<a class="link" href="ClutterLayoutManager.html#ClutterLayoutManager-layout-changed" title='The "layout-changed" signal'>layout-changed</a>"                                 : <a href="../gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
129 </pre>
130 </div>
131 <div class="refsect1">
132 <a name="ClutterLayoutManager.description"></a><h2>Description</h2>
133 <p>
134 <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> is a base abstract class for layout managers. A
135 layout manager implements the layouting policy for a composite or a
136 container actor: it controls the preferred size of the actor to which
137 it has been paired, and it controls the allocation of its children.
138 </p>
139 <p>
140 Any composite or container <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> subclass can delegate the
141 layouting of its children to a <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a>. Clutter provides
142 a generic container using <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> called <a class="link" href="ClutterBox.html" title="ClutterBox"><span class="type">ClutterBox</span></a>.
143 </p>
144 <p>
145 Clutter provides some simple <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> sub-classes, like
146 <a class="link" href="ClutterFlowLayout.html" title="ClutterFlowLayout"><span class="type">ClutterFlowLayout</span></a> and <a class="link" href="ClutterBinLayout.html" title="ClutterBinLayout"><span class="type">ClutterBinLayout</span></a>.
147 </p>
148 <p>
149 </p>
150 <div class="refsect2">
151 <a name="ClutterLayoutManager-use-in-Actor"></a><h3>Using a Layout Manager inside an Actor</h3>
152 <p>In order to use a <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> inside a <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>
153   sub-class you should invoke <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-get-preferred-width" title="clutter_layout_manager_get_preferred_width ()"><code class="function">clutter_layout_manager_get_preferred_width()</code></a>
154   inside the <span class="structname">ClutterActor</span>::<code class="function">get_preferred_width()</code>
155   virtual function and <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-get-preferred-height" title="clutter_layout_manager_get_preferred_height ()"><code class="function">clutter_layout_manager_get_preferred_height()</code></a>
156   inside the <span class="structname">ClutterActor</span>::<code class="function">get_preferred_height()</code>
157   virtual function implementations. You should also call
158   <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-allocate" title="clutter_layout_manager_allocate ()"><code class="function">clutter_layout_manager_allocate()</code></a> inside the implementation of the
159   <span class="structname">ClutterActor</span>::<code class="function">allocate()</code> virtual
160   function.</p>
161 <p>In order to receive notifications for changes in the layout
162   manager policies you should also connect to the
163   <a class="link" href="ClutterLayoutManager.html#ClutterLayoutManager-layout-changed" title='The "layout-changed" signal'><span class="type">"layout-changed"</span></a> signal and queue a relayout
164   on your actor. The following code should be enough if the actor
165   does not need to perform specific operations whenever a layout
166   manager changes:</p>
167 <div class="informalexample">
168   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
169     <tbody>
170       <tr>
171         <td class="listing_lines" align="right"><pre>1
172 2
173 3
174 4</pre></td>
175         <td class="listing_code"><pre class="programlisting"><span class="function"><a href="../gobject/gobject-Signals.html#g-signal-connect-swapped">g_signal_connect_swapped</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">layout_manager</span><span class="symbol">,</span>
176 <span class="normal">                          </span><span class="string">"layout-changed"</span><span class="symbol">,</span>
177 <span class="normal">                          </span><span class="function"><a href="../gobject/gobject-Closures.html#G-CALLBACK:CAPS">G_CALLBACK</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="ClutterActor.html#clutter-actor-queue-relayout">clutter_actor_queue_relayout</a></span><span class="symbol">),</span>
178 <span class="normal">                          actor</span><span class="symbol">);</span></pre></td>
179       </tr>
180     </tbody>
181   </table>
182 </div>
183
184 </div>
185 <p>
186 </p>
187 <p>
188 </p>
189 <div class="refsect2">
190 <a name="ClutterLayoutManager-implementation"></a><h3>Implementing a ClutterLayoutManager</h3>
191 <p>The implementation of a layout manager does not differ from
192   the implementation of the size requisition and allocation bits of
193   <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>, so you should read the relative documentation
194   <GTKDOCLINK HREF="clutter-subclassing-ClutterActor">for subclassing
195   ClutterActor</GTKDOCLINK>.</p>
196 <p>The layout manager implementation can hold a back pointer
197   to the <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> by implementing the
198   <code class="function"><code class="function">set_container()</code></code> virtual function. The layout manager
199   should not hold a real reference (i.e. call <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-ref"><code class="function">g_object_ref()</code></a>) on the
200   container actor, to avoid reference cycles.</p>
201 <p>If a layout manager has properties affecting the layout
202   policies then it should emit the <a class="link" href="ClutterLayoutManager.html#ClutterLayoutManager-layout-changed" title='The "layout-changed" signal'><span class="type">"layout-changed"</span></a>
203   signal on itself by using the <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-layout-changed" title="clutter_layout_manager_layout_changed ()"><code class="function">clutter_layout_manager_layout_changed()</code></a>
204   function whenever one of these properties changes.</p>
205 </div>
206 <p>
207 </p>
208 <p>
209 </p>
210 <div class="refsect2">
211 <a name="ClutterLayoutManager-animation"></a><h3>Animating a ClutterLayoutManager</h3>
212 <p>A layout manager is used to let a <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> take complete
213   ownership over the layout (that is: the position and sizing) of its
214   children; this means that using the Clutter animation API, like
215   <a class="link" href="clutter-Implicit-Animations.html#clutter-actor-animate" title="clutter_actor_animate ()"><code class="function">clutter_actor_animate()</code></a>, to animate the position and sizing of a child of
216   a layout manager it is not going to work properly, as the animation will
217   automatically override any setting done by the layout manager
218   itself.</p>
219 <p>It is possible for a <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> sub-class to animate its
220   children layout by using the base class animation support. The
221   <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> animation support consists of three virtual
222   functions: <code class="function"><code class="function">begin_animation()</code></code>,
223   <code class="function"><code class="function">get_animation_progress()</code></code> and
224   <code class="function"><code class="function">end_animation()</code></code>.</p>
225 <div class="variablelist"><table border="0">
226 <col align="left" valign="top">
227 <tbody>
228 <tr>
229 <td><p><span class="term"><code class="function">begin_animation (duration, easing)</code></span></p></td>
230 <td><p>This virtual function is invoked when the layout
231       manager should begin an animation. The implementation should set up
232       the state for the animation and create the ancillary objects for
233       animating the layout. The default implementation creates a
234       <a class="link" href="ClutterTimeline.html" title="ClutterTimeline"><span class="type">ClutterTimeline</span></a> for the given duration and a <a class="link" href="ClutterAlpha.html" title="ClutterAlpha"><span class="type">ClutterAlpha</span></a> binding
235       the timeline to the given easing mode. This function returns a
236       <a class="link" href="ClutterAlpha.html" title="ClutterAlpha"><span class="type">ClutterAlpha</span></a> which should be used to control the animation from
237       the caller perspective.</p></td>
238 </tr>
239 <tr>
240 <td><p><span class="term"><code class="function"><code class="function">get_animation_progress()</code></code></span></p></td>
241 <td><p>This virtual function should be invoked when animating
242       a layout manager. It returns the progress of the animation, using the
243       same semantics as the <a class="link" href="ClutterAlpha.html#ClutterAlpha--alpha" title='The "alpha" property'><span class="type">"alpha"</span></a> value.</p></td>
244 </tr>
245 <tr>
246 <td><p><span class="term"><code class="function"><code class="function">end_animation()</code></code></span></p></td>
247 <td><p>This virtual function is invoked when the animation of
248       a layout manager ends, and it is meant to be used for bookkeeping the
249       objects created in the <code class="function"><code class="function">begin_animation()</code></code>
250       function. The default implementation will call it implicitly when the
251       timeline is complete.</p></td>
252 </tr>
253 </tbody>
254 </table></div>
255 <p>The simplest way to animate a layout is to create a <a class="link" href="ClutterTimeline.html" title="ClutterTimeline"><span class="type">ClutterTimeline</span></a>
256   inside the <code class="function"><code class="function">begin_animation()</code></code> virtual function, along
257   with a <a class="link" href="ClutterAlpha.html" title="ClutterAlpha"><span class="type">ClutterAlpha</span></a>, and for each <a class="link" href="ClutterTimeline.html#ClutterTimeline-new-frame" title='The "new-frame" signal'><span class="type">"new-frame"</span></a> signal
258   emission call <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-layout-changed" title="clutter_layout_manager_layout_changed ()"><code class="function">clutter_layout_manager_layout_changed()</code></a>, which will cause a
259   relayout. The <a class="link" href="ClutterTimeline.html#ClutterTimeline-completed" title='The "completed" signal'><span class="type">"completed"</span></a> signal emission should cause
260   <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-end-animation" title="clutter_layout_manager_end_animation ()"><code class="function">clutter_layout_manager_end_animation()</code></a> to be called. The default
261   implementation provided internally by <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> does exactly
262   this, so most sub-classes should either not override any animation-related
263   virtual function or simply override <code class="function"><code class="function">begin_animation()</code></code>
264   and <code class="function"><code class="function">end_animation()</code></code> to set up ad hoc state, and then
265   chain up to the parent's implementation.</p>
266 <div class="example">
267 <a name="example-ClutterLayoutManager-animation"></a><p class="title"><b>Example 1. Animation of a Layout Manager</b></p>
268 <div class="example-contents">
269 <p>The code below shows how a <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> sub-class should
270     provide animating the allocation of its children from within the
271     <code class="function"><code class="function">allocate()</code></code> virtual function implementation. The
272     animation is computed between the last stable allocation performed
273     before the animation started and the desired final allocation.</p>
274 <p>The <code class="varname">is_animating</code> variable is stored inside the
275     <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> sub-class and it is updated by overriding the
276     <code class="function"><code class="function">begin_animation()</code></code> and
277     <code class="function"><code class="function">end_animation()</code></code> virtual functions and chaining up
278     to the base class implementation.</p>
279 <p>The last stable allocation is stored within a <a class="link" href="ClutterLayoutMeta.html" title="ClutterLayoutMeta"><span class="type">ClutterLayoutMeta</span></a>
280     sub-class used by the implementation.</p>
281 <pre class="programlisting">
282 static void
283 my_layout_manager_allocate (ClutterLayoutManager   *manager,
284                             ClutterContainer       *container,
285                             const ClutterActorBox  *allocation,
286                             ClutterAllocationFlags  flags)
287 {
288   MyLayoutManager *self = MY_LAYOUT_MANAGER (manager);
289   ClutterActor *child;
290
291   for (child = clutter_actor_get_first_child (CLUTTER_ACTOR (container));
292        child != NULL;
293        child = clutter_actor_get_next_sibling (child))
294     {
295       ClutterLayoutMeta *meta;
296       MyLayoutMeta *my_meta;
297
298       /* retrieve the layout meta-object */
299       meta = clutter_layout_manager_get_child_meta (manager,
300                                                     container,
301                                                     child);
302       my_meta = MY_LAYOUT_META (meta);
303
304       /* compute the desired allocation for the child */
305       compute_allocation (self, my_meta, child,
306                           allocation, flags,
307                           &amp;child_box);
308
309       /* this is the additional code that deals with the animation
310        * of the layout manager
311        */
312       if (!self-&gt;is_animating)
313         {
314           /* store the last stable allocation for later use */
315           my_meta-&gt;last_alloc = clutter_actor_box_copy (&amp;child_box);
316         }
317       else
318         {
319           ClutterActorBox end = { 0, };
320           gdouble p;
321
322           /* get the progress of the animation */
323           p = clutter_layout_manager_get_animation_progress (manager);
324
325           if (my_meta-&gt;last_alloc != NULL)
326             {
327               /* copy the desired allocation as the final state */
328               end = child_box;
329
330               /* then interpolate the initial and final state
331                * depending on the progress of the animation,
332                * and put the result inside the box we will use
333                * to allocate the child
334                */
335               clutter_actor_box_interpolate (my_meta-&gt;last_alloc,
336                                              &amp;end,
337                                              p,
338                                              &amp;child_box);
339             }
340           else
341             {
342               /* if there is no stable allocation then the child was
343                * added while animating; one possible course of action
344                * is to just bail out and fall through to the allocation
345                * to position the child directly at its final state
346                */
347               my_meta-&gt;last_alloc =
348                 clutter_actor_box_copy (&amp;child_box);
349             }
350         }
351
352       /* allocate the child */
353       clutter_actor_allocate (child, &amp;child_box, flags);
354     }
355 }
356     </pre>
357 </div>
358 </div>
359 <br class="example-break"><p>Sub-classes of <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> that support animations of the
360   layout changes should call <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-begin-animation" title="clutter_layout_manager_begin_animation ()"><code class="function">clutter_layout_manager_begin_animation()</code></a>
361   whenever a layout property changes value, e.g.:</p>
362 <div class="informalexample">
363   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
364     <tbody>
365       <tr>
366         <td class="listing_lines" align="right"><pre>1
367 2
368 3
369 4
370 5
371 6
372 7
373 8
374 9
375 10
376 11
377 12</pre></td>
378         <td class="listing_code"><pre class="programlisting"><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">self</span><span class="symbol">-&gt;</span><span class="normal">orientation </span><span class="symbol">!=</span><span class="normal"> new_orientation</span><span class="symbol">)</span>
379 <span class="normal">  </span><span class="cbracket">{</span>
380 <span class="normal">    </span><span class="usertype">ClutterLayoutManager</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">manager</span><span class="symbol">;</span>
381
382 <span class="normal">    self</span><span class="symbol">-&gt;</span><span class="normal">orientation </span><span class="symbol">=</span><span class="normal"> new_orientation</span><span class="symbol">;</span>
383
384 <span class="normal">    manager </span><span class="symbol">=</span><span class="normal"> </span><span class="function">CLUTTER_LAYOUT_MANAGER</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">self</span><span class="symbol">);</span>
385 <span class="normal">    </span><span class="function"><a href="ClutterLayoutManager.html#clutter-layout-manager-layout-changed">clutter_layout_manager_layout_changed</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">manager</span><span class="symbol">);</span>
386 <span class="normal">    </span><span class="function"><a href="ClutterLayoutManager.html#clutter-layout-manager-begin-animation">clutter_layout_manager_begin_animation</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">manager</span><span class="symbol">,</span><span class="normal"> </span><span class="number">500</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>
387
388 <span class="normal">    </span><span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-notify">g_object_notify</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#G-OBJECT:CAPS">G_OBJECT</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">self</span><span class="symbol">),</span><span class="normal"> </span><span class="string">"orientation"</span><span class="symbol">);</span>
389 <span class="normal">  </span><span class="cbracket">}</span></pre></td>
390       </tr>
391     </tbody>
392   </table>
393 </div>
394
395 <p>The code above will animate a change in the
396   <code class="varname">orientation</code> layout property of a layout manager.</p>
397 </div>
398 <p>
399 </p>
400 <p>
401 </p>
402 <div class="refsect2">
403 <a name="clutter-layout-properties"></a><h3>Layout Properties</h3>
404 <p>If a layout manager has layout properties, that is properties that
405   should exist only as the result of the presence of a specific (layout
406   manager, container actor, child actor) combination, and it wishes to store
407   those properties inside a <a class="link" href="ClutterLayoutMeta.html" title="ClutterLayoutMeta"><span class="type">ClutterLayoutMeta</span></a>, then it should override the
408   <span class="structname">ClutterLayoutManager</span>::<code class="function">get_child_meta_type()</code>
409   virtual function to return the <a href="../gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of the <a class="link" href="ClutterLayoutMeta.html" title="ClutterLayoutMeta"><span class="type">ClutterLayoutMeta</span></a> sub-class
410   used to store the layout properties; optionally, the <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a>
411   sub-class might also override the
412   <span class="structname">ClutterLayoutManager</span>::<code class="function">create_child_meta()</code> virtual
413   function to control how the <a class="link" href="ClutterLayoutMeta.html" title="ClutterLayoutMeta"><span class="type">ClutterLayoutMeta</span></a> instance is created,
414   otherwise the default implementation will be equivalent to:</p>
415 <div class="informalexample">
416   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
417     <tbody>
418       <tr>
419         <td class="listing_lines" align="right"><pre>1
420 2
421 3
422 4
423 5
424 6
425 7
426 8
427 9
428 10
429 11</pre></td>
430         <td class="listing_code"><pre class="programlisting"><span class="usertype">ClutterLayoutManagerClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">klass</span><span class="symbol">;</span>
431 <span class="usertype">GType</span><span class="normal"> meta_type</span><span class="symbol">;</span>
432
433 <span class="normal">klass </span><span class="symbol">=</span><span class="normal"> </span><span class="function">CLUTTER_LAYOUT_MANAGER_GET_CLASS</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">manager</span><span class="symbol">);</span>
434 <span class="normal">meta_type </span><span class="symbol">=</span><span class="normal"> klass</span><span class="symbol">-&gt;</span><span class="function">get_child_meta_type</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">manager</span><span class="symbol">);</span>
435
436 <span class="keyword">return</span><span class="normal"> </span><span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-new">g_object_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">meta_type</span><span class="symbol">,</span>
437 <span class="normal">                     </span><span class="string">"manager"</span><span class="symbol">,</span><span class="normal"> manager</span><span class="symbol">,</span>
438 <span class="normal">                     </span><span class="string">"container"</span><span class="symbol">,</span><span class="normal"> container</span><span class="symbol">,</span>
439 <span class="normal">                     </span><span class="string">"actor"</span><span class="symbol">,</span><span class="normal"> actor</span><span class="symbol">,</span>
440 <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>
441       </tr>
442     </tbody>
443   </table>
444 </div>
445
446 <p>Where <code class="varname">manager</code> is the  <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a>,
447   <code class="varname">container</code> is the <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> using the
448   <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> and <code class="varname">actor</code> is the <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>
449   child of the <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a>.</p>
450 </div>
451 <p>
452 </p>
453 <p>
454 </p>
455 <div class="refsect2">
456 <a name="clutter-layout-script"></a><h3>Using ClutterLayoutManager with ClutterScript</h3>
457 <p><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> instance can be created in the same way
458   as other objects in <a class="link" href="ClutterScript.html" title="ClutterScript"><span class="type">ClutterScript</span></a>; properties can be set using the
459   common syntax.</p>
460 <p>Layout properties can be set on children of a container with
461   a <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> using the <span class="emphasis"><em>layout::</em></span>
462   modifier on the property name, for instance:</p>
463 <div class="informalexample">
464   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
465     <tbody>
466       <tr>
467         <td class="listing_lines" align="right"><pre>1
468 2
469 3
470 4
471 5
472 6
473 7
474 8
475 9
476 10
477 11
478 12
479 13
480 14
481 15
482 16
483 17
484 18
485 19
486 20
487 21
488 22
489 23
490 24
491 25
492 26
493 27
494 28</pre></td>
495         <td class="listing_code"><pre class="programlisting"><span class="cbracket">{</span>
496 <span class="normal">  </span><span class="string">"type"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> </span><span class="string">"ClutterBox"</span><span class="symbol">,</span>
497 <span class="normal">  </span><span class="string">"layout-manager"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"type"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> </span><span class="string">"ClutterTableLayout"</span><span class="normal"> </span><span class="cbracket">}</span><span class="symbol">,</span>
498 <span class="normal">  </span><span class="string">"children"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> </span><span class="symbol">[</span>
499 <span class="normal">    </span><span class="cbracket">{</span>
500 <span class="normal">      </span><span class="string">"type"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> </span><span class="string">"ClutterTexture"</span><span class="symbol">,</span>
501 <span class="normal">      </span><span class="string">"filename"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> </span><span class="string">"image-00.png"</span><span class="symbol">,</span>
502
503 <span class="normal">      </span><span class="string">"layout::row"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span>
504 <span class="normal">      </span><span class="string">"layout::column"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span>
505 <span class="normal">      </span><span class="string">"layout::x-align"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> </span><span class="string">"left"</span><span class="symbol">,</span>
506 <span class="normal">      </span><span class="string">"layout::y-align"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> </span><span class="string">"center"</span><span class="symbol">,</span>
507 <span class="normal">      </span><span class="string">"layout::x-expand"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> true</span><span class="symbol">,</span>
508 <span class="normal">      </span><span class="string">"layout::y-expand"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> true</span>
509 <span class="normal">    </span><span class="cbracket">}</span><span class="symbol">,</span>
510 <span class="normal">    </span><span class="cbracket">{</span>
511 <span class="normal">      </span><span class="string">"type"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> </span><span class="string">"ClutterTexture"</span><span class="symbol">,</span>
512 <span class="normal">      </span><span class="string">"filename"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> </span><span class="string">"image-01.png"</span><span class="symbol">,</span>
513
514 <span class="normal">      </span><span class="string">"layout::row"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span>
515 <span class="normal">      </span><span class="string">"layout::column"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> </span><span class="number">1</span><span class="symbol">,</span>
516 <span class="normal">      </span><span class="string">"layout::x-align"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> </span><span class="string">"right"</span><span class="symbol">,</span>
517 <span class="normal">      </span><span class="string">"layout::y-align"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> </span><span class="string">"center"</span><span class="symbol">,</span>
518 <span class="normal">      </span><span class="string">"layout::x-expand"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> true</span><span class="symbol">,</span>
519 <span class="normal">      </span><span class="string">"layout::y-expand"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> true</span>
520 <span class="normal">    </span><span class="cbracket">}</span>
521 <span class="normal">  </span><span class="symbol">]</span>
522 <span class="cbracket">}</span></pre></td>
523       </tr>
524     </tbody>
525   </table>
526 </div>
527
528 </div>
529 <p>
530 </p>
531 <p>
532 <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> is available since Clutter 1.2
533 </p>
534 </div>
535 <div class="refsect1">
536 <a name="ClutterLayoutManager.details"></a><h2>Details</h2>
537 <div class="refsect2">
538 <a name="ClutterLayoutManager-struct"></a><h3>ClutterLayoutManager</h3>
539 <pre class="programlisting">typedef struct _ClutterLayoutManager ClutterLayoutManager;</pre>
540 <p>
541 The <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> structure contains only private data
542 and should be accessed using the provided API
543 </p>
544 <p class="since">Since 1.2</p>
545 </div>
546 <hr>
547 <div class="refsect2">
548 <a name="ClutterLayoutManagerClass"></a><h3>struct ClutterLayoutManagerClass</h3>
549 <pre class="programlisting">struct ClutterLayoutManagerClass {
550   void               (* get_preferred_width)    (ClutterLayoutManager   *manager,
551                                                  ClutterContainer       *container,
552                                                  gfloat                  for_height,
553                                                  gfloat                 *min_width_p,
554                                                  gfloat                 *nat_width_p);
555   void               (* get_preferred_height)   (ClutterLayoutManager   *manager,
556                                                  ClutterContainer       *container,
557                                                  gfloat                  for_width,
558                                                  gfloat                 *min_height_p,
559                                                  gfloat                 *nat_height_p);
560   void               (* allocate)               (ClutterLayoutManager   *manager,
561                                                  ClutterContainer       *container,
562                                                  const ClutterActorBox  *allocation,
563                                                  ClutterAllocationFlags  flags);
564
565   void               (* set_container)          (ClutterLayoutManager   *manager,
566                                                  ClutterContainer       *container);
567
568   GType              (* get_child_meta_type)    (ClutterLayoutManager   *manager);
569   ClutterLayoutMeta *(* create_child_meta)      (ClutterLayoutManager   *manager,
570                                                  ClutterContainer       *container,
571                                                  ClutterActor           *actor);
572
573   ClutterAlpha *     (* begin_animation)        (ClutterLayoutManager   *manager,
574                                                  guint                   duration,
575                                                  gulong                  mode);
576   gdouble            (* get_animation_progress) (ClutterLayoutManager   *manager);
577   void               (* end_animation)          (ClutterLayoutManager   *manager);
578
579   void               (* layout_changed)         (ClutterLayoutManager   *manager);
580 };
581 </pre>
582 <p>
583 The <a class="link" href="ClutterLayoutManager.html#ClutterLayoutManagerClass" title="struct ClutterLayoutManagerClass"><span class="type">ClutterLayoutManagerClass</span></a> structure contains only private
584 data and should be accessed using the provided API
585 </p>
586 <div class="variablelist"><table border="0">
587 <col align="left" valign="top">
588 <tbody>
589 <tr>
590 <td><p><span class="term"><em class="structfield"><code><a name="ClutterLayoutManagerClass.get-preferred-width"></a>get_preferred_width</code></em> ()</span></p></td>
591 <td>virtual function; override to provide a preferred
592 width for the layout manager. See also the <code class="function">get_preferred_width()</code>
593 virtual function in <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>
594 </td>
595 </tr>
596 <tr>
597 <td><p><span class="term"><em class="structfield"><code><a name="ClutterLayoutManagerClass.get-preferred-height"></a>get_preferred_height</code></em> ()</span></p></td>
598 <td>virtual function; override to provide a preferred
599 height for the layout manager. See also the <code class="function">get_preferred_height()</code>
600 virtual function in <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>
601 </td>
602 </tr>
603 <tr>
604 <td><p><span class="term"><em class="structfield"><code><a name="ClutterLayoutManagerClass.allocate"></a>allocate</code></em> ()</span></p></td>
605 <td>virtual function; override to allocate the children of the
606 layout manager. See also the <code class="function">allocate()</code> virtual function in
607 <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>
608 </td>
609 </tr>
610 <tr>
611 <td><p><span class="term"><em class="structfield"><code><a name="ClutterLayoutManagerClass.set-container"></a>set_container</code></em> ()</span></p></td>
612 <td>virtual function; override to set a back pointer
613 on the <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> using the layout manager. The implementation
614 should not take a reference on the container, but just take a weak
615 reference, to avoid potential leaks due to reference cycles</td>
616 </tr>
617 <tr>
618 <td><p><span class="term"><em class="structfield"><code><a name="ClutterLayoutManagerClass.get-child-meta-type"></a>get_child_meta_type</code></em> ()</span></p></td>
619 <td>virtual function; override to return the <a href="../gobject/gobject-Type-Information.html#GType"><span class="type">GType</span></a>
620 of the <a class="link" href="ClutterLayoutMeta.html" title="ClutterLayoutMeta"><span class="type">ClutterLayoutMeta</span></a> sub-class used by the <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a>
621 </td>
622 </tr>
623 <tr>
624 <td><p><span class="term"><em class="structfield"><code><a name="ClutterLayoutManagerClass.create-child-meta"></a>create_child_meta</code></em> ()</span></p></td>
625 <td>virtual function; override to create a
626 <a class="link" href="ClutterLayoutMeta.html" title="ClutterLayoutMeta"><span class="type">ClutterLayoutMeta</span></a> instance associated to a <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> and a
627 child <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>, used to maintain layout manager specific properties</td>
628 </tr>
629 <tr>
630 <td><p><span class="term"><em class="structfield"><code><a name="ClutterLayoutManagerClass.begin-animation"></a>begin_animation</code></em> ()</span></p></td>
631 <td>virtual function; override to control the animation
632 of a <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> with the given duration and easing mode</td>
633 </tr>
634 <tr>
635 <td><p><span class="term"><em class="structfield"><code><a name="ClutterLayoutManagerClass.get-animation-progress"></a>get_animation_progress</code></em> ()</span></p></td>
636 <td>virtual function; override to control the
637 progress of the animation of a <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a>
638 </td>
639 </tr>
640 <tr>
641 <td><p><span class="term"><em class="structfield"><code><a name="ClutterLayoutManagerClass.end-animation"></a>end_animation</code></em> ()</span></p></td>
642 <td>virtual function; override to end an animation started
643 by <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-begin-animation" title="clutter_layout_manager_begin_animation ()"><code class="function">clutter_layout_manager_begin_animation()</code></a>
644 </td>
645 </tr>
646 <tr>
647 <td><p><span class="term"><em class="structfield"><code><a name="ClutterLayoutManagerClass.layout-changed"></a>layout_changed</code></em> ()</span></p></td>
648 <td>class handler for the <a class="link" href="ClutterLayoutManager.html#ClutterLayoutManager-layout-changed" title='The "layout-changed" signal'><span class="type">"layout-changed"</span></a>
649 signal</td>
650 </tr>
651 </tbody>
652 </table></div>
653 <p class="since">Since 1.2</p>
654 </div>
655 <hr>
656 <div class="refsect2">
657 <a name="clutter-layout-manager-get-preferred-width"></a><h3>clutter_layout_manager_get_preferred_width ()</h3>
658 <pre class="programlisting"><span class="returnvalue">void</span>                clutter_layout_manager_get_preferred_width
659                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
660                                                          <em class="parameter"><code><a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> *container</code></em>,
661                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> for_height</code></em>,
662                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *min_width_p</code></em>,
663                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *nat_width_p</code></em>);</pre>
664 <p>
665 Computes the minimum and natural widths of the <em class="parameter"><code>container</code></em> according
666 to <em class="parameter"><code>manager</code></em>.
667 </p>
668 <p>
669 See also <a class="link" href="ClutterActor.html#clutter-actor-get-preferred-width" title="clutter_actor_get_preferred_width ()"><code class="function">clutter_actor_get_preferred_width()</code></a>
670 </p>
671 <div class="variablelist"><table border="0">
672 <col align="left" valign="top">
673 <tbody>
674 <tr>
675 <td><p><span class="term"><em class="parameter"><code>manager</code></em> :</span></p></td>
676 <td>a <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a>
677 </td>
678 </tr>
679 <tr>
680 <td><p><span class="term"><em class="parameter"><code>container</code></em> :</span></p></td>
681 <td>the <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> using <em class="parameter"><code>manager</code></em>
682 </td>
683 </tr>
684 <tr>
685 <td><p><span class="term"><em class="parameter"><code>for_height</code></em> :</span></p></td>
686 <td>the height for which the width should be computed, or -1</td>
687 </tr>
688 <tr>
689 <td><p><span class="term"><em class="parameter"><code>min_width_p</code></em> :</span></p></td>
690 <td>return location for the minimum width
691 of the layout, or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
692 </td>
693 </tr>
694 <tr>
695 <td><p><span class="term"><em class="parameter"><code>nat_width_p</code></em> :</span></p></td>
696 <td>return location for the natural width
697 of the layout, or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
698 </td>
699 </tr>
700 </tbody>
701 </table></div>
702 <p class="since">Since 1.2</p>
703 </div>
704 <hr>
705 <div class="refsect2">
706 <a name="clutter-layout-manager-get-preferred-height"></a><h3>clutter_layout_manager_get_preferred_height ()</h3>
707 <pre class="programlisting"><span class="returnvalue">void</span>                clutter_layout_manager_get_preferred_height
708                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
709                                                          <em class="parameter"><code><a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> *container</code></em>,
710                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> for_width</code></em>,
711                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *min_height_p</code></em>,
712                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *nat_height_p</code></em>);</pre>
713 <p>
714 Computes the minimum and natural heights of the <em class="parameter"><code>container</code></em> according
715 to <em class="parameter"><code>manager</code></em>.
716 </p>
717 <p>
718 See also <a class="link" href="ClutterActor.html#clutter-actor-get-preferred-height" title="clutter_actor_get_preferred_height ()"><code class="function">clutter_actor_get_preferred_height()</code></a>
719 </p>
720 <div class="variablelist"><table border="0">
721 <col align="left" valign="top">
722 <tbody>
723 <tr>
724 <td><p><span class="term"><em class="parameter"><code>manager</code></em> :</span></p></td>
725 <td>a <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a>
726 </td>
727 </tr>
728 <tr>
729 <td><p><span class="term"><em class="parameter"><code>container</code></em> :</span></p></td>
730 <td>the <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> using <em class="parameter"><code>manager</code></em>
731 </td>
732 </tr>
733 <tr>
734 <td><p><span class="term"><em class="parameter"><code>for_width</code></em> :</span></p></td>
735 <td>the width for which the height should be computed, or -1</td>
736 </tr>
737 <tr>
738 <td><p><span class="term"><em class="parameter"><code>min_height_p</code></em> :</span></p></td>
739 <td>return location for the minimum height
740 of the layout, or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
741 </td>
742 </tr>
743 <tr>
744 <td><p><span class="term"><em class="parameter"><code>nat_height_p</code></em> :</span></p></td>
745 <td>return location for the natural height
746 of the layout, or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
747 </td>
748 </tr>
749 </tbody>
750 </table></div>
751 <p class="since">Since 1.2</p>
752 </div>
753 <hr>
754 <div class="refsect2">
755 <a name="clutter-layout-manager-allocate"></a><h3>clutter_layout_manager_allocate ()</h3>
756 <pre class="programlisting"><span class="returnvalue">void</span>                clutter_layout_manager_allocate     (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
757                                                          <em class="parameter"><code><a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> *container</code></em>,
758                                                          <em class="parameter"><code>const <a class="link" href="ClutterActor.html#ClutterActorBox" title="struct ClutterActorBox"><span class="type">ClutterActorBox</span></a> *allocation</code></em>,
759                                                          <em class="parameter"><code><a class="link" href="ClutterActor.html#ClutterAllocationFlags" title="enum ClutterAllocationFlags"><span class="type">ClutterAllocationFlags</span></a> flags</code></em>);</pre>
760 <p>
761 Allocates the children of <em class="parameter"><code>container</code></em> given an area
762 </p>
763 <p>
764 See also <a class="link" href="ClutterActor.html#clutter-actor-allocate" title="clutter_actor_allocate ()"><code class="function">clutter_actor_allocate()</code></a>
765 </p>
766 <div class="variablelist"><table border="0">
767 <col align="left" valign="top">
768 <tbody>
769 <tr>
770 <td><p><span class="term"><em class="parameter"><code>manager</code></em> :</span></p></td>
771 <td>a <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a>
772 </td>
773 </tr>
774 <tr>
775 <td><p><span class="term"><em class="parameter"><code>container</code></em> :</span></p></td>
776 <td>the <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> using <em class="parameter"><code>manager</code></em>
777 </td>
778 </tr>
779 <tr>
780 <td><p><span class="term"><em class="parameter"><code>allocation</code></em> :</span></p></td>
781 <td>the <a class="link" href="ClutterActor.html#ClutterActorBox" title="struct ClutterActorBox"><span class="type">ClutterActorBox</span></a> containing the allocated area
782 of <em class="parameter"><code>container</code></em>
783 </td>
784 </tr>
785 <tr>
786 <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
787 <td>the allocation flags</td>
788 </tr>
789 </tbody>
790 </table></div>
791 <p class="since">Since 1.2</p>
792 </div>
793 <hr>
794 <div class="refsect2">
795 <a name="clutter-layout-manager-layout-changed"></a><h3>clutter_layout_manager_layout_changed ()</h3>
796 <pre class="programlisting"><span class="returnvalue">void</span>                clutter_layout_manager_layout_changed
797                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>);</pre>
798 <p>
799 Emits the <a class="link" href="ClutterLayoutManager.html#ClutterLayoutManager-layout-changed" title='The "layout-changed" signal'><span class="type">"layout-changed"</span></a> signal on <em class="parameter"><code>manager</code></em>
800 </p>
801 <p>
802 This function should only be called by implementations of the
803 <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> class
804 </p>
805 <div class="variablelist"><table border="0">
806 <col align="left" valign="top">
807 <tbody><tr>
808 <td><p><span class="term"><em class="parameter"><code>manager</code></em> :</span></p></td>
809 <td>a <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a>
810 </td>
811 </tr></tbody>
812 </table></div>
813 <p class="since">Since 1.2</p>
814 </div>
815 <hr>
816 <div class="refsect2">
817 <a name="clutter-layout-manager-set-container"></a><h3>clutter_layout_manager_set_container ()</h3>
818 <pre class="programlisting"><span class="returnvalue">void</span>                clutter_layout_manager_set_container
819                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
820                                                          <em class="parameter"><code><a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> *container</code></em>);</pre>
821 <p>
822 If the <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> sub-class allows it, allow
823 adding a weak reference of the <em class="parameter"><code>container</code></em> using <em class="parameter"><code>manager</code></em>
824 from within the layout manager
825 </p>
826 <p>
827 The layout manager should not increase the reference
828 count of the <em class="parameter"><code>container</code></em>
829 </p>
830 <div class="variablelist"><table border="0">
831 <col align="left" valign="top">
832 <tbody>
833 <tr>
834 <td><p><span class="term"><em class="parameter"><code>manager</code></em> :</span></p></td>
835 <td>a <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a>
836 </td>
837 </tr>
838 <tr>
839 <td><p><span class="term"><em class="parameter"><code>container</code></em> :</span></p></td>
840 <td>a <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> using <em class="parameter"><code>manager</code></em>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
841 </td>
842 </tr>
843 </tbody>
844 </table></div>
845 <p class="since">Since 1.2</p>
846 </div>
847 <hr>
848 <div class="refsect2">
849 <a name="clutter-layout-manager-get-child-meta"></a><h3>clutter_layout_manager_get_child_meta ()</h3>
850 <pre class="programlisting"><a class="link" href="ClutterLayoutMeta.html" title="ClutterLayoutMeta"><span class="returnvalue">ClutterLayoutMeta</span></a> * clutter_layout_manager_get_child_meta
851                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
852                                                          <em class="parameter"><code><a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> *container</code></em>,
853                                                          <em class="parameter"><code><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> *actor</code></em>);</pre>
854 <p>
855 Retrieves the <a class="link" href="ClutterLayoutMeta.html" title="ClutterLayoutMeta"><span class="type">ClutterLayoutMeta</span></a> that the layout <em class="parameter"><code>manager</code></em> associated
856 to the <em class="parameter"><code>actor</code></em> child of <em class="parameter"><code>container</code></em>, eventually by creating one if the
857 <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> supports layout properties
858 </p>
859 <div class="variablelist"><table border="0">
860 <col align="left" valign="top">
861 <tbody>
862 <tr>
863 <td><p><span class="term"><em class="parameter"><code>manager</code></em> :</span></p></td>
864 <td>a <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a>
865 </td>
866 </tr>
867 <tr>
868 <td><p><span class="term"><em class="parameter"><code>container</code></em> :</span></p></td>
869 <td>a <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> using <em class="parameter"><code>manager</code></em>
870 </td>
871 </tr>
872 <tr>
873 <td><p><span class="term"><em class="parameter"><code>actor</code></em> :</span></p></td>
874 <td>a <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> child of <em class="parameter"><code>container</code></em>
875 </td>
876 </tr>
877 <tr>
878 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
879 <td>a <a class="link" href="ClutterLayoutMeta.html" title="ClutterLayoutMeta"><span class="type">ClutterLayoutMeta</span></a>, or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
880 <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> does not have layout properties. The returned
881 layout meta instance is owned by the <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> and it
882 should not be unreferenced. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
883 </td>
884 </tr>
885 </tbody>
886 </table></div>
887 <p class="since">Since 1.0</p>
888 </div>
889 <hr>
890 <div class="refsect2">
891 <a name="clutter-layout-manager-child-set"></a><h3>clutter_layout_manager_child_set ()</h3>
892 <pre class="programlisting"><span class="returnvalue">void</span>                clutter_layout_manager_child_set    (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
893                                                          <em class="parameter"><code><a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> *container</code></em>,
894                                                          <em class="parameter"><code><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> *actor</code></em>,
895                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property</code></em>,
896                                                          <em class="parameter"><code>...</code></em>);</pre>
897 <p>
898 Sets a list of properties and their values on the <a class="link" href="ClutterLayoutMeta.html" title="ClutterLayoutMeta"><span class="type">ClutterLayoutMeta</span></a>
899 associated by <em class="parameter"><code>manager</code></em> to a child of <em class="parameter"><code>container</code></em>
900 </p>
901 <p>
902 Languages bindings should use <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-child-set-property" title="clutter_layout_manager_child_set_property ()"><code class="function">clutter_layout_manager_child_set_property()</code></a>
903 instead
904 </p>
905 <div class="variablelist"><table border="0">
906 <col align="left" valign="top">
907 <tbody>
908 <tr>
909 <td><p><span class="term"><em class="parameter"><code>manager</code></em> :</span></p></td>
910 <td>a <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a>
911 </td>
912 </tr>
913 <tr>
914 <td><p><span class="term"><em class="parameter"><code>container</code></em> :</span></p></td>
915 <td>a <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> using <em class="parameter"><code>manager</code></em>
916 </td>
917 </tr>
918 <tr>
919 <td><p><span class="term"><em class="parameter"><code>actor</code></em> :</span></p></td>
920 <td>a <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> child of <em class="parameter"><code>container</code></em>
921 </td>
922 </tr>
923 <tr>
924 <td><p><span class="term"><em class="parameter"><code>first_property</code></em> :</span></p></td>
925 <td>the first property name</td>
926 </tr>
927 <tr>
928 <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
929 <td>a list of property name and value pairs</td>
930 </tr>
931 </tbody>
932 </table></div>
933 <p class="since">Since 1.2</p>
934 </div>
935 <hr>
936 <div class="refsect2">
937 <a name="clutter-layout-manager-child-set-property"></a><h3>clutter_layout_manager_child_set_property ()</h3>
938 <pre class="programlisting"><span class="returnvalue">void</span>                clutter_layout_manager_child_set_property
939                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
940                                                          <em class="parameter"><code><a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> *container</code></em>,
941                                                          <em class="parameter"><code><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> *actor</code></em>,
942                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
943                                                          <em class="parameter"><code>const <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
944 <p>
945 Sets a property on the <a class="link" href="ClutterLayoutMeta.html" title="ClutterLayoutMeta"><span class="type">ClutterLayoutMeta</span></a> created by <em class="parameter"><code>manager</code></em> and
946 attached to a child of <em class="parameter"><code>container</code></em>
947 </p>
948 <div class="variablelist"><table border="0">
949 <col align="left" valign="top">
950 <tbody>
951 <tr>
952 <td><p><span class="term"><em class="parameter"><code>manager</code></em> :</span></p></td>
953 <td>a <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a>
954 </td>
955 </tr>
956 <tr>
957 <td><p><span class="term"><em class="parameter"><code>container</code></em> :</span></p></td>
958 <td>a <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> using <em class="parameter"><code>manager</code></em>
959 </td>
960 </tr>
961 <tr>
962 <td><p><span class="term"><em class="parameter"><code>actor</code></em> :</span></p></td>
963 <td>a <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> child of <em class="parameter"><code>container</code></em>
964 </td>
965 </tr>
966 <tr>
967 <td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
968 <td>the name of the property to set</td>
969 </tr>
970 <tr>
971 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
972 <td>a <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> with the value of the property to set</td>
973 </tr>
974 </tbody>
975 </table></div>
976 <p class="since">Since 1.2</p>
977 </div>
978 <hr>
979 <div class="refsect2">
980 <a name="clutter-layout-manager-child-get"></a><h3>clutter_layout_manager_child_get ()</h3>
981 <pre class="programlisting"><span class="returnvalue">void</span>                clutter_layout_manager_child_get    (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
982                                                          <em class="parameter"><code><a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> *container</code></em>,
983                                                          <em class="parameter"><code><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> *actor</code></em>,
984                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property</code></em>,
985                                                          <em class="parameter"><code>...</code></em>);</pre>
986 <p>
987 Retrieves the values for a list of properties out of the
988 <a class="link" href="ClutterLayoutMeta.html" title="ClutterLayoutMeta"><span class="type">ClutterLayoutMeta</span></a> created by <em class="parameter"><code>manager</code></em> and attached to the
989 child of a <em class="parameter"><code>container</code></em>
990 </p>
991 <div class="variablelist"><table border="0">
992 <col align="left" valign="top">
993 <tbody>
994 <tr>
995 <td><p><span class="term"><em class="parameter"><code>manager</code></em> :</span></p></td>
996 <td>a <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a>
997 </td>
998 </tr>
999 <tr>
1000 <td><p><span class="term"><em class="parameter"><code>container</code></em> :</span></p></td>
1001 <td>a <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> using <em class="parameter"><code>manager</code></em>
1002 </td>
1003 </tr>
1004 <tr>
1005 <td><p><span class="term"><em class="parameter"><code>actor</code></em> :</span></p></td>
1006 <td>a <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> child of <em class="parameter"><code>container</code></em>
1007 </td>
1008 </tr>
1009 <tr>
1010 <td><p><span class="term"><em class="parameter"><code>first_property</code></em> :</span></p></td>
1011 <td>the name of the first property</td>
1012 </tr>
1013 <tr>
1014 <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
1015 <td>a list of property name and return location for the value pairs</td>
1016 </tr>
1017 </tbody>
1018 </table></div>
1019 <p class="since">Since 1.2</p>
1020 </div>
1021 <hr>
1022 <div class="refsect2">
1023 <a name="clutter-layout-manager-child-get-property"></a><h3>clutter_layout_manager_child_get_property ()</h3>
1024 <pre class="programlisting"><span class="returnvalue">void</span>                clutter_layout_manager_child_get_property
1025                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
1026                                                          <em class="parameter"><code><a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> *container</code></em>,
1027                                                          <em class="parameter"><code><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> *actor</code></em>,
1028                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
1029                                                          <em class="parameter"><code><a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
1030 <p>
1031 Gets a property on the <a class="link" href="ClutterLayoutMeta.html" title="ClutterLayoutMeta"><span class="type">ClutterLayoutMeta</span></a> created by <em class="parameter"><code>manager</code></em> and
1032 attached to a child of <em class="parameter"><code>container</code></em>
1033 </p>
1034 <p>
1035 The <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> must already be initialized to the type of the property
1036 and has to be unset with <a href="../gobject/gobject-Generic-values.html#g-value-unset"><code class="function">g_value_unset()</code></a> after extracting the real
1037 value out of it
1038 </p>
1039 <div class="variablelist"><table border="0">
1040 <col align="left" valign="top">
1041 <tbody>
1042 <tr>
1043 <td><p><span class="term"><em class="parameter"><code>manager</code></em> :</span></p></td>
1044 <td>a <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a>
1045 </td>
1046 </tr>
1047 <tr>
1048 <td><p><span class="term"><em class="parameter"><code>container</code></em> :</span></p></td>
1049 <td>a <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> using <em class="parameter"><code>manager</code></em>
1050 </td>
1051 </tr>
1052 <tr>
1053 <td><p><span class="term"><em class="parameter"><code>actor</code></em> :</span></p></td>
1054 <td>a <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> child of <em class="parameter"><code>container</code></em>
1055 </td>
1056 </tr>
1057 <tr>
1058 <td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
1059 <td>the name of the property to get</td>
1060 </tr>
1061 <tr>
1062 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
1063 <td>a <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> with the value of the property to get</td>
1064 </tr>
1065 </tbody>
1066 </table></div>
1067 <p class="since">Since 1.2</p>
1068 </div>
1069 <hr>
1070 <div class="refsect2">
1071 <a name="clutter-layout-manager-find-child-property"></a><h3>clutter_layout_manager_find_child_property ()</h3>
1072 <pre class="programlisting"><a href="../gobject/gobject-GParamSpec.html#GParamSpec"><span class="returnvalue">GParamSpec</span></a> *        clutter_layout_manager_find_child_property
1073                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
1074                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
1075 <p>
1076 Retrieves the <a href="../gobject/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> for the layout property <em class="parameter"><code>name</code></em> inside
1077 the <a class="link" href="ClutterLayoutMeta.html" title="ClutterLayoutMeta"><span class="type">ClutterLayoutMeta</span></a> sub-class used by <em class="parameter"><code>manager</code></em>
1078 </p>
1079 <div class="variablelist"><table border="0">
1080 <col align="left" valign="top">
1081 <tbody>
1082 <tr>
1083 <td><p><span class="term"><em class="parameter"><code>manager</code></em> :</span></p></td>
1084 <td>a <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a>
1085 </td>
1086 </tr>
1087 <tr>
1088 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
1089 <td>the name of the property</td>
1090 </tr>
1091 <tr>
1092 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1093 <td>a <a href="../gobject/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> describing the property,
1094 or <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if no property with that name exists. The returned
1095 <a href="../gobject/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> is owned by the layout manager and should not be
1096 modified or freed. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
1097 </td>
1098 </tr>
1099 </tbody>
1100 </table></div>
1101 <p class="since">Since 1.2</p>
1102 </div>
1103 <hr>
1104 <div class="refsect2">
1105 <a name="clutter-layout-manager-list-child-properties"></a><h3>clutter_layout_manager_list_child_properties ()</h3>
1106 <pre class="programlisting"><a href="../gobject/gobject-GParamSpec.html#GParamSpec"><span class="returnvalue">GParamSpec</span></a> **       clutter_layout_manager_list_child_properties
1107                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
1108                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_pspecs</code></em>);</pre>
1109 <p>
1110 Retrieves all the <a href="../gobject/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a>s for the layout properties
1111 stored inside the <a class="link" href="ClutterLayoutMeta.html" title="ClutterLayoutMeta"><span class="type">ClutterLayoutMeta</span></a> sub-class used by <em class="parameter"><code>manager</code></em>
1112 </p>
1113 <div class="variablelist"><table border="0">
1114 <col align="left" valign="top">
1115 <tbody>
1116 <tr>
1117 <td><p><span class="term"><em class="parameter"><code>manager</code></em> :</span></p></td>
1118 <td>a <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a>
1119 </td>
1120 </tr>
1121 <tr>
1122 <td><p><span class="term"><em class="parameter"><code>n_pspecs</code></em> :</span></p></td>
1123 <td>return location for the number of returned
1124 <a href="../gobject/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a>s. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
1125 </td>
1126 </tr>
1127 <tr>
1128 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1129 <td>the newly-allocated,
1130 <a href="/home/ebassi/gnome3/install/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of <a href="../gobject/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a>s. Use <a href="../glib/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> to free the
1131 resources allocated for the array. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_pspecs]</span>
1132 </td>
1133 </tr>
1134 </tbody>
1135 </table></div>
1136 <p class="since">Since 1.2</p>
1137 </div>
1138 <hr>
1139 <div class="refsect2">
1140 <a name="clutter-layout-manager-begin-animation"></a><h3>clutter_layout_manager_begin_animation ()</h3>
1141 <pre class="programlisting"><a class="link" href="ClutterAlpha.html" title="ClutterAlpha"><span class="returnvalue">ClutterAlpha</span></a> *      clutter_layout_manager_begin_animation
1142                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>,
1143                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> duration</code></em>,
1144                                                          <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> mode</code></em>);</pre>
1145 <p>
1146 Begins an animation of <em class="parameter"><code>duration</code></em> milliseconds, using the provided
1147 easing <em class="parameter"><code>mode</code></em>
1148 </p>
1149 <p>
1150 The easing mode can be specified either as a <a class="link" href="clutter-Implicit-Animations.html#ClutterAnimationMode" title="enum ClutterAnimationMode"><span class="type">ClutterAnimationMode</span></a>
1151 or as a logical id returned by <a class="link" href="ClutterAlpha.html#clutter-alpha-register-func" title="clutter_alpha_register_func ()"><code class="function">clutter_alpha_register_func()</code></a>
1152 </p>
1153 <p>
1154 The result of this function depends on the <em class="parameter"><code>manager</code></em> implementation
1155 </p>
1156 <div class="variablelist"><table border="0">
1157 <col align="left" valign="top">
1158 <tbody>
1159 <tr>
1160 <td><p><span class="term"><em class="parameter"><code>manager</code></em> :</span></p></td>
1161 <td>a <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a>
1162 </td>
1163 </tr>
1164 <tr>
1165 <td><p><span class="term"><em class="parameter"><code>duration</code></em> :</span></p></td>
1166 <td>the duration of the animation, in milliseconds</td>
1167 </tr>
1168 <tr>
1169 <td><p><span class="term"><em class="parameter"><code>mode</code></em> :</span></p></td>
1170 <td>the easing mode of the animation</td>
1171 </tr>
1172 <tr>
1173 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1174 <td>The <a class="link" href="ClutterAlpha.html" title="ClutterAlpha"><span class="type">ClutterAlpha</span></a> created by the
1175 layout manager; the returned instance is owned by the layout
1176 manager and should not be unreferenced. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
1177 </td>
1178 </tr>
1179 </tbody>
1180 </table></div>
1181 <p class="since">Since 1.2</p>
1182 </div>
1183 <hr>
1184 <div class="refsect2">
1185 <a name="clutter-layout-manager-end-animation"></a><h3>clutter_layout_manager_end_animation ()</h3>
1186 <pre class="programlisting"><span class="returnvalue">void</span>                clutter_layout_manager_end_animation
1187                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>);</pre>
1188 <p>
1189 Ends an animation started by <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-begin-animation" title="clutter_layout_manager_begin_animation ()"><code class="function">clutter_layout_manager_begin_animation()</code></a>
1190 </p>
1191 <p>
1192 The result of this call depends on the <em class="parameter"><code>manager</code></em> implementation
1193 </p>
1194 <div class="variablelist"><table border="0">
1195 <col align="left" valign="top">
1196 <tbody><tr>
1197 <td><p><span class="term"><em class="parameter"><code>manager</code></em> :</span></p></td>
1198 <td>a <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a>
1199 </td>
1200 </tr></tbody>
1201 </table></div>
1202 <p class="since">Since 1.2</p>
1203 </div>
1204 <hr>
1205 <div class="refsect2">
1206 <a name="clutter-layout-manager-get-animation-progress"></a><h3>clutter_layout_manager_get_animation_progress ()</h3>
1207 <pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>             clutter_layout_manager_get_animation_progress
1208                                                         (<em class="parameter"><code><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager</code></em>);</pre>
1209 <p>
1210 Retrieves the progress of the animation, if one has been started by
1211 <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-begin-animation" title="clutter_layout_manager_begin_animation ()"><code class="function">clutter_layout_manager_begin_animation()</code></a>
1212 </p>
1213 <p>
1214 The returned value has the same semantics of the <a class="link" href="ClutterAlpha.html#ClutterAlpha--alpha" title='The "alpha" property'><span class="type">"alpha"</span></a>
1215 value
1216 </p>
1217 <div class="variablelist"><table border="0">
1218 <col align="left" valign="top">
1219 <tbody>
1220 <tr>
1221 <td><p><span class="term"><em class="parameter"><code>manager</code></em> :</span></p></td>
1222 <td>a <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a>
1223 </td>
1224 </tr>
1225 <tr>
1226 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1227 <td>the progress of the animation</td>
1228 </tr>
1229 </tbody>
1230 </table></div>
1231 <p class="since">Since 1.2</p>
1232 </div>
1233 </div>
1234 <div class="refsect1">
1235 <a name="ClutterLayoutManager.signal-details"></a><h2>Signal Details</h2>
1236 <div class="refsect2">
1237 <a name="ClutterLayoutManager-layout-changed"></a><h3>The <code class="literal">"layout-changed"</code> signal</h3>
1238 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> *manager,
1239                                                         <a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>              user_data)      : <a href="../gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
1240 <p>
1241 The ::layout-changed signal is emitted each time a layout manager
1242 has been changed. Every <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> using the <em class="parameter"><code>manager</code></em> instance
1243 as a layout manager should connect a handler to the ::layout-changed
1244 signal and queue a relayout on themselves:
1245 </p>
1246 <p>
1247 </p>
1248 <div class="informalexample">
1249   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
1250     <tbody>
1251       <tr>
1252         <td class="listing_lines" align="right"><pre>1
1253 2
1254 3
1255 4
1256 5
1257 6
1258 7
1259 8
1260 9
1261 10</pre></td>
1262         <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span><span class="normal"> </span><span class="function">layout_changed</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">ClutterLayoutManager</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">manager</span><span class="symbol">,</span>
1263 <span class="normal">                            </span><span class="usertype">ClutterActor</span><span class="normal">         </span><span class="symbol">*</span><span class="normal">self</span><span class="symbol">)</span>
1264 <span class="cbracket">{</span>
1265 <span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-queue-relayout">clutter_actor_queue_relayout</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">self</span><span class="symbol">);</span>
1266 <span class="cbracket">}</span>
1267 <span class="symbol">...</span>
1268 <span class="normal">  self</span><span class="symbol">-&gt;</span><span class="normal">manager </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-ref-sink">g_object_ref_sink</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">manager</span><span class="symbol">);</span>
1269 <span class="normal">  </span><span class="function"><a href="../gobject/gobject-Signals.html#g-signal-connect">g_signal_connect</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">self</span><span class="symbol">-&gt;</span><span class="normal">manager</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"layout-changed"</span><span class="symbol">,</span>
1270 <span class="normal">                    </span><span class="function"><a href="../gobject/gobject-Closures.html#G-CALLBACK:CAPS">G_CALLBACK</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">layout_changed</span><span class="symbol">),</span>
1271 <span class="normal">                    self</span><span class="symbol">);</span></pre></td>
1272       </tr>
1273     </tbody>
1274   </table>
1275 </div>
1276
1277 <p>
1278 </p>
1279 <p>
1280 Sub-classes of <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> that implement a layout that
1281 can be controlled or changed using parameters should emit the
1282 ::layout-changed signal whenever one of the parameters changes,
1283 by using <a class="link" href="ClutterLayoutManager.html#clutter-layout-manager-layout-changed" title="clutter_layout_manager_layout_changed ()"><code class="function">clutter_layout_manager_layout_changed()</code></a>.
1284 </p>
1285 <div class="variablelist"><table border="0">
1286 <col align="left" valign="top">
1287 <tbody>
1288 <tr>
1289 <td><p><span class="term"><em class="parameter"><code>manager</code></em> :</span></p></td>
1290 <td>the <a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="type">ClutterLayoutManager</span></a> that emitted the signal</td>
1291 </tr>
1292 <tr>
1293 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
1294 <td>user data set when the signal handler was connected.</td>
1295 </tr>
1296 </tbody>
1297 </table></div>
1298 <p class="since">Since 1.2</p>
1299 </div>
1300 </div>
1301 </div>
1302 <div class="footer">
1303 <hr>
1304           Generated by GTK-Doc V1.18.1</div>
1305 </body>
1306 </html>