<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Clutter Reference Manual: ClutterBinLayout</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="Clutter Reference Manual">
<link rel="up" href="ch03.html" title="Layout managers">
<link rel="prev" href="ClutterFixedLayout.html" title="ClutterFixedLayout">
<link rel="next" href="ClutterFlowLayout.html" title="ClutterFlowLayout">
<meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
<td width="100%" align="left">
<a href="#" class="shortcut">Top</a>
                   | 
                  <a href="#ClutterBinLayout.description" class="shortcut">Description</a>
                   | 
                  <a href="#ClutterBinLayout.object-hierarchy" class="shortcut">Object Hierarchy</a>
                   | 
                  <a href="#ClutterBinLayout.properties" class="shortcut">Properties</a>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="ClutterFixedLayout.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="ClutterFlowLayout.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="ClutterBinLayout"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="ClutterBinLayout.top_of_page"></a>ClutterBinLayout</span></h2>
<p>ClutterBinLayout — A simple layout manager</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="ClutterBinLayout.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">enum                <a class="link" href="ClutterBinLayout.html#ClutterBinAlignment" title="enum ClutterBinAlignment">ClutterBinAlignment</a>;
struct              <a class="link" href="ClutterBinLayout.html#ClutterBinLayout-struct" title="struct ClutterBinLayout">ClutterBinLayout</a>;
struct              <a class="link" href="ClutterBinLayout.html#ClutterBinLayoutClass" title="struct ClutterBinLayoutClass">ClutterBinLayoutClass</a>;
<a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="returnvalue">ClutterLayoutManager</span></a> * <a class="link" href="ClutterBinLayout.html#clutter-bin-layout-new" title="clutter_bin_layout_new ()">clutter_bin_layout_new</a>           (<em class="parameter"><code><a class="link" href="ClutterBinLayout.html#ClutterBinAlignment" title="enum ClutterBinAlignment"><span class="type">ClutterBinAlignment</span></a> x_align</code></em>,
                                                         <em class="parameter"><code><a class="link" href="ClutterBinLayout.html#ClutterBinAlignment" title="enum ClutterBinAlignment"><span class="type">ClutterBinAlignment</span></a> y_align</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="ClutterBinLayout.html#clutter-bin-layout-set-alignment" title="clutter_bin_layout_set_alignment ()">clutter_bin_layout_set_alignment</a>    (<em class="parameter"><code><a class="link" href="ClutterBinLayout.html" title="ClutterBinLayout"><span class="type">ClutterBinLayout</span></a> *self</code></em>,
                                                         <em class="parameter"><code><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> *child</code></em>,
                                                         <em class="parameter"><code><a class="link" href="ClutterBinLayout.html#ClutterBinAlignment" title="enum ClutterBinAlignment"><span class="type">ClutterBinAlignment</span></a> x_align</code></em>,
                                                         <em class="parameter"><code><a class="link" href="ClutterBinLayout.html#ClutterBinAlignment" title="enum ClutterBinAlignment"><span class="type">ClutterBinAlignment</span></a> y_align</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="ClutterBinLayout.html#clutter-bin-layout-get-alignment" title="clutter_bin_layout_get_alignment ()">clutter_bin_layout_get_alignment</a>    (<em class="parameter"><code><a class="link" href="ClutterBinLayout.html" title="ClutterBinLayout"><span class="type">ClutterBinLayout</span></a> *self</code></em>,
                                                         <em class="parameter"><code><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> *child</code></em>,
                                                         <em class="parameter"><code><a class="link" href="ClutterBinLayout.html#ClutterBinAlignment" title="enum ClutterBinAlignment"><span class="type">ClutterBinAlignment</span></a> *x_align</code></em>,
                                                         <em class="parameter"><code><a class="link" href="ClutterBinLayout.html#ClutterBinAlignment" title="enum ClutterBinAlignment"><span class="type">ClutterBinAlignment</span></a> *y_align</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="ClutterBinLayout.html#clutter-bin-layout-add" title="clutter_bin_layout_add ()">clutter_bin_layout_add</a>              (<em class="parameter"><code><a class="link" href="ClutterBinLayout.html" title="ClutterBinLayout"><span class="type">ClutterBinLayout</span></a> *self</code></em>,
                                                         <em class="parameter"><code><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> *child</code></em>,
                                                         <em class="parameter"><code><a class="link" href="ClutterBinLayout.html#ClutterBinAlignment" title="enum ClutterBinAlignment"><span class="type">ClutterBinAlignment</span></a> x_align</code></em>,
                                                         <em class="parameter"><code><a class="link" href="ClutterBinLayout.html#ClutterBinAlignment" title="enum ClutterBinAlignment"><span class="type">ClutterBinAlignment</span></a> y_align</code></em>);
</pre>
</div>
<div class="refsect1">
<a name="ClutterBinLayout.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="synopsis">
  GObject
   +----GInitiallyUnowned
         +----<a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager">ClutterLayoutManager</a>
               +----ClutterBinLayout
</pre>
</div>
<div class="refsect1">
<a name="ClutterBinLayout.properties"></a><h2>Properties</h2>
<pre class="synopsis">
  "<a class="link" href="ClutterBinLayout.html#ClutterBinLayout--x-align" title='The "x-align" property'>x-align</a>"                  <a class="link" href="ClutterBinLayout.html#ClutterBinAlignment" title="enum ClutterBinAlignment"><span class="type">ClutterBinAlignment</span></a>   : Read / Write
  "<a class="link" href="ClutterBinLayout.html#ClutterBinLayout--y-align" title='The "y-align" property'>y-align</a>"                  <a class="link" href="ClutterBinLayout.html#ClutterBinAlignment" title="enum ClutterBinAlignment"><span class="type">ClutterBinAlignment</span></a>   : Read / Write
</pre>
</div>
<div class="refsect1">
<a name="ClutterBinLayout.description"></a><h2>Description</h2>
<p>
<a class="link" href="ClutterBinLayout.html" title="ClutterBinLayout"><span class="type">ClutterBinLayout</span></a> is a layout manager which implements the following
policy:
</p>
<p>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">the preferred size is the maximum preferred size
  between all the children of the container using the
  layout;</li>
<li class="listitem">each child is allocated in "layers", on on top
  of the other;</li>
<li class="listitem">for each layer there are horizontal and vertical
  alignment policies.</li>
</ul></div>
<p>
</p>
<p>
</p>
<div class="figure">
<a name="bin-layout"></a><p class="title"><b>Figure 4. Bin layout</b></p>
<div class="figure-contents">
<p>The image shows a <a class="link" href="ClutterBinLayout.html" title="ClutterBinLayout"><span class="type">ClutterBinLayout</span></a> with three layers:
  a background <a class="link" href="ClutterCairoTexture.html" title="ClutterCairoTexture"><span class="type">ClutterCairoTexture</span></a>, set to fill on both the X
  and Y axis; a <a class="link" href="ClutterTexture.html" title="ClutterTexture"><span class="type">ClutterTexture</span></a>, set to center on both the X and
  Y axis; and a <a class="link" href="ClutterRectangle.html" title="ClutterRectangle"><span class="type">ClutterRectangle</span></a>, set to <a class="link" href="ClutterBinLayout.html#CLUTTER-BIN-ALIGNMENT-END:CAPS"><code class="literal">CLUTTER_BIN_ALIGNMENT_END</code></a>
  on both the X and Y axis.</p>
<div><img src="bin-layout.png" alt="Bin layout"></div>
</div>
</div>
<p><br class="figure-break">
</p>
<p>
</p>
<div class="example">
<a name="example-clutter-bin-layout"></a><p class="title"><b>Example 4. How to pack actors inside a BinLayout</b></p>
<div class="example-contents">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="preproc">#include</span><span class="normal"> </span><span class="string">&lt;stdlib.h&gt;</span>
<span class="preproc">#include</span><span class="normal"> </span><span class="string">&lt;cairo.h&gt;</span>
<span class="preproc">#include</span><span class="normal"> </span><span class="string">&lt;gdk-pixbuf/gdk-pixbuf.h&gt;</span>
<span class="preproc">#include</span><span class="normal"> </span><span class="string">&lt;clutter/clutter.h&gt;</span>

<span class="keyword">static</span><span class="normal"> </span><span class="keyword">const</span><span class="normal"> </span><span class="usertype">ClutterColor</span><span class="normal"> bg_color </span><span class="symbol">=</span><span class="normal"> </span><span class="cbracket">{</span><span class="normal"> </span><span class="number">0xcc</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0xcc</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0xcc</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0x99</span><span class="normal"> </span><span class="cbracket">}</span><span class="symbol">;</span>

<span class="keyword">static</span><span class="normal"> </span><span class="usertype">gboolean</span><span class="normal"> is_expanded </span><span class="symbol">=</span><span class="normal"> FALSE</span><span class="symbol">;</span>

<span class="keyword">static</span><span class="normal"> gboolean</span>
<span class="function">on_canvas_draw</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">ClutterCanvas</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">canvas</span><span class="symbol">,</span>
<span class="normal">                </span><span class="usertype">cairo_t</span><span class="normal">      </span><span class="symbol">*</span><span class="normal">cr</span><span class="symbol">,</span>
<span class="normal">                </span><span class="usertype">gint</span><span class="normal">          width</span><span class="symbol">,</span>
<span class="normal">                </span><span class="usertype">gint</span><span class="normal">          height</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal">  </span><span class="usertype">cairo_pattern_t</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">pat</span><span class="symbol">;</span>
<span class="normal">  </span><span class="usertype">gfloat</span><span class="normal"> x</span><span class="symbol">,</span><span class="normal"> y</span><span class="symbol">;</span>

<span class="normal">  </span><span class="function">g_print</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">G_STRLOC </span><span class="string">": Painting at %d x %d</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> width</span><span class="symbol">,</span><span class="normal"> height</span><span class="symbol">);</span>

<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-save">cairo_save</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-set-operator">cairo_set_operator</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> <a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#CAIRO-OPERATOR-CLEAR:CAPS">CAIRO_OPERATOR_CLEAR</a></span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-paint">cairo_paint</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-restore">cairo_restore</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">);</span>

<span class="preproc">#define</span><span class="normal"> BG_ROUND_RADIUS         </span><span class="number">12</span>

<span class="normal">  x </span><span class="symbol">=</span><span class="normal"> y </span><span class="symbol">=</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span>

<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-move-to">cairo_move_to</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> BG_ROUND_RADIUS</span><span class="symbol">,</span><span class="normal"> y</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-line-to">cairo_line_to</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> width </span><span class="symbol">-</span><span class="normal"> BG_ROUND_RADIUS</span><span class="symbol">,</span><span class="normal"> y</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-curve-to">cairo_curve_to</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> width</span><span class="symbol">,</span><span class="normal"> y</span><span class="symbol">,</span><span class="normal"> width</span><span class="symbol">,</span><span class="normal"> y</span><span class="symbol">,</span><span class="normal"> width</span><span class="symbol">,</span><span class="normal"> BG_ROUND_RADIUS</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-line-to">cairo_line_to</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> width</span><span class="symbol">,</span><span class="normal"> height </span><span class="symbol">-</span><span class="normal"> BG_ROUND_RADIUS</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-curve-to">cairo_curve_to</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> width</span><span class="symbol">,</span><span class="normal"> height</span><span class="symbol">,</span><span class="normal"> width</span><span class="symbol">,</span><span class="normal"> height</span><span class="symbol">,</span><span class="normal"> width </span><span class="symbol">-</span><span class="normal"> BG_ROUND_RADIUS</span><span class="symbol">,</span><span class="normal"> height</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-line-to">cairo_line_to</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> BG_ROUND_RADIUS</span><span class="symbol">,</span><span class="normal"> height</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-curve-to">cairo_curve_to</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> x</span><span class="symbol">,</span><span class="normal"> height</span><span class="symbol">,</span><span class="normal"> x</span><span class="symbol">,</span><span class="normal"> height</span><span class="symbol">,</span><span class="normal"> x</span><span class="symbol">,</span><span class="normal"> height </span><span class="symbol">-</span><span class="normal"> BG_ROUND_RADIUS</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-line-to">cairo_line_to</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> x</span><span class="symbol">,</span><span class="normal"> BG_ROUND_RADIUS</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-curve-to">cairo_curve_to</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> x</span><span class="symbol">,</span><span class="normal"> y</span><span class="symbol">,</span><span class="normal"> x</span><span class="symbol">,</span><span class="normal"> y</span><span class="symbol">,</span><span class="normal"> BG_ROUND_RADIUS</span><span class="symbol">,</span><span class="normal"> y</span><span class="symbol">);</span>

<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-close-path">cairo_close_path</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">);</span>

<span class="normal">  </span><span class="function">clutter_cairo_set_source_color</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">bg_color</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-stroke">cairo_stroke</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">);</span>

<span class="normal">  x </span><span class="symbol">+=</span><span class="normal"> </span><span class="number">4</span><span class="symbol">;</span>
<span class="normal">  y </span><span class="symbol">+=</span><span class="normal"> </span><span class="number">4</span><span class="symbol">;</span>
<span class="normal">  width </span><span class="symbol">-=</span><span class="normal"> </span><span class="number">4</span><span class="symbol">;</span>
<span class="normal">  height </span><span class="symbol">-=</span><span class="normal"> </span><span class="number">4</span><span class="symbol">;</span>

<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-move-to">cairo_move_to</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> BG_ROUND_RADIUS</span><span class="symbol">,</span><span class="normal"> y</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-line-to">cairo_line_to</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> width </span><span class="symbol">-</span><span class="normal"> BG_ROUND_RADIUS</span><span class="symbol">,</span><span class="normal"> y</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-curve-to">cairo_curve_to</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> width</span><span class="symbol">,</span><span class="normal"> y</span><span class="symbol">,</span><span class="normal"> width</span><span class="symbol">,</span><span class="normal"> y</span><span class="symbol">,</span><span class="normal"> width</span><span class="symbol">,</span><span class="normal"> BG_ROUND_RADIUS</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-line-to">cairo_line_to</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> width</span><span class="symbol">,</span><span class="normal"> height </span><span class="symbol">-</span><span class="normal"> BG_ROUND_RADIUS</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-curve-to">cairo_curve_to</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> width</span><span class="symbol">,</span><span class="normal"> height</span><span class="symbol">,</span><span class="normal"> width</span><span class="symbol">,</span><span class="normal"> height</span><span class="symbol">,</span><span class="normal"> width </span><span class="symbol">-</span><span class="normal"> BG_ROUND_RADIUS</span><span class="symbol">,</span><span class="normal"> height</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-line-to">cairo_line_to</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> BG_ROUND_RADIUS</span><span class="symbol">,</span><span class="normal"> height</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-curve-to">cairo_curve_to</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> x</span><span class="symbol">,</span><span class="normal"> height</span><span class="symbol">,</span><span class="normal"> x</span><span class="symbol">,</span><span class="normal"> height</span><span class="symbol">,</span><span class="normal"> x</span><span class="symbol">,</span><span class="normal"> height </span><span class="symbol">-</span><span class="normal"> BG_ROUND_RADIUS</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-line-to">cairo_line_to</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> x</span><span class="symbol">,</span><span class="normal"> BG_ROUND_RADIUS</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-curve-to">cairo_curve_to</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> x</span><span class="symbol">,</span><span class="normal"> y</span><span class="symbol">,</span><span class="normal"> x</span><span class="symbol">,</span><span class="normal"> y</span><span class="symbol">,</span><span class="normal"> BG_ROUND_RADIUS</span><span class="symbol">,</span><span class="normal"> y</span><span class="symbol">);</span>

<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-Paths.html#cairo-close-path">cairo_close_path</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">);</span>

<span class="normal">  pat </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-pattern-t.html#cairo-pattern-create-linear">cairo_pattern_create_linear</a></span><span class="normal"> </span><span class="symbol">(</span><span class="number">0</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> height</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop-rgba">cairo_pattern_add_color_stop_rgba</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">pat</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">.</span><span class="number">85</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">.</span><span class="number">85</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">.</span><span class="number">85</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop-rgba">cairo_pattern_add_color_stop_rgba</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">pat</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">.</span><span class="number">95</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop-rgba">cairo_pattern_add_color_stop_rgba</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">pat</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">.</span><span class="number">05</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop-rgba">cairo_pattern_add_color_stop_rgba</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">pat</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">.</span><span class="number">85</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">.</span><span class="number">85</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">.</span><span class="number">85</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">);</span>

<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-set-source">cairo_set_source</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">,</span><span class="normal"> pat</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-fill">cairo_fill</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">cr</span><span class="symbol">);</span>

