update to 1.10.4
[profile/ivi/clutter.git] / doc / reference / clutter / html / ClutterChildMeta.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>ClutterChildMeta</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="index.html" title="Clutter Reference Manual">
8 <link rel="up" href="ch01.html" title="Abstract classes and interfaces">
9 <link rel="prev" href="ClutterContainer.html" title="ClutterContainer">
10 <link rel="next" href="ClutterMedia.html" title="ClutterMedia">
11 <meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
16 <tr valign="middle">
17 <td><a accesskey="p" href="ClutterContainer.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20 <th width="100%" align="center">Clutter Reference Manual</th>
21 <td><a accesskey="n" href="ClutterMedia.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
22 </tr>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#ClutterChildMeta.synopsis" class="shortcut">Top</a>
25                    | 
26                   <a href="#ClutterChildMeta.description" class="shortcut">Description</a>
27                    | 
28                   <a href="#ClutterChildMeta.object-hierarchy" class="shortcut">Object Hierarchy</a>
29                    | 
30                   <a href="#ClutterChildMeta.properties" class="shortcut">Properties</a>
31 </td></tr>
32 </table>
33 <div class="refentry">
34 <a name="ClutterChildMeta"></a><div class="titlepage"></div>
35 <div class="refnamediv"><table width="100%"><tr>
36 <td valign="top">
37 <h2><span class="refentrytitle"><a name="ClutterChildMeta.top_of_page"></a>ClutterChildMeta</span></h2>
38 <p>ClutterChildMeta — Wrapper for actors inside a container</p>
39 </td>
40 <td valign="top" align="right"></td>
41 </tr></table></div>
42 <div class="refsynopsisdiv">
43 <a name="ClutterChildMeta.synopsis"></a><h2>Synopsis</h2>
44 <pre class="synopsis">                    <a class="link" href="ClutterChildMeta.html#ClutterChildMeta-struct" title="ClutterChildMeta">ClutterChildMeta</a>;
45 struct              <a class="link" href="ClutterChildMeta.html#ClutterChildMetaClass" title="struct ClutterChildMetaClass">ClutterChildMetaClass</a>;
46 <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="returnvalue">ClutterContainer</span></a> *  <a class="link" href="ClutterChildMeta.html#clutter-child-meta-get-container" title="clutter_child_meta_get_container ()">clutter_child_meta_get_container</a>    (<em class="parameter"><code><a class="link" href="ClutterChildMeta.html" title="ClutterChildMeta"><span class="type">ClutterChildMeta</span></a> *data</code></em>);
47 <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="returnvalue">ClutterActor</span></a> *      <a class="link" href="ClutterChildMeta.html#clutter-child-meta-get-actor" title="clutter_child_meta_get_actor ()">clutter_child_meta_get_actor</a>        (<em class="parameter"><code><a class="link" href="ClutterChildMeta.html" title="ClutterChildMeta"><span class="type">ClutterChildMeta</span></a> *data</code></em>);
48 </pre>
49 </div>
50 <div class="refsect1">
51 <a name="ClutterChildMeta.object-hierarchy"></a><h2>Object Hierarchy</h2>
52 <pre class="synopsis">
53   <a href="../gobject/gobject-The-Base-Object-Type.html#GObject">GObject</a>
54    +----ClutterChildMeta
55          +----<a class="link" href="ClutterLayoutMeta.html" title="ClutterLayoutMeta">ClutterLayoutMeta</a>
56 </pre>
57 </div>
58 <div class="refsect1">
59 <a name="ClutterChildMeta.properties"></a><h2>Properties</h2>
60 <pre class="synopsis">
61   "<a class="link" href="ClutterChildMeta.html#ClutterChildMeta--actor" title='The "actor" property'>actor</a>"                    <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>*         : Read / Write / Construct Only
62   "<a class="link" href="ClutterChildMeta.html#ClutterChildMeta--container" title='The "container" property'>container</a>"                <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a>*     : Read / Write / Construct Only
63 </pre>
64 </div>
65 <div class="refsect1">
66 <a name="ClutterChildMeta.description"></a><h2>Description</h2>
67 <p>
68 <a class="link" href="ClutterChildMeta.html" title="ClutterChildMeta"><span class="type">ClutterChildMeta</span></a> is a wrapper object created by <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a>
69 implementations in order to store child-specific data and properties.
70 </p>
71 <p>
72 A <a class="link" href="ClutterChildMeta.html" title="ClutterChildMeta"><span class="type">ClutterChildMeta</span></a> wraps a <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> inside a <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a>.
73 </p>
74 <p>
75 <a class="link" href="ClutterChildMeta.html" title="ClutterChildMeta"><span class="type">ClutterChildMeta</span></a> is available since Clutter 0.8
76 </p>
77 </div>
78 <div class="refsect1">
79 <a name="ClutterChildMeta.details"></a><h2>Details</h2>
80 <div class="refsect2">
81 <a name="ClutterChildMeta-struct"></a><h3>ClutterChildMeta</h3>
82 <pre class="programlisting">typedef struct {
83   ClutterContainer *container;
84   ClutterActor *actor;
85 } ClutterChildMeta;
86 </pre>
87 <p>
88 Base interface for container specific state for child actors. A child
89 data is meant to be used when you need to keep track of information
90 about each individual child added to a container.
91 </p>
92 <p>
93 In order to use it you should create your own subclass of
94 <a class="link" href="ClutterChildMeta.html" title="ClutterChildMeta"><span class="type">ClutterChildMeta</span></a> and set the <a class="link" href="ClutterContainer.html#ClutterContainerIface" title="struct ClutterContainerIface"><span class="type">ClutterContainerIface</span></a> child_meta_type
95 interface member to your subclass type, like:
96 </p>
97 <p>
98 </p>
99 <div class="informalexample">
100   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
101     <tbody>
102       <tr>
103         <td class="listing_lines" align="right"><pre>1
104 2
105 3
106 4
107 5
108 6
109 7</pre></td>
110         <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
111 <span class="function">my_container_iface_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">ClutterContainerIface</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">iface</span><span class="symbol">)</span>
112 <span class="cbracket">{</span>
113 <span class="normal">  </span><span class="comment">/* set the rest of the &lt;a class="link" href="ClutterContainer.html" title="ClutterContainer"&gt;ClutterContainer&lt;/a&gt; vtable */</span>
114
115 <span class="normal">  container_iface</span><span class="symbol">-&gt;</span><span class="normal">child_meta_type  </span><span class="symbol">=</span><span class="normal"> MY_TYPE_CHILD_META</span><span class="symbol">;</span>
116 <span class="cbracket">}</span></pre></td>
117       </tr>
118     </tbody>
119   </table>
120 </div>
121
122 <p>
123 </p>
124 <p>
125 This will automatically create a <a class="link" href="ClutterChildMeta.html" title="ClutterChildMeta"><span class="type">ClutterChildMeta</span></a> of type
126 MY_TYPE_CHILD_META for every actor that is added to the container.
127 </p>
128 <p>
129 The child data for an actor can be retrieved using the
130 <a class="link" href="ClutterContainer.html#clutter-container-get-child-meta" title="clutter_container_get_child_meta ()"><code class="function">clutter_container_get_child_meta()</code></a> function.
131 </p>
132 <p>
133 The properties of the data and your subclass can be manipulated with
134 <a class="link" href="ClutterContainer.html#clutter-container-child-set" title="clutter_container_child_set ()"><code class="function">clutter_container_child_set()</code></a> and <a class="link" href="ClutterContainer.html#clutter-container-child-get" title="clutter_container_child_get ()"><code class="function">clutter_container_child_get()</code></a> which
135 act like <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-set"><code class="function">g_object_set()</code></a> and <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-get"><code class="function">g_object_get()</code></a>.
136 </p>
137 <p>
138 You can provide hooks for your own storage as well as control the
139 instantiation by overriding the <a class="link" href="ClutterContainer.html#ClutterContainerIface" title="struct ClutterContainerIface"><span class="type">ClutterContainerIface</span></a> virtual functions
140 <code class="function">create_child_meta</code>,
141 <code class="function">destroy_child_meta</code>,
142 and <code class="function">get_child_meta</code>.
143 </p>
144 <div class="variablelist"><table border="0">
145 <col align="left" valign="top">
146 <tbody>
147 <tr>
148 <td><p><span class="term"><a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> *<em class="structfield"><code><a name="ClutterChildMeta-struct.container"></a>container</code></em>;</span></p></td>
149 <td>the container handling this data</td>
150 </tr>
151 <tr>
152 <td><p><span class="term"><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> *<em class="structfield"><code><a name="ClutterChildMeta-struct.actor"></a>actor</code></em>;</span></p></td>
153 <td>the actor wrapped by this data</td>
154 </tr>
155 </tbody>
156 </table></div>
157 <p class="since">Since 0.8</p>
158 </div>
159 <hr>
160 <div class="refsect2">
161 <a name="ClutterChildMetaClass"></a><h3>struct ClutterChildMetaClass</h3>
162 <pre class="programlisting">struct ClutterChildMetaClass {
163 };
164 </pre>
165 <p>
166 The <a class="link" href="ClutterChildMeta.html#ClutterChildMetaClass" title="struct ClutterChildMetaClass"><span class="type">ClutterChildMetaClass</span></a> contains only private data
167 </p>
168 <p class="since">Since 0.8</p>
169 </div>
170 <hr>
171 <div class="refsect2">
172 <a name="clutter-child-meta-get-container"></a><h3>clutter_child_meta_get_container ()</h3>
173 <pre class="programlisting"><a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="returnvalue">ClutterContainer</span></a> *  clutter_child_meta_get_container    (<em class="parameter"><code><a class="link" href="ClutterChildMeta.html" title="ClutterChildMeta"><span class="type">ClutterChildMeta</span></a> *data</code></em>);</pre>
174 <p>
175 Retrieves the container using <em class="parameter"><code>data</code></em>
176 </p>
177 <div class="variablelist"><table border="0">
178 <col align="left" valign="top">
179 <tbody>
180 <tr>
181 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
182 <td>a <a class="link" href="ClutterChildMeta.html" title="ClutterChildMeta"><span class="type">ClutterChildMeta</span></a>
183 </td>
184 </tr>
185 <tr>
186 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
187 <td>a <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
188 </td>
189 </tr>
190 </tbody>
191 </table></div>
192 <p class="since">Since 0.8</p>
193 </div>
194 <hr>
195 <div class="refsect2">
196 <a name="clutter-child-meta-get-actor"></a><h3>clutter_child_meta_get_actor ()</h3>
197 <pre class="programlisting"><a class="link" href="ClutterActor.html" title="ClutterActor"><span class="returnvalue">ClutterActor</span></a> *      clutter_child_meta_get_actor        (<em class="parameter"><code><a class="link" href="ClutterChildMeta.html" title="ClutterChildMeta"><span class="type">ClutterChildMeta</span></a> *data</code></em>);</pre>
198 <p>
199 Retrieves the actor wrapped by <em class="parameter"><code>data</code></em>
200 </p>
201 <div class="variablelist"><table border="0">
202 <col align="left" valign="top">
203 <tbody>
204 <tr>
205 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
206 <td>a <a class="link" href="ClutterChildMeta.html" title="ClutterChildMeta"><span class="type">ClutterChildMeta</span></a>
207 </td>
208 </tr>
209 <tr>
210 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
211 <td>a <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
212 </td>
213 </tr>
214 </tbody>
215 </table></div>
216 <p class="since">Since 0.8</p>
217 </div>
218 </div>
219 <div class="refsect1">
220 <a name="ClutterChildMeta.property-details"></a><h2>Property Details</h2>
221 <div class="refsect2">
222 <a name="ClutterChildMeta--actor"></a><h3>The <code class="literal">"actor"</code> property</h3>
223 <pre class="programlisting">  "actor"                    <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>*         : Read / Write / Construct Only</pre>
224 <p>
225 The <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a> being wrapped by this <a class="link" href="ClutterChildMeta.html" title="ClutterChildMeta"><span class="type">ClutterChildMeta</span></a>
226 </p>
227 <p class="since">Since 0.8</p>
228 </div>
229 <hr>
230 <div class="refsect2">
231 <a name="ClutterChildMeta--container"></a><h3>The <code class="literal">"container"</code> property</h3>
232 <pre class="programlisting">  "container"                <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a>*     : Read / Write / Construct Only</pre>
233 <p>
234 The <a class="link" href="ClutterContainer.html" title="ClutterContainer"><span class="type">ClutterContainer</span></a> that created this <a class="link" href="ClutterChildMeta.html" title="ClutterChildMeta"><span class="type">ClutterChildMeta</span></a>.
235 </p>
236 <p class="since">Since 0.8</p>
237 </div>
238 </div>
239 </div>
240 <div class="footer">
241 <hr>
242           Generated by GTK-Doc V1.18.1</div>
243 </body>
244 </html>