update to 1.10.4
[profile/ivi/clutter.git] / doc / reference / clutter / html / ClutterScriptable.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>ClutterScriptable</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="ch12.html" title="User interface definition">
9 <link rel="prev" href="ClutterScript.html" title="ClutterScript">
10 <link rel="next" href="ch13.html" title="Generic list model">
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="ClutterScript.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="ch12.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="ch13.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="#ClutterScriptable.synopsis" class="shortcut">Top</a>
25                    | 
26                   <a href="#ClutterScriptable.description" class="shortcut">Description</a>
27                    | 
28                   <a href="#ClutterScriptable.object-hierarchy" class="shortcut">Object Hierarchy</a>
29                    | 
30                   <a href="#ClutterScriptable.prerequisites" class="shortcut">Prerequisites</a>
31                    | 
32                   <a href="#ClutterScriptable.implementations" class="shortcut">Known Implementations</a>
33 </td></tr>
34 </table>
35 <div class="refentry">
36 <a name="ClutterScriptable"></a><div class="titlepage"></div>
37 <div class="refnamediv"><table width="100%"><tr>
38 <td valign="top">
39 <h2><span class="refentrytitle"><a name="ClutterScriptable.top_of_page"></a>ClutterScriptable</span></h2>
40 <p>ClutterScriptable — Override the UI definition parsing</p>
41 </td>
42 <td valign="top" align="right"></td>
43 </tr></table></div>
44 <div class="refsynopsisdiv">
45 <a name="ClutterScriptable.synopsis"></a><h2>Synopsis</h2>
46 <pre class="synopsis">                    <a class="link" href="ClutterScriptable.html#ClutterScriptable-struct" title="ClutterScriptable">ClutterScriptable</a>;
47 struct              <a class="link" href="ClutterScriptable.html#ClutterScriptableIface" title="struct ClutterScriptableIface">ClutterScriptableIface</a>;
48 <span class="returnvalue">void</span>                <a class="link" href="ClutterScriptable.html#clutter-scriptable-set-id" title="clutter_scriptable_set_id ()">clutter_scriptable_set_id</a>           (<em class="parameter"><code><a class="link" href="ClutterScriptable.html" title="ClutterScriptable"><span class="type">ClutterScriptable</span></a> *scriptable</code></em>,
49                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id_</code></em>);
50 const <a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="ClutterScriptable.html#clutter-scriptable-get-id" title="clutter_scriptable_get_id ()">clutter_scriptable_get_id</a>           (<em class="parameter"><code><a class="link" href="ClutterScriptable.html" title="ClutterScriptable"><span class="type">ClutterScriptable</span></a> *scriptable</code></em>);
51 <a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="ClutterScriptable.html#clutter-scriptable-parse-custom-node" title="clutter_scriptable_parse_custom_node ()">clutter_scriptable_parse_custom_node</a>
52                                                         (<em class="parameter"><code><a class="link" href="ClutterScriptable.html" title="ClutterScriptable"><span class="type">ClutterScriptable</span></a> *scriptable</code></em>,
53                                                          <em class="parameter"><code><a class="link" href="ClutterScript.html" title="ClutterScript"><span class="type">ClutterScript</span></a> *script</code></em>,
54                                                          <em class="parameter"><code><a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
55                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
56                                                          <em class="parameter"><code><a href="../json-glib/json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);
57 <span class="returnvalue">void</span>                <a class="link" href="ClutterScriptable.html#clutter-scriptable-set-custom-property" title="clutter_scriptable_set_custom_property ()">clutter_scriptable_set_custom_property</a>
58                                                         (<em class="parameter"><code><a class="link" href="ClutterScriptable.html" title="ClutterScriptable"><span class="type">ClutterScriptable</span></a> *scriptable</code></em>,
59                                                          <em class="parameter"><code><a class="link" href="ClutterScript.html" title="ClutterScript"><span class="type">ClutterScript</span></a> *script</code></em>,
60                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
61                                                          <em class="parameter"><code>const <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
62 </pre>
63 </div>
64 <div class="refsect1">
65 <a name="ClutterScriptable.object-hierarchy"></a><h2>Object Hierarchy</h2>
66 <pre class="synopsis">
67   GInterface
68    +----ClutterScriptable
69 </pre>
70 </div>
71 <div class="refsect1">
72 <a name="ClutterScriptable.prerequisites"></a><h2>Prerequisites</h2>
73 <p>
74 ClutterScriptable requires
75  <a href="../gobject/gobject-The-Base-Object-Type.html#GObject">GObject</a>.</p>
76 </div>
77 <div class="refsect1">
78 <a name="ClutterScriptable.implementations"></a><h2>Known Implementations</h2>
79 <p>
80 ClutterScriptable is implemented by
81  <a class="link" href="ClutterActor.html" title="ClutterActor">ClutterActor</a>,  <a class="link" href="ClutterAlpha.html" title="ClutterAlpha">ClutterAlpha</a>,  <a class="link" href="clutter-Implicit-Animations.html#ClutterAnimation">ClutterAnimation</a>,  <a class="link" href="ClutterAnimator.html" title="ClutterAnimator">ClutterAnimator</a>,  <a class="link" href="ClutterBehaviour.html" title="ClutterBehaviour">ClutterBehaviour</a>,  <a class="link" href="ClutterBehaviourDepth.html" title="ClutterBehaviourDepth">ClutterBehaviourDepth</a>,  <a class="link" href="ClutterBehaviourEllipse.html" title="ClutterBehaviourEllipse">ClutterBehaviourEllipse</a>,  <a class="link" href="ClutterBehaviourOpacity.html" title="ClutterBehaviourOpacity">ClutterBehaviourOpacity</a>,  <a class="link" href="ClutterBehaviourPath.html" title="ClutterBehaviourPath">ClutterBehaviourPath</a>,  <a class="link" href="ClutterBehaviourRotate.html" title="ClutterBehaviourRotate">ClutterBehaviourRotate</a>,  <a class="link" href="ClutterBehaviourScale.html" title="ClutterBehaviourScale">ClutterBehaviourScale</a>,  <a class="link" href="ClutterBox.html" title="ClutterBox">ClutterBox</a>,  <a class="link" href="ClutterCairoTexture.html" title="ClutterCairoTexture">ClutterCairoTexture</a>,  <a class="link" href="ClutterClone.html" title="ClutterClone">ClutterClone</a>,  <a class="link" href="ClutterGroup.html" title="ClutterGroup">ClutterGroup</a>,  <a class="link" href="ClutterListModel.html" title="ClutterListModel">ClutterListModel</a>,  <a class="link" href="ClutterModel.html" title="ClutterModel">ClutterModel</a>,  <a class="link" href="ClutterPropertyTransition.html" title="ClutterPropertyTransition">ClutterPropertyTransition</a>,  <a class="link" href="ClutterRectangle.html" title="ClutterRectangle">ClutterRectangle</a>,  <a class="link" href="ClutterStage.html" title="ClutterStage">ClutterStage</a>,  <a class="link" href="ClutterState.html" title="ClutterState">ClutterState</a>,  <a class="link" href="ClutterText.html" title="ClutterText">ClutterText</a>,  <a class="link" href="ClutterTexture.html" title="ClutterTexture">ClutterTexture</a>,  <a class="link" href="ClutterTimeline.html" title="ClutterTimeline">ClutterTimeline</a> and  <a class="link" href="ClutterTransition.html" title="ClutterTransition">ClutterTransition</a>.</p>
82 </div>
83 <div class="refsect1">
84 <a name="ClutterScriptable.description"></a><h2>Description</h2>
85 <p>
86 The <a class="link" href="ClutterScriptable.html#ClutterScriptableIface" title="struct ClutterScriptableIface"><span class="type">ClutterScriptableIface</span></a> interface exposes the UI definition parsing
87 process to external classes. By implementing this interface, a class can
88 override the UI definition parsing and transform complex data types into
89 GObject properties, or allow custom properties.
90 </p>
91 <p>
92 <a class="link" href="ClutterScriptable.html" title="ClutterScriptable"><span class="type">ClutterScriptable</span></a> is available since Clutter 0.6
93 </p>
94 </div>
95 <div class="refsect1">
96 <a name="ClutterScriptable.details"></a><h2>Details</h2>
97 <div class="refsect2">
98 <a name="ClutterScriptable-struct"></a><h3>ClutterScriptable</h3>
99 <pre class="programlisting">typedef struct _ClutterScriptable ClutterScriptable;</pre>
100 <p>
101 <a class="link" href="ClutterScriptable.html" title="ClutterScriptable"><span class="type">ClutterScriptable</span></a> is an opaque structure whose members cannot be directly
102 accessed
103 </p>
104 <p class="since">Since 0.6</p>
105 </div>
106 <hr>
107 <div class="refsect2">
108 <a name="ClutterScriptableIface"></a><h3>struct ClutterScriptableIface</h3>
109 <pre class="programlisting">struct ClutterScriptableIface {
110   void         (* set_id)              (ClutterScriptable *scriptable,
111                                         const gchar       *id_);
112   const gchar *(* get_id)              (ClutterScriptable *scriptable);
113
114   gboolean     (* parse_custom_node)   (ClutterScriptable *scriptable,
115                                         ClutterScript     *script,
116                                         GValue            *value,
117                                         const gchar       *name,
118                                         JsonNode          *node);
119   void         (* set_custom_property) (ClutterScriptable *scriptable,
120                                         ClutterScript     *script,
121                                         const gchar       *name,
122                                         const GValue      *value);
123 };
124 </pre>
125 <p>
126 Interface for implementing "scriptable" objects. An object implementing
127 this interface can override the parsing and properties setting sequence
128 when loading a UI definition data with <a class="link" href="ClutterScript.html" title="ClutterScript"><span class="type">ClutterScript</span></a>
129 </p>
130 <div class="variablelist"><table border="0">
131 <col align="left" valign="top">
132 <tbody>
133 <tr>
134 <td><p><span class="term"><em class="structfield"><code><a name="ClutterScriptableIface.set-id"></a>set_id</code></em> ()</span></p></td>
135 <td>virtual function for setting the id of a scriptable object</td>
136 </tr>
137 <tr>
138 <td><p><span class="term"><em class="structfield"><code><a name="ClutterScriptableIface.get-id"></a>get_id</code></em> ()</span></p></td>
139 <td>virtual function for getting the id of a scriptable object</td>
140 </tr>
141 <tr>
142 <td><p><span class="term"><em class="structfield"><code><a name="ClutterScriptableIface.parse-custom-node"></a>parse_custom_node</code></em> ()</span></p></td>
143 <td>virtual function for parsing complex data containers
144 into GObject properties</td>
145 </tr>
146 <tr>
147 <td><p><span class="term"><em class="structfield"><code><a name="ClutterScriptableIface.set-custom-property"></a>set_custom_property</code></em> ()</span></p></td>
148 <td>virtual function for setting a custom property</td>
149 </tr>
150 </tbody>
151 </table></div>
152 <p class="since">Since 0.6</p>
153 </div>
154 <hr>
155 <div class="refsect2">
156 <a name="clutter-scriptable-set-id"></a><h3>clutter_scriptable_set_id ()</h3>
157 <pre class="programlisting"><span class="returnvalue">void</span>                clutter_scriptable_set_id           (<em class="parameter"><code><a class="link" href="ClutterScriptable.html" title="ClutterScriptable"><span class="type">ClutterScriptable</span></a> *scriptable</code></em>,
158                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id_</code></em>);</pre>
159 <p>
160 Sets <em class="parameter"><code>id_</code></em> as the unique Clutter script it for this instance of
161 <a class="link" href="ClutterScriptable.html#ClutterScriptableIface" title="struct ClutterScriptableIface"><span class="type">ClutterScriptableIface</span></a>.
162 </p>
163 <p>
164 This name can be used by user interface designer applications to
165 define a unique name for an object constructable using the UI
166 definition language parsed by <a class="link" href="ClutterScript.html" title="ClutterScript"><span class="type">ClutterScript</span></a>.
167 </p>
168 <div class="variablelist"><table border="0">
169 <col align="left" valign="top">
170 <tbody>
171 <tr>
172 <td><p><span class="term"><em class="parameter"><code>scriptable</code></em> :</span></p></td>
173 <td>a <a class="link" href="ClutterScriptable.html" title="ClutterScriptable"><span class="type">ClutterScriptable</span></a>
174 </td>
175 </tr>
176 <tr>
177 <td><p><span class="term"><em class="parameter"><code>id_</code></em> :</span></p></td>
178 <td>the <a class="link" href="ClutterScript.html" title="ClutterScript"><span class="type">ClutterScript</span></a> id of the object</td>
179 </tr>
180 </tbody>
181 </table></div>
182 <p class="since">Since 0.6</p>
183 </div>
184 <hr>
185 <div class="refsect2">
186 <a name="clutter-scriptable-get-id"></a><h3>clutter_scriptable_get_id ()</h3>
187 <pre class="programlisting">const <a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       clutter_scriptable_get_id           (<em class="parameter"><code><a class="link" href="ClutterScriptable.html" title="ClutterScriptable"><span class="type">ClutterScriptable</span></a> *scriptable</code></em>);</pre>
188 <p>
189 Retrieves the id of <em class="parameter"><code>scriptable</code></em> set using <a class="link" href="ClutterScriptable.html#clutter-scriptable-set-id" title="clutter_scriptable_set_id ()"><code class="function">clutter_scriptable_set_id()</code></a>.
190 </p>
191 <div class="variablelist"><table border="0">
192 <col align="left" valign="top">
193 <tbody>
194 <tr>
195 <td><p><span class="term"><em class="parameter"><code>scriptable</code></em> :</span></p></td>
196 <td>a <a class="link" href="ClutterScriptable.html" title="ClutterScriptable"><span class="type">ClutterScriptable</span></a>
197 </td>
198 </tr>
199 <tr>
200 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
201 <td>the id of the object. The returned string is owned by
202 the scriptable object and should never be modified of freed</td>
203 </tr>
204 </tbody>
205 </table></div>
206 <p class="since">Since 0.6</p>
207 </div>
208 <hr>
209 <div class="refsect2">
210 <a name="clutter-scriptable-parse-custom-node"></a><h3>clutter_scriptable_parse_custom_node ()</h3>
211 <pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            clutter_scriptable_parse_custom_node
212                                                         (<em class="parameter"><code><a class="link" href="ClutterScriptable.html" title="ClutterScriptable"><span class="type">ClutterScriptable</span></a> *scriptable</code></em>,
213                                                          <em class="parameter"><code><a class="link" href="ClutterScript.html" title="ClutterScript"><span class="type">ClutterScript</span></a> *script</code></em>,
214                                                          <em class="parameter"><code><a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
215                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
216                                                          <em class="parameter"><code><a href="../json-glib/json-glib-JSON-Node.html#JsonNode"><span class="type">JsonNode</span></a> *node</code></em>);</pre>
217 <p>
218 Parses the passed JSON node. The implementation must set the type
219 of the passed <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> pointer using <a href="../gobject/gobject-Generic-values.html#g-value-init"><code class="function">g_value_init()</code></a>.
220 </p>
221 <div class="variablelist"><table border="0">
222 <col align="left" valign="top">
223 <tbody>
224 <tr>
225 <td><p><span class="term"><em class="parameter"><code>scriptable</code></em> :</span></p></td>
226 <td>a <a class="link" href="ClutterScriptable.html" title="ClutterScriptable"><span class="type">ClutterScriptable</span></a>
227 </td>
228 </tr>
229 <tr>
230 <td><p><span class="term"><em class="parameter"><code>script</code></em> :</span></p></td>
231 <td>the <a class="link" href="ClutterScript.html" title="ClutterScript"><span class="type">ClutterScript</span></a> creating the scriptable instance</td>
232 </tr>
233 <tr>
234 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
235 <td>the generic value to be set</td>
236 </tr>
237 <tr>
238 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
239 <td>the name of the node</td>
240 </tr>
241 <tr>
242 <td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
243 <td>the JSON node to be parsed</td>
244 </tr>
245 <tr>
246 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
247 <td>
248 <a href="../glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the node was successfully parsed, <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</td>
249 </tr>
250 </tbody>
251 </table></div>
252 <p class="since">Since 0.6</p>
253 </div>
254 <hr>
255 <div class="refsect2">
256 <a name="clutter-scriptable-set-custom-property"></a><h3>clutter_scriptable_set_custom_property ()</h3>
257 <pre class="programlisting"><span class="returnvalue">void</span>                clutter_scriptable_set_custom_property
258                                                         (<em class="parameter"><code><a class="link" href="ClutterScriptable.html" title="ClutterScriptable"><span class="type">ClutterScriptable</span></a> *scriptable</code></em>,
259                                                          <em class="parameter"><code><a class="link" href="ClutterScript.html" title="ClutterScript"><span class="type">ClutterScript</span></a> *script</code></em>,
260                                                          <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
261                                                          <em class="parameter"><code>const <a href="../gobject/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
262 <p>
263 Overrides the common properties setting. The underlying virtual
264 function should be used when implementing custom properties.
265 </p>
266 <div class="variablelist"><table border="0">
267 <col align="left" valign="top">
268 <tbody>
269 <tr>
270 <td><p><span class="term"><em class="parameter"><code>scriptable</code></em> :</span></p></td>
271 <td>a <a class="link" href="ClutterScriptable.html" title="ClutterScriptable"><span class="type">ClutterScriptable</span></a>
272 </td>
273 </tr>
274 <tr>
275 <td><p><span class="term"><em class="parameter"><code>script</code></em> :</span></p></td>
276 <td>the <a class="link" href="ClutterScript.html" title="ClutterScript"><span class="type">ClutterScript</span></a> creating the scriptable instance</td>
277 </tr>
278 <tr>
279 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
280 <td>the name of the property</td>
281 </tr>
282 <tr>
283 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
284 <td>the value of the property</td>
285 </tr>
286 </tbody>
287 </table></div>
288 <p class="since">Since 0.6</p>
289 </div>
290 </div>
291 </div>
292 <div class="footer">
293 <hr>
294           Generated by GTK-Doc V1.18.1</div>
295 </body>
296 </html>