<span class="normal">  </span><span class="function"><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-pattern-t.html#cairo-pattern-destroy">cairo_pattern_destroy</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">pat</span><span class="symbol">);</span>

<span class="preproc">#undef</span><span class="normal"> BG_ROUND_RADIUS</span>

<span class="normal">  </span><span class="keyword">return</span><span class="normal"> TRUE</span><span class="symbol">;</span>
<span class="cbracket">}</span>

<span class="keyword">static</span><span class="normal"> gboolean</span>
<span class="function">on_box_enter</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">ClutterActor</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">box</span><span class="symbol">,</span>
<span class="normal">              </span><span class="usertype">ClutterEvent</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">event</span><span class="symbol">,</span>
<span class="normal">              </span><span class="usertype">ClutterActor</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">emblem</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal">  </span><span class="comment">/* we ease the opacity linearly */</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-save-easing-state">clutter_actor_save_easing_state</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">emblem</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-easing-mode">clutter_actor_set_easing_mode</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">emblem</span><span class="symbol">,</span><span class="normal"> <a href="ClutterTimeline.html#CLUTTER-LINEAR:CAPS">CLUTTER_LINEAR</a></span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-opacity">clutter_actor_set_opacity</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">emblem</span><span class="symbol">,</span><span class="normal"> </span><span class="number">255</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-restore-easing-state">clutter_actor_restore_easing_state</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">emblem</span><span class="symbol">);</span>

