1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
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">
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">
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>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#ClutterScriptable.synopsis" class="shortcut">Top</a>
26 <a href="#ClutterScriptable.description" class="shortcut">Description</a>
28 <a href="#ClutterScriptable.object-hierarchy" class="shortcut">Object Hierarchy</a>
30 <a href="#ClutterScriptable.prerequisites" class="shortcut">Prerequisites</a>
32 <a href="#ClutterScriptable.implementations" class="shortcut">Known Implementations</a>
35 <div class="refentry">
36 <a name="ClutterScriptable"></a><div class="titlepage"></div>
37 <div class="refnamediv"><table width="100%"><tr>
39 <h2><span class="refentrytitle"><a name="ClutterScriptable.top_of_page"></a>ClutterScriptable</span></h2>
40 <p>ClutterScriptable — Override the UI definition parsing</p>
42 <td valign="top" align="right"></td>
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>);
64 <div class="refsect1">
65 <a name="ClutterScriptable.object-hierarchy"></a><h2>Object Hierarchy</h2>
66 <pre class="synopsis">
68 +----ClutterScriptable
71 <div class="refsect1">
72 <a name="ClutterScriptable.prerequisites"></a><h2>Prerequisites</h2>
74 ClutterScriptable requires
75 <a href="../gobject/gobject-The-Base-Object-Type.html#GObject">GObject</a>.</p>
77 <div class="refsect1">
78 <a name="ClutterScriptable.implementations"></a><h2>Known Implementations</h2>
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>
83 <div class="refsect1">
84 <a name="ClutterScriptable.description"></a><h2>Description</h2>
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.
92 <a class="link" href="ClutterScriptable.html" title="ClutterScriptable"><span class="type">ClutterScriptable</span></a> is available since Clutter 0.6
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>
101 <a class="link" href="ClutterScriptable.html" title="ClutterScriptable"><span class="type">ClutterScriptable</span></a> is an opaque structure whose members cannot be directly
104 <p class="since">Since 0.6</p>
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,
112 const gchar *(* get_id) (ClutterScriptable *scriptable);
114 gboolean (* parse_custom_node) (ClutterScriptable *scriptable,
115 ClutterScript *script,
119 void (* set_custom_property) (ClutterScriptable *scriptable,
120 ClutterScript *script,
122 const GValue *value);
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>
130 <div class="variablelist"><table border="0">
131 <col align="left" valign="top">
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>
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>
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>
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>
152 <p class="since">Since 0.6</p>
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>
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>.
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>.
168 <div class="variablelist"><table border="0">
169 <col align="left" valign="top">
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>
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>
182 <p class="since">Since 0.6</p>
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>
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>.
191 <div class="variablelist"><table border="0">
192 <col align="left" valign="top">
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>
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>
206 <p class="since">Since 0.6</p>
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>
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>.
221 <div class="variablelist"><table border="0">
222 <col align="left" valign="top">
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>
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>
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>
238 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
239 <td>the name of the node</td>
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>
246 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></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>
252 <p class="since">Since 0.6</p>
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>
263 Overrides the common properties setting. The underlying virtual
264 function should be used when implementing custom properties.
266 <div class="variablelist"><table border="0">
267 <col align="left" valign="top">
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>
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>
279 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
280 <td>the name of the property</td>
283 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
284 <td>the value of the property</td>
288 <p class="since">Since 0.6</p>
294 Generated by GTK-Doc V1.18.1</div>