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>Unit conversion</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="ch11.html" title="General purpose API">
9 <link rel="prev" href="ClutterTextBuffer.html" title="ClutterTextBuffer">
10 <link rel="next" href="clutter-Utilities.html" title="Utilities">
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="ClutterTextBuffer.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="ch11.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="clutter-Utilities.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="#clutter-Unit-conversion.synopsis" class="shortcut">Top</a>
26 <a href="#clutter-Unit-conversion.description" class="shortcut">Description</a>
29 <div class="refentry">
30 <a name="clutter-Unit-conversion"></a><div class="titlepage"></div>
31 <div class="refnamediv"><table width="100%"><tr>
33 <h2><span class="refentrytitle"><a name="clutter-Unit-conversion.top_of_page"></a>Unit conversion</span></h2>
34 <p>Unit conversion — A logical distance unit</p>
36 <td valign="top" align="right"></td>
38 <div class="refsynopsisdiv">
39 <a name="clutter-Unit-conversion.synopsis"></a><h2>Synopsis</h2>
40 <pre class="synopsis">enum <a class="link" href="clutter-Unit-conversion.html#ClutterUnitType" title="enum ClutterUnitType">ClutterUnitType</a>;
41 struct <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits">ClutterUnits</a>;
42 <span class="returnvalue">void</span> <a class="link" href="clutter-Unit-conversion.html#clutter-units-from-cm" title="clutter_units_from_cm ()">clutter_units_from_cm</a> (<em class="parameter"><code><a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>,
43 <em class="parameter"><code><span class="type">gfloat</span> cm</code></em>);
44 <span class="returnvalue">void</span> <a class="link" href="clutter-Unit-conversion.html#clutter-units-from-em" title="clutter_units_from_em ()">clutter_units_from_em</a> (<em class="parameter"><code><a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>,
45 <em class="parameter"><code><span class="type">gfloat</span> em</code></em>);
46 <span class="returnvalue">void</span> <a class="link" href="clutter-Unit-conversion.html#clutter-units-from-em-for-font" title="clutter_units_from_em_for_font ()">clutter_units_from_em_for_font</a> (<em class="parameter"><code><a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>,
47 <em class="parameter"><code>const <span class="type">gchar</span> *font_name</code></em>,
48 <em class="parameter"><code><span class="type">gfloat</span> em</code></em>);
49 <span class="returnvalue">void</span> <a class="link" href="clutter-Unit-conversion.html#clutter-units-from-mm" title="clutter_units_from_mm ()">clutter_units_from_mm</a> (<em class="parameter"><code><a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>,
50 <em class="parameter"><code><span class="type">gfloat</span> mm</code></em>);
51 <span class="returnvalue">void</span> <a class="link" href="clutter-Unit-conversion.html#clutter-units-from-pixels" title="clutter_units_from_pixels ()">clutter_units_from_pixels</a> (<em class="parameter"><code><a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>,
52 <em class="parameter"><code><span class="type">gint</span> px</code></em>);
53 <span class="returnvalue">void</span> <a class="link" href="clutter-Unit-conversion.html#clutter-units-from-pt" title="clutter_units_from_pt ()">clutter_units_from_pt</a> (<em class="parameter"><code><a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>,
54 <em class="parameter"><code><span class="type">gfloat</span> pt</code></em>);
55 <span class="returnvalue">gfloat</span> <a class="link" href="clutter-Unit-conversion.html#clutter-units-to-pixels" title="clutter_units_to_pixels ()">clutter_units_to_pixels</a> (<em class="parameter"><code><a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>);
56 <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="returnvalue">ClutterUnits</span></a> * <a class="link" href="clutter-Unit-conversion.html#clutter-units-copy" title="clutter_units_copy ()">clutter_units_copy</a> (<em class="parameter"><code>const <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>);
57 <span class="returnvalue">void</span> <a class="link" href="clutter-Unit-conversion.html#clutter-units-free" title="clutter_units_free ()">clutter_units_free</a> (<em class="parameter"><code><a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>);
58 <a class="link" href="clutter-Unit-conversion.html#ClutterUnitType" title="enum ClutterUnitType"><span class="returnvalue">ClutterUnitType</span></a> <a class="link" href="clutter-Unit-conversion.html#clutter-units-get-unit-type" title="clutter_units_get_unit_type ()">clutter_units_get_unit_type</a> (<em class="parameter"><code>const <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>);
59 <span class="returnvalue">gfloat</span> <a class="link" href="clutter-Unit-conversion.html#clutter-units-get-unit-value" title="clutter_units_get_unit_value ()">clutter_units_get_unit_value</a> (<em class="parameter"><code>const <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>);
60 <span class="returnvalue">gboolean</span> <a class="link" href="clutter-Unit-conversion.html#clutter-units-from-string" title="clutter_units_from_string ()">clutter_units_from_string</a> (<em class="parameter"><code><a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>,
61 <em class="parameter"><code>const <span class="type">gchar</span> *str</code></em>);
62 <span class="returnvalue">gchar</span> * <a class="link" href="clutter-Unit-conversion.html#clutter-units-to-string" title="clutter_units_to_string ()">clutter_units_to_string</a> (<em class="parameter"><code>const <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>);
64 struct <a class="link" href="clutter-Unit-conversion.html#ClutterParamSpecUnits" title="struct ClutterParamSpecUnits">ClutterParamSpecUnits</a>;
65 <span class="returnvalue">GParamSpec</span> * <a class="link" href="clutter-Unit-conversion.html#clutter-param-spec-units" title="clutter_param_spec_units ()">clutter_param_spec_units</a> (<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
66 <em class="parameter"><code>const <span class="type">gchar</span> *nick</code></em>,
67 <em class="parameter"><code>const <span class="type">gchar</span> *blurb</code></em>,
68 <em class="parameter"><code><a class="link" href="clutter-Unit-conversion.html#ClutterUnitType" title="enum ClutterUnitType"><span class="type">ClutterUnitType</span></a> default_type</code></em>,
69 <em class="parameter"><code><span class="type">gfloat</span> minimum</code></em>,
70 <em class="parameter"><code><span class="type">gfloat</span> maximum</code></em>,
71 <em class="parameter"><code><span class="type">gfloat</span> default_value</code></em>,
72 <em class="parameter"><code><span class="type">GParamFlags</span> flags</code></em>);
73 #define <a class="link" href="clutter-Unit-conversion.html#CLUTTER-VALUE-HOLDS-UNITS:CAPS" title="CLUTTER_VALUE_HOLDS_UNITS()">CLUTTER_VALUE_HOLDS_UNITS</a> (x)
74 <span class="returnvalue">void</span> <a class="link" href="clutter-Unit-conversion.html#clutter-value-set-units" title="clutter_value_set_units ()">clutter_value_set_units</a> (<em class="parameter"><code><span class="type">GValue</span> *value</code></em>,
75 <em class="parameter"><code>const <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>);
76 const <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="returnvalue">ClutterUnits</span></a> * <a class="link" href="clutter-Unit-conversion.html#clutter-value-get-units" title="clutter_value_get_units ()">clutter_value_get_units</a> (<em class="parameter"><code>const <span class="type">GValue</span> *value</code></em>);
79 <div class="refsect1">
80 <a name="clutter-Unit-conversion.description"></a><h2>Description</h2>
82 <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> is a structure holding a logical distance value along with
83 its type, expressed as a value of the <a class="link" href="clutter-Unit-conversion.html#ClutterUnitType" title="enum ClutterUnitType"><span class="type">ClutterUnitType</span></a> enumeration. It is
84 possible to use <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> to store a position or a size in units
85 different than pixels, and convert them whenever needed (for instance
86 inside the <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>::<code class="function">allocate()</code> virtual function, or inside the
87 <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>::<code class="function">get_preferred_width()</code> and <a class="link" href="ClutterActor.html" title="ClutterActor"><span class="type">ClutterActor</span></a>::<code class="function">get_preferred_height()</code>
91 In order to register a <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> property, the <a class="link" href="clutter-Unit-conversion.html#ClutterParamSpecUnits" title="struct ClutterParamSpecUnits"><span class="type">ClutterParamSpecUnits</span></a>
92 <span class="type">GParamSpec</span> sub-class should be used:
96 <div class="informalexample">
97 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
100 <td class="listing_lines" align="right"><pre>1
110 <td class="listing_code"><pre class="programlisting"><span class="usertype">GParamSpec</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">pspec</span><span class="symbol">;</span>
112 <span class="normal">pspec </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="clutter-Unit-conversion.html#clutter-param-spec-units">clutter_param_spec_units</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"active-width"</span><span class="symbol">,</span>
113 <span class="normal"> </span><span class="string">"Width"</span><span class="symbol">,</span>
114 <span class="normal"> </span><span class="string">"Width of the active area, in millimeters"</span><span class="symbol">,</span>
115 <span class="normal"> <a href="clutter-Unit-conversion.html#CLUTTER-UNIT-MM:CAPS">CLUTTER_UNIT_MM</a></span><span class="symbol">,</span>
116 <span class="normal"> </span><span class="number">0.0</span><span class="symbol">,</span><span class="normal"> </span><span class="number">12.0</span><span class="symbol">,</span>
117 <span class="normal"> </span><span class="number">12.0</span><span class="symbol">,</span>
118 <span class="normal"> G_PARAM_READWRITE</span><span class="symbol">);</span>
119 <span class="function">g_object_class_install_property</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">gobject_class</span><span class="symbol">,</span><span class="normal"> PROP_WIDTH</span><span class="symbol">,</span><span class="normal"> pspec</span><span class="symbol">);</span></pre></td>
128 A <span class="type">GValue</span> holding units can be manipulated using <a class="link" href="clutter-Unit-conversion.html#clutter-value-set-units" title="clutter_value_set_units ()"><code class="function">clutter_value_set_units()</code></a>
129 and <a class="link" href="clutter-Unit-conversion.html#clutter-value-get-units" title="clutter_value_get_units ()"><code class="function">clutter_value_get_units()</code></a>. <span class="type">GValue</span>s containing a <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a>
130 value can also be transformed to <span class="type">GValue</span>s initialized with
131 <code class="literal">G_TYPE_INT</code>, <code class="literal">G_TYPE_FLOAT</code> and <code class="literal">G_TYPE_STRING</code> through implicit conversion
132 and using <code class="function">g_value_transform()</code>.
135 <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> is available since Clutter 1.0
138 <div class="refsect1">
139 <a name="clutter-Unit-conversion.details"></a><h2>Details</h2>
140 <div class="refsect2">
141 <a name="ClutterUnitType"></a><h3>enum ClutterUnitType</h3>
142 <pre class="programlisting">typedef enum {
143 /*< prefix=CLUTTER_UNIT >*/
152 The type of unit in which a value is expressed
155 This enumeration might be expanded at later date
157 <div class="variablelist"><table border="0">
158 <col align="left" valign="top">
161 <td><p><a name="CLUTTER-UNIT-PIXEL:CAPS"></a><span class="term"><code class="literal">CLUTTER_UNIT_PIXEL</code></span></p></td>
162 <td>Unit expressed in pixels (with subpixel precision)
166 <td><p><a name="CLUTTER-UNIT-EM:CAPS"></a><span class="term"><code class="literal">CLUTTER_UNIT_EM</code></span></p></td>
167 <td>Unit expressed in em
171 <td><p><a name="CLUTTER-UNIT-MM:CAPS"></a><span class="term"><code class="literal">CLUTTER_UNIT_MM</code></span></p></td>
172 <td>Unit expressed in millimeters
176 <td><p><a name="CLUTTER-UNIT-POINT:CAPS"></a><span class="term"><code class="literal">CLUTTER_UNIT_POINT</code></span></p></td>
177 <td>Unit expressed in points
181 <td><p><a name="CLUTTER-UNIT-CM:CAPS"></a><span class="term"><code class="literal">CLUTTER_UNIT_CM</code></span></p></td>
182 <td>Unit expressed in centimeters
187 <p class="since">Since 1.0</p>
190 <div class="refsect2">
191 <a name="ClutterUnits"></a><h3>struct ClutterUnits</h3>
192 <pre class="programlisting">struct ClutterUnits {
196 An opaque structure, to be used to store sizing and positioning
197 values along with their unit.
199 <p class="since">Since 1.0</p>
202 <div class="refsect2">
203 <a name="clutter-units-from-cm"></a><h3>clutter_units_from_cm ()</h3>
204 <pre class="programlisting"><span class="returnvalue">void</span> clutter_units_from_cm (<em class="parameter"><code><a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>,
205 <em class="parameter"><code><span class="type">gfloat</span> cm</code></em>);</pre>
207 Stores a value in centimeters inside <em class="parameter"><code>units</code></em>
209 <div class="variablelist"><table border="0">
210 <col align="left" valign="top">
213 <td><p><span class="term"><em class="parameter"><code>units</code></em> :</span></p></td>
214 <td>a <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a>. <span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span>
218 <td><p><span class="term"><em class="parameter"><code>cm</code></em> :</span></p></td>
223 <p class="since">Since 1.2</p>
226 <div class="refsect2">
227 <a name="clutter-units-from-em"></a><h3>clutter_units_from_em ()</h3>
228 <pre class="programlisting"><span class="returnvalue">void</span> clutter_units_from_em (<em class="parameter"><code><a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>,
229 <em class="parameter"><code><span class="type">gfloat</span> em</code></em>);</pre>
231 Stores a value in em inside <em class="parameter"><code>units</code></em>, using the default font
232 name as returned by <a class="link" href="ClutterBackend.html#clutter-backend-get-font-name" title="clutter_backend_get_font_name ()"><code class="function">clutter_backend_get_font_name()</code></a>
234 <div class="variablelist"><table border="0">
235 <col align="left" valign="top">
238 <td><p><span class="term"><em class="parameter"><code>units</code></em> :</span></p></td>
239 <td>a <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a>. <span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span>
243 <td><p><span class="term"><em class="parameter"><code>em</code></em> :</span></p></td>
248 <p class="since">Since 1.0</p>
251 <div class="refsect2">
252 <a name="clutter-units-from-em-for-font"></a><h3>clutter_units_from_em_for_font ()</h3>
253 <pre class="programlisting"><span class="returnvalue">void</span> clutter_units_from_em_for_font (<em class="parameter"><code><a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>,
254 <em class="parameter"><code>const <span class="type">gchar</span> *font_name</code></em>,
255 <em class="parameter"><code><span class="type">gfloat</span> em</code></em>);</pre>
257 Stores a value in em inside <em class="parameter"><code>units</code></em> using <em class="parameter"><code>font_name</code></em>
259 <div class="variablelist"><table border="0">
260 <col align="left" valign="top">
263 <td><p><span class="term"><em class="parameter"><code>units</code></em> :</span></p></td>
264 <td>a <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a>. <span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span>
268 <td><p><span class="term"><em class="parameter"><code>font_name</code></em> :</span></p></td>
269 <td>the font name and size. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
273 <td><p><span class="term"><em class="parameter"><code>em</code></em> :</span></p></td>
278 <p class="since">Since 1.0</p>
281 <div class="refsect2">
282 <a name="clutter-units-from-mm"></a><h3>clutter_units_from_mm ()</h3>
283 <pre class="programlisting"><span class="returnvalue">void</span> clutter_units_from_mm (<em class="parameter"><code><a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>,
284 <em class="parameter"><code><span class="type">gfloat</span> mm</code></em>);</pre>
286 Stores a value in millimiters inside <em class="parameter"><code>units</code></em>
288 <div class="variablelist"><table border="0">
289 <col align="left" valign="top">
292 <td><p><span class="term"><em class="parameter"><code>units</code></em> :</span></p></td>
293 <td>a <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a>. <span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span>
297 <td><p><span class="term"><em class="parameter"><code>mm</code></em> :</span></p></td>
302 <p class="since">Since 1.0</p>
305 <div class="refsect2">
306 <a name="clutter-units-from-pixels"></a><h3>clutter_units_from_pixels ()</h3>
307 <pre class="programlisting"><span class="returnvalue">void</span> clutter_units_from_pixels (<em class="parameter"><code><a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>,
308 <em class="parameter"><code><span class="type">gint</span> px</code></em>);</pre>
310 Stores a value in pixels inside <em class="parameter"><code>units</code></em>
312 <div class="variablelist"><table border="0">
313 <col align="left" valign="top">
316 <td><p><span class="term"><em class="parameter"><code>units</code></em> :</span></p></td>
317 <td>a <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a>. <span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span>
321 <td><p><span class="term"><em class="parameter"><code>px</code></em> :</span></p></td>
326 <p class="since">Since 1.0</p>
329 <div class="refsect2">
330 <a name="clutter-units-from-pt"></a><h3>clutter_units_from_pt ()</h3>
331 <pre class="programlisting"><span class="returnvalue">void</span> clutter_units_from_pt (<em class="parameter"><code><a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>,
332 <em class="parameter"><code><span class="type">gfloat</span> pt</code></em>);</pre>
334 Stores a value in typographic points inside <em class="parameter"><code>units</code></em>
336 <div class="variablelist"><table border="0">
337 <col align="left" valign="top">
340 <td><p><span class="term"><em class="parameter"><code>units</code></em> :</span></p></td>
341 <td>a <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a>. <span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span>
345 <td><p><span class="term"><em class="parameter"><code>pt</code></em> :</span></p></td>
346 <td>typographic points</td>
350 <p class="since">Since 1.0</p>
353 <div class="refsect2">
354 <a name="clutter-units-to-pixels"></a><h3>clutter_units_to_pixels ()</h3>
355 <pre class="programlisting"><span class="returnvalue">gfloat</span> clutter_units_to_pixels (<em class="parameter"><code><a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>);</pre>
357 Converts a value in <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> to pixels
359 <div class="variablelist"><table border="0">
360 <col align="left" valign="top">
363 <td><p><span class="term"><em class="parameter"><code>units</code></em> :</span></p></td>
364 <td>units to convert</td>
367 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
368 <td>the value in pixels</td>
372 <p class="since">Since 1.0</p>
375 <div class="refsect2">
376 <a name="clutter-units-copy"></a><h3>clutter_units_copy ()</h3>
377 <pre class="programlisting"><a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="returnvalue">ClutterUnits</span></a> * clutter_units_copy (<em class="parameter"><code>const <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>);</pre>
379 Copies <em class="parameter"><code>units</code></em>
381 <div class="variablelist"><table border="0">
382 <col align="left" valign="top">
385 <td><p><span class="term"><em class="parameter"><code>units</code></em> :</span></p></td>
386 <td>the <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> to copy</td>
389 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
390 <td>the newly created copy of a
391 <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> structure. Use <a class="link" href="clutter-Unit-conversion.html#clutter-units-free" title="clutter_units_free ()"><code class="function">clutter_units_free()</code></a> to free
392 the allocated resources. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
397 <p class="since">Since 1.0</p>
400 <div class="refsect2">
401 <a name="clutter-units-free"></a><h3>clutter_units_free ()</h3>
402 <pre class="programlisting"><span class="returnvalue">void</span> clutter_units_free (<em class="parameter"><code><a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>);</pre>
404 Frees the resources allocated by <em class="parameter"><code>units</code></em>
407 You should only call this function on a <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a>
408 created using <a class="link" href="clutter-Unit-conversion.html#clutter-units-copy" title="clutter_units_copy ()"><code class="function">clutter_units_copy()</code></a>
410 <div class="variablelist"><table border="0">
411 <col align="left" valign="top">
413 <td><p><span class="term"><em class="parameter"><code>units</code></em> :</span></p></td>
414 <td>the <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> to free</td>
417 <p class="since">Since 1.0</p>
420 <div class="refsect2">
421 <a name="clutter-units-get-unit-type"></a><h3>clutter_units_get_unit_type ()</h3>
422 <pre class="programlisting"><a class="link" href="clutter-Unit-conversion.html#ClutterUnitType" title="enum ClutterUnitType"><span class="returnvalue">ClutterUnitType</span></a> clutter_units_get_unit_type (<em class="parameter"><code>const <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>);</pre>
424 Retrieves the unit type of the value stored inside <em class="parameter"><code>units</code></em>
426 <div class="variablelist"><table border="0">
427 <col align="left" valign="top">
430 <td><p><span class="term"><em class="parameter"><code>units</code></em> :</span></p></td>
431 <td>a <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a>
435 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
440 <p class="since">Since 1.0</p>
443 <div class="refsect2">
444 <a name="clutter-units-get-unit-value"></a><h3>clutter_units_get_unit_value ()</h3>
445 <pre class="programlisting"><span class="returnvalue">gfloat</span> clutter_units_get_unit_value (<em class="parameter"><code>const <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>);</pre>
447 Retrieves the value stored inside <em class="parameter"><code>units</code></em>
449 <div class="variablelist"><table border="0">
450 <col align="left" valign="top">
453 <td><p><span class="term"><em class="parameter"><code>units</code></em> :</span></p></td>
454 <td>a <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a>
458 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
459 <td>the value stored inside a <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a>
464 <p class="since">Since 1.0</p>
467 <div class="refsect2">
468 <a name="clutter-units-from-string"></a><h3>clutter_units_from_string ()</h3>
469 <pre class="programlisting"><span class="returnvalue">gboolean</span> clutter_units_from_string (<em class="parameter"><code><a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>,
470 <em class="parameter"><code>const <span class="type">gchar</span> *str</code></em>);</pre>
472 Parses a value and updates <em class="parameter"><code>units</code></em> with it
475 A <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> expressed in string should match:
479 <div class="informalexample">
480 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
483 <td class="listing_lines" align="right"><pre>1
491 <td class="listing_code"><pre class="programlisting"><span class="normal">units</span><span class="symbol">:</span><span class="normal"> wsp</span><span class="symbol">*</span><span class="normal"> unit</span><span class="symbol">-</span><span class="usertype">value</span><span class="normal"> wsp</span><span class="symbol">*</span><span class="normal"> unit</span><span class="symbol">-</span><span class="normal">name</span><span class="symbol">?</span><span class="normal"> wsp</span><span class="symbol">*</span>
492 <span class="normal">unit</span><span class="symbol">-</span><span class="normal">value</span><span class="symbol">:</span><span class="normal"> number</span>
493 <span class="normal">unit</span><span class="symbol">-</span><span class="normal">name</span><span class="symbol">:</span><span class="normal"> </span><span class="string">'px'</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> </span><span class="string">'pt'</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> </span><span class="string">'mm'</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> </span><span class="string">'em'</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> </span><span class="string">'cm'</span>
494 <span class="normal">number</span><span class="symbol">:</span><span class="normal"> digit</span><span class="symbol">+</span>
495 <span class="normal"> </span><span class="symbol">|</span><span class="normal"> digit</span><span class="symbol">*</span><span class="normal"> </span><span class="usertype">sep</span><span class="normal"> digit</span><span class="symbol">+</span>
496 <span class="normal">sep</span><span class="symbol">:</span><span class="normal"> </span><span class="string">'.'</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> </span><span class="string">','</span>
497 <span class="normal">digit</span><span class="symbol">:</span><span class="normal"> </span><span class="string">'0'</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> </span><span class="string">'1'</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> </span><span class="string">'2'</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> </span><span class="string">'3'</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> </span><span class="string">'4'</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> </span><span class="string">'5'</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> </span><span class="string">'6'</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> </span><span class="string">'7'</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> </span><span class="string">'8'</span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> </span><span class="string">'9'</span>
498 <span class="normal">wsp</span><span class="symbol">:</span><span class="normal"> </span><span class="symbol">(<</span><span class="usertype">GTKDOCLINK</span><span class="normal"> HREF</span><span class="symbol">=</span><span class="string">"0x20"</span><span class="symbol">></span><span class="number">0x20</span><span class="symbol"></</span><span class="normal">GTKDOCLINK</span><span class="symbol">></span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> </span><span class="symbol"><</span><span class="usertype">GTKDOCLINK</span><span class="normal"> HREF</span><span class="symbol">=</span><span class="string">"0x9"</span><span class="symbol">></span><span class="number">0x9</span><span class="symbol"></</span><span class="normal">GTKDOCLINK</span><span class="symbol">></span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> </span><span class="symbol"><</span><span class="usertype">GTKDOCLINK</span><span class="normal"> HREF</span><span class="symbol">=</span><span class="string">"0xA"</span><span class="symbol">></span><span class="number">0xA</span><span class="symbol"></</span><span class="normal">GTKDOCLINK</span><span class="symbol">></span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> </span><span class="symbol"><</span><span class="usertype">GTKDOCLINK</span><span class="normal"> HREF</span><span class="symbol">=</span><span class="string">"0xB"</span><span class="symbol">></span><span class="number">0xB</span><span class="symbol"></</span><span class="normal">GTKDOCLINK</span><span class="symbol">></span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> </span><span class="symbol"><</span><span class="usertype">GTKDOCLINK</span><span class="normal"> HREF</span><span class="symbol">=</span><span class="string">"0xC"</span><span class="symbol">></span><span class="number">0xC</span><span class="symbol"></</span><span class="normal">GTKDOCLINK</span><span class="symbol">></span><span class="normal"> </span><span class="symbol">|</span><span class="normal"> </span><span class="symbol"><</span><span class="usertype">GTKDOCLINK</span><span class="normal"> HREF</span><span class="symbol">=</span><span class="string">"0xD"</span><span class="symbol">></span><span class="number">0xD</span><span class="symbol"></</span><span class="normal">GTKDOCLINK</span><span class="symbol">>)+</span></pre></td>
507 For instance, these are valid strings:
511 <div class="informalexample">
512 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
515 <td class="listing_lines" align="right"><pre>1
520 <td class="listing_code"><pre class="programlisting"><span class="number">10</span><span class="normal"> px</span>
521 <span class="number">5.1</span><span class="normal"> em</span>
522 <span class="number">24</span><span class="normal"> pt</span>
523 <span class="number">12.6</span><span class="normal"> mm</span>
524 <span class="symbol">.</span><span class="number">3</span><span class="normal"> cm</span></pre></td>
537 <div class="informalexample">
538 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
541 <td class="listing_lines" align="right"><pre>1
543 <td class="listing_code"><pre class="programlisting"><span class="number">42</span><span class="normal"> cats</span>
544 <span class="normal">omg</span><span class="symbol">!</span><span class="number">1</span><span class="symbol">!</span><span class="normal">ponies</span></pre></td>
554 <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
555 <h3 class="title">Note</h3>
556 <p>If no unit is specified, pixels are assumed.</p>
560 <div class="variablelist"><table border="0">
561 <col align="left" valign="top">
564 <td><p><span class="term"><em class="parameter"><code>units</code></em> :</span></p></td>
565 <td>a <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a>. <span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span>
569 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
570 <td>the string to convert</td>
573 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
575 <code class="literal">TRUE</code> if the string was successfully parsed,
576 and <code class="literal">FALSE</code> otherwise</td>
580 <p class="since">Since 1.0</p>
583 <div class="refsect2">
584 <a name="clutter-units-to-string"></a><h3>clutter_units_to_string ()</h3>
585 <pre class="programlisting"><span class="returnvalue">gchar</span> * clutter_units_to_string (<em class="parameter"><code>const <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>);</pre>
587 Converts <em class="parameter"><code>units</code></em> into a string
590 See <a class="link" href="clutter-Unit-conversion.html#clutter-units-from-string" title="clutter_units_from_string ()"><code class="function">clutter_units_from_string()</code></a> for the units syntax and for
595 <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
596 <h3 class="title">Note</h3>Fractional values are truncated to the second decimal
597 position for em, mm and cm, and to the first decimal position for
598 typographic points. Pixels are integers.</div>
601 <div class="variablelist"><table border="0">
602 <col align="left" valign="top">
605 <td><p><span class="term"><em class="parameter"><code>units</code></em> :</span></p></td>
606 <td>a <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a>
610 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
611 <td>a newly allocated string containing the encoded
612 <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> value. Use <code class="function">g_free()</code> to free the string</td>
616 <p class="since">Since 1.0</p>
619 <div class="refsect2">
620 <a name="ClutterParamSpecUnits"></a><h3>struct ClutterParamSpecUnits</h3>
621 <pre class="programlisting">struct ClutterParamSpecUnits {
622 ClutterUnitType default_type;
624 gfloat default_value;
630 <span class="type">GParamSpec</span> subclass for unit based properties.
632 <div class="variablelist"><table border="0">
633 <col align="left" valign="top">
636 <td><p><span class="term"><a class="link" href="clutter-Unit-conversion.html#ClutterUnitType" title="enum ClutterUnitType"><span class="type">ClutterUnitType</span></a> <em class="structfield"><code><a name="ClutterParamSpecUnits.default-type"></a>default_type</code></em>;</span></p></td>
637 <td>default type</td>
640 <td><p><span class="term"><span class="type">gfloat</span> <em class="structfield"><code><a name="ClutterParamSpecUnits.default-value"></a>default_value</code></em>;</span></p></td>
641 <td>default value</td>
644 <td><p><span class="term"><span class="type">gfloat</span> <em class="structfield"><code><a name="ClutterParamSpecUnits.minimum"></a>minimum</code></em>;</span></p></td>
645 <td>lower boundary</td>
648 <td><p><span class="term"><span class="type">gfloat</span> <em class="structfield"><code><a name="ClutterParamSpecUnits.maximum"></a>maximum</code></em>;</span></p></td>
649 <td>higher boundary</td>
653 <p class="since">Since 1.0</p>
656 <div class="refsect2">
657 <a name="clutter-param-spec-units"></a><h3>clutter_param_spec_units ()</h3>
658 <pre class="programlisting"><span class="returnvalue">GParamSpec</span> * clutter_param_spec_units (<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
659 <em class="parameter"><code>const <span class="type">gchar</span> *nick</code></em>,
660 <em class="parameter"><code>const <span class="type">gchar</span> *blurb</code></em>,
661 <em class="parameter"><code><a class="link" href="clutter-Unit-conversion.html#ClutterUnitType" title="enum ClutterUnitType"><span class="type">ClutterUnitType</span></a> default_type</code></em>,
662 <em class="parameter"><code><span class="type">gfloat</span> minimum</code></em>,
663 <em class="parameter"><code><span class="type">gfloat</span> maximum</code></em>,
664 <em class="parameter"><code><span class="type">gfloat</span> default_value</code></em>,
665 <em class="parameter"><code><span class="type">GParamFlags</span> flags</code></em>);</pre>
667 Creates a <span class="type">GParamSpec</span> for properties using <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a>.
669 <div class="variablelist"><table border="0">
670 <col align="left" valign="top">
673 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
674 <td>name of the property</td>
677 <td><p><span class="term"><em class="parameter"><code>nick</code></em> :</span></p></td>
681 <td><p><span class="term"><em class="parameter"><code>blurb</code></em> :</span></p></td>
682 <td>description (can be translatable)</td>
685 <td><p><span class="term"><em class="parameter"><code>default_type</code></em> :</span></p></td>
686 <td>the default type for the <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a>
690 <td><p><span class="term"><em class="parameter"><code>minimum</code></em> :</span></p></td>
691 <td>lower boundary</td>
694 <td><p><span class="term"><em class="parameter"><code>maximum</code></em> :</span></p></td>
695 <td>higher boundary</td>
698 <td><p><span class="term"><em class="parameter"><code>default_value</code></em> :</span></p></td>
699 <td>default value</td>
702 <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
703 <td>flags for the param spec</td>
706 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
707 <td>the newly created <span class="type">GParamSpec</span>
712 <p class="since">Since 1.0</p>
715 <div class="refsect2">
716 <a name="CLUTTER-VALUE-HOLDS-UNITS:CAPS"></a><h3>CLUTTER_VALUE_HOLDS_UNITS()</h3>
717 <pre class="programlisting">#define CLUTTER_VALUE_HOLDS_UNITS(x) (G_VALUE_HOLDS ((x), CLUTTER_TYPE_UNITS))
720 Evaluates to <code class="literal">TRUE</code> if <em class="parameter"><code>x</code></em> holds a <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> value
722 <div class="variablelist"><table border="0">
723 <col align="left" valign="top">
725 <td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
726 <td>a <span class="type">GValue</span>
730 <p class="since">Since 0.8</p>
733 <div class="refsect2">
734 <a name="clutter-value-set-units"></a><h3>clutter_value_set_units ()</h3>
735 <pre class="programlisting"><span class="returnvalue">void</span> clutter_value_set_units (<em class="parameter"><code><span class="type">GValue</span> *value</code></em>,
736 <em class="parameter"><code>const <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> *units</code></em>);</pre>
738 Sets <em class="parameter"><code>value</code></em> to <em class="parameter"><code>units</code></em>
740 <div class="variablelist"><table border="0">
741 <col align="left" valign="top">
744 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
745 <td>a <span class="type">GValue</span> initialized to <code class="literal">CLUTTER_TYPE_UNITS</code>
749 <td><p><span class="term"><em class="parameter"><code>units</code></em> :</span></p></td>
750 <td>the units to set</td>
754 <p class="since">Since 0.8</p>
757 <div class="refsect2">
758 <a name="clutter-value-get-units"></a><h3>clutter_value_get_units ()</h3>
759 <pre class="programlisting">const <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="returnvalue">ClutterUnits</span></a> * clutter_value_get_units (<em class="parameter"><code>const <span class="type">GValue</span> *value</code></em>);</pre>
761 Gets the <a class="link" href="clutter-Unit-conversion.html#ClutterUnits" title="struct ClutterUnits"><span class="type">ClutterUnits</span></a> contained in <em class="parameter"><code>value</code></em>.
763 <div class="variablelist"><table border="0">
764 <col align="left" valign="top">
767 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
768 <td>a <span class="type">GValue</span> initialized to <code class="literal">CLUTTER_TYPE_UNITS</code>
772 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
773 <td>the units inside the passed <span class="type">GValue</span>
778 <p class="since">Since 0.8</p>
784 Generated by GTK-Doc V1.18.1</div>