<span class="normal">  </span><span class="keyword">return</span><span class="normal"> <a href="clutter-Events.html#CLUTTER-EVENT-STOP:CAPS">CLUTTER_EVENT_STOP</a></span><span class="symbol">;</span>
<span class="cbracket">}</span>

<span class="keyword">static</span><span class="normal"> gboolean</span>
<span class="function">on_box_leave</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">ClutterActor</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">box</span><span class="symbol">,</span>
<span class="normal">              </span><span class="usertype">ClutterEvent</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">event</span><span class="symbol">,</span>
<span class="normal">              </span><span class="usertype">ClutterActor</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">emblem</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-save-easing-state">clutter_actor_save_easing_state</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">emblem</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-easing-mode">clutter_actor_set_easing_mode</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">emblem</span><span class="symbol">,</span><span class="normal"> <a href="ClutterTimeline.html#CLUTTER-LINEAR:CAPS">CLUTTER_LINEAR</a></span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-opacity">clutter_actor_set_opacity</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">emblem</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-restore-easing-state">clutter_actor_restore_easing_state</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">emblem</span><span class="symbol">);</span>

<span class="normal">  </span><span class="keyword">return</span><span class="normal"> <a href="clutter-Events.html#CLUTTER-EVENT-STOP:CAPS">CLUTTER_EVENT_STOP</a></span><span class="symbol">;</span>
<span class="cbracket">}</span>

<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
<span class="function">on_emblem_clicked</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">ClutterClickAction</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">action</span><span class="symbol">,</span>
<span class="normal">                   </span><span class="usertype">ClutterActor</span><span class="normal">       </span><span class="symbol">*</span><span class="normal">emblem</span><span class="symbol">,</span>
<span class="normal">                   </span><span class="usertype">ClutterActor</span><span class="normal">       </span><span class="symbol">*</span><span class="normal">box</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal">  </span><span class="comment">/* we add a little bounce to the resizing of the box */</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-save-easing-state">clutter_actor_save_easing_state</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">box</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-easing-mode">clutter_actor_set_easing_mode</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">box</span><span class="symbol">,</span><span class="normal"> <a href="ClutterTimeline.html#CLUTTER-EASE-OUT-BOUNCE:CAPS">CLUTTER_EASE_OUT_BOUNCE</a></span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-easing-duration">clutter_actor_set_easing_duration</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">box</span><span class="symbol">,</span><span class="normal"> </span><span class="number">500</span><span class="symbol">);</span>

<span class="normal">  </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!</span><span class="normal">is_expanded</span><span class="symbol">)</span>
<span class="normal">    </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-size">clutter_actor_set_size</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">box</span><span class="symbol">,</span><span class="normal"> </span><span class="number">400</span><span class="symbol">,</span><span class="normal"> </span><span class="number">400</span><span class="symbol">);</span>
<span class="normal">  </span><span class="keyword">else</span>
<span class="normal">    </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-size">clutter_actor_set_size</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">box</span><span class="symbol">,</span><span class="normal"> </span><span class="number">200</span><span class="symbol">,</span><span class="normal"> </span><span class="number">200</span><span class="symbol">);</span>

<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-restore-easing-state">clutter_actor_restore_easing_state</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">box</span><span class="symbol">);</span>

<span class="normal">  is_expanded </span><span class="symbol">=</span><span class="normal"> </span><span class="symbol">!</span><span class="normal">is_expanded</span><span class="symbol">;</span>
<span class="cbracket">}</span>

<span class="keyword">static</span><span class="normal"> gboolean</span>
<span class="function">on_emblem_long_press</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">ClutterClickAction</span><span class="normal">    </span><span class="symbol">*</span><span class="normal">action</span><span class="symbol">,</span>
<span class="normal">                      </span><span class="usertype">ClutterActor</span><span class="normal">          </span><span class="symbol">*</span><span class="normal">emblem</span><span class="symbol">,</span>
<span class="normal">                      </span><span class="usertype">ClutterLongPressState</span><span class="normal">  state</span><span class="symbol">,</span>
<span class="normal">                      </span><span class="usertype">ClutterActor</span><span class="normal">          </span><span class="symbol">*</span><span class="normal">box</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal">  </span><span class="keyword">switch</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">state</span><span class="symbol">)</span>
<span class="normal">    </span><span class="cbracket">{</span>
<span class="normal">    </span><span class="keyword">case</span><span class="normal"> <a href="ClutterClickAction.html#CLUTTER-LONG-PRESS-QUERY:CAPS">CLUTTER_LONG_PRESS_QUERY</a></span><span class="symbol">:</span>
<span class="normal">      </span><span class="function">g_print</span><span class="normal"> </span><span class="symbol">(</span><span class="string">"*** long press: query ***</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">);</span>
<span class="normal">      </span><span class="keyword">return</span><span class="normal"> is_expanded</span><span class="symbol">;</span>

<span class="normal">    </span><span class="keyword">case</span><span class="normal"> <a href="ClutterClickAction.html#CLUTTER-LONG-PRESS-CANCEL:CAPS">CLUTTER_LONG_PRESS_CANCEL</a></span><span class="symbol">:</span>
<span class="normal">      </span><span class="function">g_print</span><span class="normal"> </span><span class="symbol">(</span><span class="string">"*** long press: cancel ***</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">);</span>
<span class="normal">      </span><span class="keyword">break</span><span class="symbol">;</span>

<span class="normal">    </span><span class="keyword">case</span><span class="normal"> <a href="ClutterClickAction.html#CLUTTER-LONG-PRESS-ACTIVATE:CAPS">CLUTTER_LONG_PRESS_ACTIVATE</a></span><span class="symbol">:</span>
<span class="normal">      </span><span class="function">g_print</span><span class="normal"> </span><span class="symbol">(</span><span class="string">"*** long press: activate ***</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">);</span>
<span class="normal">      </span><span class="keyword">break</span><span class="symbol">;</span>
<span class="normal">    </span><span class="cbracket">}</span>

<span class="normal">  </span><span class="keyword">return</span><span class="normal"> TRUE</span><span class="symbol">;</span>
<span class="cbracket">}</span>

<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
<span class="function">redraw_canvas</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">ClutterActor</span><span class="normal">  </span><span class="symbol">*</span><span class="normal">actor</span><span class="symbol">,</span>
<span class="normal">               </span><span class="usertype">ClutterCanvas</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">canvas</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal">  </span><span class="comment">/* we want to invalidate the canvas and redraw its contents</span>
<span class="comment">   * only when the size changes at the end of the animation,</span>
<span class="comment">   * to avoid drawing all the states inbetween</span>
<span class="comment">   */</span>
<span class="normal">  </span><span class="function"><a href="ClutterCanvas.html#clutter-canvas-set-size">clutter_canvas_set_size</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">canvas</span><span class="symbol">,</span>
<span class="normal">                           </span><span class="function"><a href="ClutterActor.html#clutter-actor-get-width">clutter_actor_get_width</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">actor</span><span class="symbol">),</span>
<span class="normal">                           </span><span class="function"><a href="ClutterActor.html#clutter-actor-get-height">clutter_actor_get_height</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">actor</span><span class="symbol">));</span>
<span class="cbracket">}</span>

<span class="type">int</span>
<span class="function">main</span><span class="normal"> </span><span class="symbol">(</span><span class="type">int</span><span class="normal"> argc</span><span class="symbol">,</span><span class="normal"> </span><span class="type">char</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">argv</span><span class="symbol">[])</span>
<span class="cbracket">{</span>
<span class="normal">  </span><span class="usertype">ClutterActor</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">stage</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">box</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">bg</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">icon</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">emblem</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">label</span><span class="symbol">;</span>
<span class="normal">  </span><span class="usertype">ClutterLayoutManager</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">layout</span><span class="symbol">;</span>
<span class="normal">  </span><span class="usertype">ClutterContent</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">canvas</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">image</span><span class="symbol">;</span>
<span class="normal">  </span><span class="usertype">ClutterColor</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">color</span><span class="symbol">;</span>
<span class="normal">  </span><span class="usertype">ClutterAction</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">action</span><span class="symbol">;</span>
<span class="normal">  </span><span class="usertype">GdkPixbuf</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">pixbuf</span><span class="symbol">;</span>

<span class="normal">  </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="clutter-General.html#clutter-init">clutter_init</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">argc</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">argv</span><span class="symbol">)</span><span class="normal"> </span><span class="symbol">!=</span><span class="normal"> <a href="clutter-General.html#CLUTTER-INIT-SUCCESS:CAPS">CLUTTER_INIT_SUCCESS</a></span><span class="symbol">)</span>
<span class="normal">    </span><span class="keyword">return</span><span class="normal"> </span><span class="number">1</span><span class="symbol">;</span>

<span class="normal">  </span><span class="comment">/* prepare the stage */</span>
<span class="normal">  stage </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="ClutterStage.html#clutter-stage-new">clutter_stage_new</a></span><span class="normal"> </span><span class="symbol">();</span>
<span class="normal">  </span><span class="function"><a href="ClutterStage.html#clutter-stage-set-title">clutter_stage_set_title</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">CLUTTER_STAGE</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">stage</span><span class="symbol">),</span><span class="normal"> </span><span class="string">"BinLayout"</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-background-color">clutter_actor_set_background_color</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">stage</span><span class="symbol">,</span><span class="normal"> CLUTTER_COLOR_Aluminium2</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-size">clutter_actor_set_size</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">stage</span><span class="symbol">,</span><span class="normal"> </span><span class="number">640</span><span class="symbol">,</span><span class="normal"> </span><span class="number">480</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-show">clutter_actor_show</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">stage</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function">g_signal_connect</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">stage</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"destroy"</span><span class="symbol">,</span><span class="normal"> </span><span class="function">G_CALLBACK</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="clutter-General.html#clutter-main-quit">clutter_main_quit</a></span><span class="symbol">),</span><span class="normal"> NULL</span><span class="symbol">);</span>

<span class="normal">  </span><span class="comment">/* this is our BinLayout, with its default alignments */</span>
<span class="normal">  layout </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="ClutterBinLayout.html#clutter-bin-layout-new">clutter_bin_layout_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="ClutterBinLayout.html#CLUTTER-BIN-ALIGNMENT-CENTER:CAPS">CLUTTER_BIN_ALIGNMENT_CENTER</a></span><span class="symbol">,</span>
<span class="normal">                                   <a href="ClutterBinLayout.html#CLUTTER-BIN-ALIGNMENT-CENTER:CAPS">CLUTTER_BIN_ALIGNMENT_CENTER</a></span><span class="symbol">);</span>

<span class="normal">  </span><span class="comment">/* the main container; this actor will use the BinLayout to lay</span>
<span class="comment">   * out its children; we use the anchor point to keep it centered</span>
<span class="comment">   * on the same position even when we change its size</span>
<span class="comment">   */</span>
<span class="normal">  box </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="ClutterActor.html#clutter-actor-new">clutter_actor_new</a></span><span class="normal"> </span><span class="symbol">();</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-layout-manager">clutter_actor_set_layout_manager</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">box</span><span class="symbol">,</span><span class="normal"> layout</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-add-constraint">clutter_actor_add_constraint</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">box</span><span class="symbol">,</span><span class="normal"> </span><span class="function"><a href="ClutterAlignConstraint.html#clutter-align-constraint-new">clutter_align_constraint_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">stage</span><span class="symbol">,</span><span class="normal"> <a href="ClutterAlignConstraint.html#CLUTTER-ALIGN-BOTH:CAPS">CLUTTER_ALIGN_BOTH</a></span><span class="symbol">,</span><span class="normal"> </span><span class="number">0.5</span><span class="symbol">));</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-position">clutter_actor_set_position</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">box</span><span class="symbol">,</span><span class="normal"> </span><span class="number">320</span><span class="symbol">,</span><span class="normal"> </span><span class="number">240</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-reactive">clutter_actor_set_reactive</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">box</span><span class="symbol">,</span><span class="normal"> TRUE</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-name">clutter_actor_set_name</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">box</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"box"</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-add-child">clutter_actor_add_child</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">stage</span><span class="symbol">,</span><span class="normal"> box</span><span class="symbol">);</span>

<span class="normal">  </span><span class="comment">/* the background is drawn using a canvas content */</span>
<span class="normal">  canvas </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="ClutterCanvas.html#clutter-canvas-new">clutter_canvas_new</a></span><span class="normal"> </span><span class="symbol">();</span>
<span class="normal">  </span><span class="function">g_signal_connect</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">canvas</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"draw"</span><span class="symbol">,</span><span class="normal"> </span><span class="function">G_CALLBACK</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">on_canvas_draw</span><span class="symbol">),</span><span class="normal"> NULL</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterCanvas.html#clutter-canvas-set-size">clutter_canvas_set_size</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">CLUTTER_CANVAS</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">canvas</span><span class="symbol">),</span><span class="normal"> </span><span class="number">200</span><span class="symbol">,</span><span class="normal"> </span><span class="number">200</span><span class="symbol">);</span>

<span class="normal">  </span><span class="comment">/* this is the background actor; we want it to fill the whole</span>
<span class="comment">   * of the allocation given to it by its parent</span>
<span class="comment">   */</span>
<span class="normal">  bg </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="ClutterActor.html#clutter-actor-new">clutter_actor_new</a></span><span class="normal"> </span><span class="symbol">();</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-name">clutter_actor_set_name</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">bg</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"background"</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-size">clutter_actor_set_size</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">bg</span><span class="symbol">,</span><span class="normal"> </span><span class="number">200</span><span class="symbol">,</span><span class="normal"> </span><span class="number">200</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-content">clutter_actor_set_content</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">bg</span><span class="symbol">,</span><span class="normal"> canvas</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-x-expand">clutter_actor_set_x_expand</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">bg</span><span class="symbol">,</span><span class="normal"> TRUE</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-y-expand">clutter_actor_set_y_expand</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">bg</span><span class="symbol">,</span><span class="normal"> TRUE</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-x-align">clutter_actor_set_x_align</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">bg</span><span class="symbol">,</span><span class="normal"> <a href="ClutterActor.html#CLUTTER-ACTOR-ALIGN-FILL:CAPS">CLUTTER_ACTOR_ALIGN_FILL</a></span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-y-align">clutter_actor_set_y_align</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">bg</span><span class="symbol">,</span><span class="normal"> <a href="ClutterActor.html#CLUTTER-ACTOR-ALIGN-FILL:CAPS">CLUTTER_ACTOR_ALIGN_FILL</a></span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-add-child">clutter_actor_add_child</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">box</span><span class="symbol">,</span><span class="normal"> bg</span><span class="symbol">);</span>
<span class="normal">  </span><span class="comment">/* we use the ::transitions-completed signal to get notification</span>
<span class="comment">   * of the end of the sizing animation; this allows us to redraw</span>
<span class="comment">   * the canvas only once the animation has stopped</span>
<span class="comment">   */</span>
<span class="normal">  </span><span class="function">g_signal_connect</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">box</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"transitions-completed"</span><span class="symbol">,</span>
<span class="normal">                    </span><span class="function">G_CALLBACK</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">redraw_canvas</span><span class="symbol">),</span>
<span class="normal">                    canvas</span><span class="symbol">);</span>

<span class="normal">  </span><span class="comment">/* we use GdkPixbuf to load an image from our data directory */</span>
<span class="normal">  pixbuf </span><span class="symbol">=</span><span class="normal"> </span><span class="function">gdk_pixbuf_new_from_file</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">TESTS_DATADIR</span><span class="normal"> G_DIR_SEPARATOR_S </span><span class="string">"redhand.png"</span><span class="symbol">,</span><span class="normal"> NULL</span><span class="symbol">);</span>
<span class="normal">  image </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="ClutterImage.html#clutter-image-new">clutter_image_new</a></span><span class="normal"> </span><span class="symbol">();</span>
<span class="normal">  </span><span class="function"><a href="ClutterImage.html#clutter-image-set-data">clutter_image_set_data</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">CLUTTER_IMAGE</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">image</span><span class="symbol">),</span>
<span class="normal">                          </span><span class="function">gdk_pixbuf_get_pixels</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">pixbuf</span><span class="symbol">),</span>
<span class="normal">                          </span><span class="function">gdk_pixbuf_get_has_alpha</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">pixbuf</span><span class="symbol">)</span>
<span class="normal">                            </span><span class="symbol">?</span><span class="normal"> COGL_PIXEL_FORMAT_RGBA_8888</span>
<span class="normal">                            </span><span class="symbol">:</span><span class="normal"> COGL_PIXEL_FORMAT_RGB_888</span><span class="symbol">,</span>
<span class="normal">                          </span><span class="function">gdk_pixbuf_get_width</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">pixbuf</span><span class="symbol">),</span>
<span class="normal">                          </span><span class="function">gdk_pixbuf_get_height</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">pixbuf</span><span class="symbol">),</span>
<span class="normal">                          </span><span class="function">gdk_pixbuf_get_rowstride</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">pixbuf</span><span class="symbol">),</span>
<span class="normal">                          NULL</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function">g_object_unref</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">pixbuf</span><span class="symbol">);</span>

<span class="normal">  </span><span class="comment">/* this is the icon; it's going to be centered inside the box actor.</span>
<span class="comment">   * we use the content gravity to keep the aspect ratio of the image,</span>
<span class="comment">   * and the scaling filters to get a better result when scaling the</span>
<span class="comment">   * image down.</span>
<span class="comment">   */</span>
<span class="normal">  icon </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="ClutterActor.html#clutter-actor-new">clutter_actor_new</a></span><span class="normal"> </span><span class="symbol">();</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-name">clutter_actor_set_name</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">icon</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"icon"</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-size">clutter_actor_set_size</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">icon</span><span class="symbol">,</span><span class="normal"> </span><span class="number">196</span><span class="symbol">,</span><span class="normal"> </span><span class="number">196</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-x-expand">clutter_actor_set_x_expand</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">icon</span><span class="symbol">,</span><span class="normal"> TRUE</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-y-expand">clutter_actor_set_y_expand</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">icon</span><span class="symbol">,</span><span class="normal"> TRUE</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-x-align">clutter_actor_set_x_align</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">icon</span><span class="symbol">,</span><span class="normal"> <a href="ClutterActor.html#CLUTTER-ACTOR-ALIGN-CENTER:CAPS">CLUTTER_ACTOR_ALIGN_CENTER</a></span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-y-align">clutter_actor_set_y_align</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">icon</span><span class="symbol">,</span><span class="normal"> <a href="ClutterActor.html#CLUTTER-ACTOR-ALIGN-CENTER:CAPS">CLUTTER_ACTOR_ALIGN_CENTER</a></span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-content-gravity">clutter_actor_set_content_gravity</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">icon</span><span class="symbol">,</span><span class="normal"> <a href="ClutterActor.html#CLUTTER-CONTENT-GRAVITY-RESIZE-ASPECT:CAPS">CLUTTER_CONTENT_GRAVITY_RESIZE_ASPECT</a></span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-content-scaling-filters">clutter_actor_set_content_scaling_filters</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">icon</span><span class="symbol">,</span>
<span class="normal">                                             <a href="ClutterActor.html#CLUTTER-SCALING-FILTER-TRILINEAR:CAPS">CLUTTER_SCALING_FILTER_TRILINEAR</a></span><span class="symbol">,</span>
<span class="normal">                                             <a href="ClutterActor.html#CLUTTER-SCALING-FILTER-LINEAR:CAPS">CLUTTER_SCALING_FILTER_LINEAR</a></span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-content">clutter_actor_set_content</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">icon</span><span class="symbol">,</span><span class="normal"> image</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-add-child">clutter_actor_add_child</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">box</span><span class="symbol">,</span><span class="normal"> icon</span><span class="symbol">);</span>

<span class="normal">  color </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="clutter-Colors.html#clutter-color-new">clutter_color_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">g_random_int_range</span><span class="normal"> </span><span class="symbol">(</span><span class="number">0</span><span class="symbol">,</span><span class="normal"> </span><span class="number">255</span><span class="symbol">),</span>
<span class="normal">                             </span><span class="function">g_random_int_range</span><span class="normal"> </span><span class="symbol">(</span><span class="number">0</span><span class="symbol">,</span><span class="normal"> </span><span class="number">255</span><span class="symbol">),</span>
<span class="normal">                             </span><span class="function">g_random_int_range</span><span class="normal"> </span><span class="symbol">(</span><span class="number">0</span><span class="symbol">,</span><span class="normal"> </span><span class="number">255</span><span class="symbol">),</span>
<span class="normal">                             </span><span class="number">224</span><span class="symbol">);</span>

<span class="normal">  </span><span class="comment">/* this is the emblem: a small rectangle with a random color, that we</span>
<span class="comment">   * want to put in the bottom right corner</span>
<span class="comment">   */</span>
<span class="normal">  emblem </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="ClutterActor.html#clutter-actor-new">clutter_actor_new</a></span><span class="normal"> </span><span class="symbol">();</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-name">clutter_actor_set_name</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">emblem</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"emblem"</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-size">clutter_actor_set_size</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">emblem</span><span class="symbol">,</span><span class="normal"> </span><span class="number">48</span><span class="symbol">,</span><span class="normal"> </span><span class="number">48</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-background-color">clutter_actor_set_background_color</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">emblem</span><span class="symbol">,</span><span class="normal"> color</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-x-expand">clutter_actor_set_x_expand</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">emblem</span><span class="symbol">,</span><span class="normal"> TRUE</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-y-expand">clutter_actor_set_y_expand</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">emblem</span><span class="symbol">,</span><span class="normal"> TRUE</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-x-align">clutter_actor_set_x_align</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">emblem</span><span class="symbol">,</span><span class="normal"> <a href="ClutterActor.html#CLUTTER-ACTOR-ALIGN-END:CAPS">CLUTTER_ACTOR_ALIGN_END</a></span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-y-align">clutter_actor_set_y_align</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">emblem</span><span class="symbol">,</span><span class="normal"> <a href="ClutterActor.html#CLUTTER-ACTOR-ALIGN-END:CAPS">CLUTTER_ACTOR_ALIGN_END</a></span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-reactive">clutter_actor_set_reactive</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">emblem</span><span class="symbol">,</span><span class="normal"> TRUE</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-opacity">clutter_actor_set_opacity</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">emblem</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-add-child">clutter_actor_add_child</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">box</span><span class="symbol">,</span><span class="normal"> emblem</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="clutter-Colors.html#clutter-color-free">clutter_color_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">color</span><span class="symbol">);</span>

<span class="normal">  </span><span class="comment">/* when clicking on the emblem, we want to perform an action */</span>
<span class="normal">  action </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="ClutterClickAction.html#clutter-click-action-new">clutter_click_action_new</a></span><span class="normal"> </span><span class="symbol">();</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-add-action">clutter_actor_add_action</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">emblem</span><span class="symbol">,</span><span class="normal"> action</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function">g_signal_connect</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">action</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"clicked"</span><span class="symbol">,</span><span class="normal"> </span><span class="function">G_CALLBACK</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">on_emblem_clicked</span><span class="symbol">),</span><span class="normal"> box</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function">g_signal_connect</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">action</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"long-press"</span><span class="symbol">,</span><span class="normal"> </span><span class="function">G_CALLBACK</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">on_emblem_long_press</span><span class="symbol">),</span><span class="normal"> box</span><span class="symbol">);</span>

<span class="normal">  </span><span class="comment">/* whenever the pointer enters the box, we show the emblem; we hide</span>
<span class="comment">   * the emblem when the pointer leaves the box</span>
<span class="comment">   */</span>
<span class="normal">  </span><span class="function">g_signal_connect</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">box</span><span class="symbol">,</span>
<span class="normal">                    </span><span class="string">"enter-event"</span><span class="symbol">,</span><span class="normal"> </span><span class="function">G_CALLBACK</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">on_box_enter</span><span class="symbol">),</span>
<span class="normal">                    emblem</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function">g_signal_connect</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">box</span><span class="symbol">,</span>
<span class="normal">                    </span><span class="string">"leave-event"</span><span class="symbol">,</span><span class="normal"> </span><span class="function">G_CALLBACK</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">on_box_leave</span><span class="symbol">),</span>
<span class="normal">                    emblem</span><span class="symbol">);</span>

<span class="normal">  </span><span class="comment">/* a label, that we want to position at the top and center of the box */</span>
<span class="normal">  label </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="ClutterText.html#clutter-text-new">clutter_text_new</a></span><span class="normal"> </span><span class="symbol">();</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-name">clutter_actor_set_name</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">label</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"text"</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterText.html#clutter-text-set-text">clutter_text_set_text</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">CLUTTER_TEXT</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">label</span><span class="symbol">),</span><span class="normal"> </span><span class="string">"A simple test"</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-x-expand">clutter_actor_set_x_expand</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">label</span><span class="symbol">,</span><span class="normal"> TRUE</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-x-align">clutter_actor_set_x_align</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">label</span><span class="symbol">,</span><span class="normal"> <a href="ClutterActor.html#CLUTTER-ACTOR-ALIGN-CENTER:CAPS">CLUTTER_ACTOR_ALIGN_CENTER</a></span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-y-expand">clutter_actor_set_y_expand</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">label</span><span class="symbol">,</span><span class="normal"> TRUE</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-set-y-align">clutter_actor_set_y_align</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">label</span><span class="symbol">,</span><span class="normal"> <a href="ClutterActor.html#CLUTTER-ACTOR-ALIGN-START:CAPS">CLUTTER_ACTOR_ALIGN_START</a></span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="ClutterActor.html#clutter-actor-add-child">clutter_actor_add_child</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">box</span><span class="symbol">,</span><span class="normal"> label</span><span class="symbol">);</span>

<span class="normal">  </span><span class="function"><a href="clutter-General.html#clutter-main">clutter_main</a></span><span class="normal"> </span><span class="symbol">();</span>

<span class="normal">  </span><span class="keyword">return</span><span class="normal"> EXIT_SUCCESS</span><span class="symbol">;</span>
<span class="cbracket">}</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

</div>
<p><br class="example-break">
</p>
<p>
<a class="link" href="ClutterBinLayout.html" title="ClutterBinLayout"><span class="type">ClutterBinLayout</span></a> is available since Clutter 1.2
</p>
</div>
<div class="refsect1">
<a name="ClutterBinLayout.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="ClutterBinAlignment"></a><h3>enum ClutterBinAlignment</h3>
<pre class="programlisting">typedef enum {
  CLUTTER_BIN_ALIGNMENT_FIXED,
  CLUTTER_BIN_ALIGNMENT_FILL,
  CLUTTER_BIN_ALIGNMENT_START,
  CLUTTER_BIN_ALIGNMENT_END,
  CLUTTER_BIN_ALIGNMENT_CENTER
} ClutterBinAlignment;
</pre>
<div class="warning">
<h3 class="title">Warning</h3>
<p><code class="literal">ClutterBinAlignment</code> has been deprecated since version 1.12 and should not be used in newly-written code. Use <a class="link" href="ClutterActor.html#ClutterActorAlign" title="enum ClutterActorAlign"><span class="type">ClutterActorAlign</span></a> and the <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>
  API instead</p>
</div>
<p>
The alignment policies available on each axis for <a class="link" href="ClutterBinLayout.html" title="ClutterBinLayout"><span class="type">ClutterBinLayout</span></a>
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><a name="CLUTTER-BIN-ALIGNMENT-FIXED:CAPS"></a><span class="term"><code class="literal">CLUTTER_BIN_ALIGNMENT_FIXED</code></span></p></td>
<td>Fixed position alignment; the
  <a class="link" href="ClutterBinLayout.html" title="ClutterBinLayout"><span class="type">ClutterBinLayout</span></a> will honour the fixed position provided
  by the actors themselves when allocating them
</td>
</tr>
<tr>
<td><p><a name="CLUTTER-BIN-ALIGNMENT-FILL:CAPS"></a><span class="term"><code class="literal">CLUTTER_BIN_ALIGNMENT_FILL</code></span></p></td>
<td>Fill the allocation size
</td>
</tr>
<tr>
<td><p><a name="CLUTTER-BIN-ALIGNMENT-START:CAPS"></a><span class="term"><code class="literal">CLUTTER_BIN_ALIGNMENT_START</code></span></p></td>
<td>Position the actors at the top
  or left side of the container, depending on the axis
</td>
</tr>
<tr>
<td><p><a name="CLUTTER-BIN-ALIGNMENT-END:CAPS"></a><span class="term"><code class="literal">CLUTTER_BIN_ALIGNMENT_END</code></span></p></td>
<td>Position the actors at the bottom
  or right side of the container, depending on the axis
</td>
</tr>
<tr>
<td><p><a name="CLUTTER-BIN-ALIGNMENT-CENTER:CAPS"></a><span class="term"><code class="literal">CLUTTER_BIN_ALIGNMENT_CENTER</code></span></p></td>
<td>Position the actors at the
  center of the container, depending on the axis
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 1.2</p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterBinLayout-struct"></a><h3>struct ClutterBinLayout</h3>
<pre class="programlisting">struct ClutterBinLayout;</pre>
<p>
The <a class="link" href="ClutterBinLayout.html" title="ClutterBinLayout"><span class="type">ClutterBinLayout</span></a> structure contains only private data
and should be accessed using the provided API
</p>
<p class="since">Since 1.2</p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterBinLayoutClass"></a><h3>struct ClutterBinLayoutClass</h3>
<pre class="programlisting">struct ClutterBinLayoutClass {
};
</pre>
<p>
The <a class="link" href="ClutterBinLayout.html#ClutterBinLayoutClass" title="struct ClutterBinLayoutClass"><span class="type">ClutterBinLayoutClass</span></a> structure contains only private
data and should be accessed using the provided API
</p>
<p class="since">Since 1.2</p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-bin-layout-new"></a><h3>clutter_bin_layout_new ()</h3>
<pre class="programlisting"><a class="link" href="ClutterLayoutManager.html" title="ClutterLayoutManager"><span class="returnvalue">ClutterLayoutManager</span></a> * clutter_bin_layout_new           (<em class="parameter"><code><a class="link" href="ClutterBinLayout.html#ClutterBinAlignment" title="enum ClutterBinAlignment"><span class="type">ClutterBinAlignment</span></a> x_align</code></em>,
                                                         <em class="parameter"><code><a class="link" href="ClutterBinLayout.html#ClutterBinAlignment" title="enum ClutterBinAlignment"><span class="type">ClutterBinAlignment</span></a> y_align</code></em>);</pre>
<p>
Creates a new <a class="link" href="ClutterBinLayout.html" title="ClutterBinLayout"><span class="type">ClutterBinLayout</span></a> layout manager
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>x_align</code></em> :</span></p></td>
<td>the default alignment policy to be used on the
horizontal axis</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>y_align</code></em> :</span></p></td>
<td>the default alignment policy to be used on the
vertical axis</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the newly created layout manager</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 1.2</p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-bin-layout-set-alignment"></a><h3>clutter_bin_layout_set_alignment ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                clutter_bin_layout_set_alignment    (<em class="parameter"><code><a class="link" href="ClutterBinLayout.html" title="ClutterBinLayout"><span class="type">ClutterBinLayout</span></a> *self</code></em>,
                                                         <em class="parameter"><code><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> *child</code></em>,
                                                         <em class="parameter"><code><a class="link" href="ClutterBinLayout.html#ClutterBinAlignment" title="enum ClutterBinAlignment"><span class="type">ClutterBinAlignment</span></a> x_align</code></em>,
                                                         <em class="parameter"><code><a class="link" href="ClutterBinLayout.html#ClutterBinAlignment" title="enum ClutterBinAlignment"><span class="type">ClutterBinAlignment</span></a> y_align</code></em>);</pre>
<div class="warning">
<h3 class="title">Warning</h3>
<p><code class="literal">clutter_bin_layout_set_alignment</code> has been deprecated since version 1.12 and should not be used in newly-written code. Use the <a class="link" href="ClutterActor.html#ClutterActor--x-align" title='The "x-align" property'><span class="type">"x-align"</span></a> and
  <a class="link" href="ClutterActor.html#ClutterActor--y-align" title='The "y-align" property'><span class="type">"y-align"</span></a> properties of <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> instead.</p>
</div>
<p>
Sets the horizontal and vertical alignment policies to be applied
to a <em class="parameter"><code>child</code></em> of <em class="parameter"><code>self</code></em>
</p>
<p>
If <em class="parameter"><code>child</code></em> is <code class="literal">NULL</code> then the <em class="parameter"><code>x_align</code></em> and <em class="parameter"><code>y_align</code></em> values will
be set as the default alignment policies
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
<td>a <a class="link" href="ClutterBinLayout.html" title="ClutterBinLayout"><span class="type">ClutterBinLayout</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>child</code></em> :</span></p></td>
<td>a child of <em class="parameter"><code>container</code></em>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>x_align</code></em> :</span></p></td>
<td>the horizontal alignment policy to be used for the <em class="parameter"><code>child</code></em>
inside <em class="parameter"><code>container</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>y_align</code></em> :</span></p></td>
<td>the vertical aligment policy to be used on the <em class="parameter"><code>child</code></em>
inside <em class="parameter"><code>container</code></em>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 1.2</p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-bin-layout-get-alignment"></a><h3>clutter_bin_layout_get_alignment ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                clutter_bin_layout_get_alignment    (<em class="parameter"><code><a class="link" href="ClutterBinLayout.html" title="ClutterBinLayout"><span class="type">ClutterBinLayout</span></a> *self</code></em>,
                                                         <em class="parameter"><code><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> *child</code></em>,
                                                         <em class="parameter"><code><a class="link" href="ClutterBinLayout.html#ClutterBinAlignment" title="enum ClutterBinAlignment"><span class="type">ClutterBinAlignment</span></a> *x_align</code></em>,
                                                         <em class="parameter"><code><a class="link" href="ClutterBinLayout.html#ClutterBinAlignment" title="enum ClutterBinAlignment"><span class="type">ClutterBinAlignment</span></a> *y_align</code></em>);</pre>
<div class="warning">
<h3 class="title">Warning</h3>
<p><code class="literal">clutter_bin_layout_get_alignment</code> has been deprecated since version 1.12 and should not be used in newly-written code. Use the <a class="link" href="ClutterActor.html#ClutterActor--x-align" title='The "x-align" property'><span class="type">"x-align"</span></a> and the
  <a class="link" href="ClutterActor.html#ClutterActor--y-align" title='The "y-align" property'><span class="type">"y-align"</span></a> properties of <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> instead.</p>
</div>
<p>
Retrieves the horizontal and vertical alignment policies for
a child of <em class="parameter"><code>self</code></em>
</p>
<p>
If <em class="parameter"><code>child</code></em> is <code class="literal">NULL</code> the default alignment policies will be returned
instead
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
<td>a <a class="link" href="ClutterBinLayout.html" title="ClutterBinLayout"><span class="type">ClutterBinLayout</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>child</code></em> :</span></p></td>
<td>a child of <em class="parameter"><code>container</code></em>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>x_align</code></em> :</span></p></td>
<td>return location for the horizontal
alignment policy. <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>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>y_align</code></em> :</span></p></td>
<td>return location for the vertical
alignment policy. <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>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 1.2</p>
</div>
<hr>
<div class="refsect2">
<a name="clutter-bin-layout-add"></a><h3>clutter_bin_layout_add ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                clutter_bin_layout_add              (<em class="parameter"><code><a class="link" href="ClutterBinLayout.html" title="ClutterBinLayout"><span class="type">ClutterBinLayout</span></a> *self</code></em>,
                                                         <em class="parameter"><code><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> *child</code></em>,
                                                         <em class="parameter"><code><a class="link" href="ClutterBinLayout.html#ClutterBinAlignment" title="enum ClutterBinAlignment"><span class="type">ClutterBinAlignment</span></a> x_align</code></em>,
                                                         <em class="parameter"><code><a class="link" href="ClutterBinLayout.html#ClutterBinAlignment" title="enum ClutterBinAlignment"><span class="type">ClutterBinAlignment</span></a> y_align</code></em>);</pre>
<div class="warning">
<h3 class="title">Warning</h3>
<p><code class="literal">clutter_bin_layout_add</code> has been deprecated since version 1.12 and should not be used in newly-written code. Use <a class="link" href="ClutterActor.html#clutter-actor-add-child" title="clutter_actor_add_child ()"><code class="function">clutter_actor_add_child()</code></a> instead.</p>
</div>
<p>
Adds a <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> to the container using <em class="parameter"><code>self</code></em> and
sets the alignment policies for it
</p>
<p>
This function is equivalent to <a class="link" href="ClutterContainer.html#clutter-container-add-actor" title="clutter_container_add_actor ()"><code class="function">clutter_container_add_actor()</code></a>
and <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> but it does not
require a pointer to the <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> associated to the
<a class="link" href="ClutterBinLayout.html" title="ClutterBinLayout"><span class="type">ClutterBinLayout</span></a>
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
<td>a <a class="link" href="ClutterBinLayout.html" title="ClutterBinLayout"><span class="type">ClutterBinLayout</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>child</code></em> :</span></p></td>
<td>a <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>x_align</code></em> :</span></p></td>
<td>horizontal alignment policy for <em class="parameter"><code>child</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>y_align</code></em> :</span></p></td>
<td>vertical alignment policy for <em class="parameter"><code>child</code></em>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 1.2</p>
</div>
</div>
<div class="refsect1">
<a name="ClutterBinLayout.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="ClutterBinLayout--x-align"></a><h3>The <code class="literal">"x-align"</code> property</h3>
<pre class="programlisting">  "x-align"                  <a class="link" href="ClutterBinLayout.html#ClutterBinAlignment" title="enum ClutterBinAlignment"><span class="type">ClutterBinAlignment</span></a>   : Read / Write</pre>
<div class="warning">
<h3 class="title">Warning</h3>
<p><code class="literal">ClutterBinLayout:x-align</code> has been deprecated since version 1.12 and should not be used in newly-written code. Use the <a class="link" href="ClutterActor.html#ClutterActor--x-expand" title='The "x-expand" property'><span class="type">"x-expand"</span></a> and the
  <a class="link" href="ClutterActor.html#ClutterActor--x-align" title='The "x-align" property'><span class="type">"x-align"</span></a> properties on <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> instead.</p>
</div>
<p>
The default horizontal alignment policy for actors managed
by the <a class="link" href="ClutterBinLayout.html" title="ClutterBinLayout"><span class="type">ClutterBinLayout</span></a>
</p>
<p>Default value: CLUTTER_BIN_ALIGNMENT_CENTER</p>
<p class="since">Since 1.2</p>
</div>
<hr>
<div class="refsect2">
<a name="ClutterBinLayout--y-align"></a><h3>The <code class="literal">"y-align"</code> property</h3>
<pre class="programlisting">  "y-align"                  <a class="link" href="ClutterBinLayout.html#ClutterBinAlignment" title="enum ClutterBinAlignment"><span class="type">ClutterBinAlignment</span></a>   : Read / Write</pre>
<div class="warning">
<h3 class="title">Warning</h3>
<p><code class="literal">ClutterBinLayout:y-align</code> has been deprecated since version 1.12 and should not be used in newly-written code. Use the <a class="link" href="ClutterActor.html#ClutterActor--y-expand" title='The "y-expand" property'><span class="type">"y-expand"</span></a> and the
  <a class="link" href="ClutterActor.html#ClutterActor--y-align" title='The "y-align" property'><span class="type">"y-align"</span></a> properties on <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> instead.</p>
</div>
<p>
The default vertical alignment policy for actors managed
by the <a class="link" href="ClutterBinLayout.html" title="ClutterBinLayout"><span class="type">ClutterBinLayout</span></a>
</p>
<p>Default value: CLUTTER_BIN_ALIGNMENT_CENTER</p>
<p class="since">Since 1.2</p>
</div>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.19.1</div>
</body>
</html>