1
<refentry id="pango-Cairo-Rendering">
3
<refentrytitle role="top_of_page" id="pango-Cairo-Rendering.top_of_page">Cairo Rendering</refentrytitle>
4
<manvolnum>3</manvolnum>
5
<refmiscinfo>PANGO Library</refmiscinfo>
9
<refname>Cairo Rendering</refname>
10
<refpurpose>Rendering with the Cairo backend</refpurpose>
13
<refsynopsisdiv id="pango-Cairo-Rendering.synopsis" role="synopsis">
14
<title role="synopsis.title">Synopsis</title>
15
<anchor id="PangoCairoFont"/><anchor id="PangoCairoFontMap"/>
17
<link linkend="PangoCairoFont-struct">PangoCairoFont</link>;
18
<link linkend="PangoCairoFontMap-struct">PangoCairoFontMap</link>;
19
<link linkend="PangoFontMap">PangoFontMap</link> * <link linkend="pango-cairo-font-map-get-default">pango_cairo_font_map_get_default</link> (void);
20
<link linkend="void">void</link> <link linkend="pango-cairo-font-map-set-default">pango_cairo_font_map_set_default</link> (<link linkend="PangoCairoFontMap">PangoCairoFontMap</link> *fontmap);
21
<link linkend="PangoFontMap">PangoFontMap</link> * <link linkend="pango-cairo-font-map-new">pango_cairo_font_map_new</link> (void);
22
<link linkend="PangoFontMap">PangoFontMap</link> * <link linkend="pango-cairo-font-map-new-for-font-type">pango_cairo_font_map_new_for_font_type</link>
23
(<link linkend="cairo-font-type-t">cairo_font_type_t</link> fonttype);
24
<link linkend="cairo-font-type-t">cairo_font_type_t</link> <link linkend="pango-cairo-font-map-get-font-type">pango_cairo_font_map_get_font_type</link> (<link linkend="PangoCairoFontMap">PangoCairoFontMap</link> *fontmap);
25
<link linkend="void">void</link> <link linkend="pango-cairo-font-map-set-resolution">pango_cairo_font_map_set_resolution</link> (<link linkend="PangoCairoFontMap">PangoCairoFontMap</link> *fontmap,
26
<link linkend="double">double</link> dpi);
27
<link linkend="double">double</link> <link linkend="pango-cairo-font-map-get-resolution">pango_cairo_font_map_get_resolution</link> (<link linkend="PangoCairoFontMap">PangoCairoFontMap</link> *fontmap);
28
<link linkend="PangoContext">PangoContext</link> * <link linkend="pango-cairo-font-map-create-context">pango_cairo_font_map_create_context</link> (<link linkend="PangoCairoFontMap">PangoCairoFontMap</link> *fontmap);
29
<link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> * <link linkend="pango-cairo-font-get-scaled-font">pango_cairo_font_get_scaled_font</link> (<link linkend="PangoCairoFont">PangoCairoFont</link> *font);
30
<link linkend="void">void</link> <link linkend="pango-cairo-context-set-resolution">pango_cairo_context_set_resolution</link> (<link linkend="PangoContext">PangoContext</link> *context,
31
<link linkend="double">double</link> dpi);
32
<link linkend="double">double</link> <link linkend="pango-cairo-context-get-resolution">pango_cairo_context_get_resolution</link> (<link linkend="PangoContext">PangoContext</link> *context);
33
<link linkend="void">void</link> <link linkend="pango-cairo-context-set-font-options">pango_cairo_context_set_font_options</link>
34
(<link linkend="PangoContext">PangoContext</link> *context,
35
const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);
36
const <link linkend="cairo-font-options-t">cairo_font_options_t</link> * <link linkend="pango-cairo-context-get-font-options">pango_cairo_context_get_font_options</link>
37
(<link linkend="PangoContext">PangoContext</link> *context);
38
<link linkend="void">void</link> (<link linkend="PangoCairoShapeRendererFunc">*PangoCairoShapeRendererFunc</link>) (<link linkend="cairo-t">cairo_t</link> *cr,
39
<link linkend="PangoAttrShape">PangoAttrShape</link> *attr,
40
<link linkend="gboolean">gboolean</link> do_path,
41
<link linkend="gpointer">gpointer</link> data);
42
<link linkend="void">void</link> <link linkend="pango-cairo-context-set-shape-renderer">pango_cairo_context_set_shape_renderer</link>
43
(<link linkend="PangoContext">PangoContext</link> *context,
44
<link linkend="PangoCairoShapeRendererFunc">PangoCairoShapeRendererFunc</link> func,
45
<link linkend="gpointer">gpointer</link> data,
46
<link linkend="GDestroyNotify">GDestroyNotify</link> dnotify);
47
<link linkend="PangoCairoShapeRendererFunc">PangoCairoShapeRendererFunc</link> <link linkend="pango-cairo-context-get-shape-renderer">pango_cairo_context_get_shape_renderer</link>
48
(<link linkend="PangoContext">PangoContext</link> *context,
49
<link linkend="gpointer">gpointer</link> *data);
50
<link linkend="PangoContext">PangoContext</link> * <link linkend="pango-cairo-create-context">pango_cairo_create_context</link> (<link linkend="cairo-t">cairo_t</link> *cr);
51
<link linkend="void">void</link> <link linkend="pango-cairo-update-context">pango_cairo_update_context</link> (<link linkend="cairo-t">cairo_t</link> *cr,
52
<link linkend="PangoContext">PangoContext</link> *context);
53
<link linkend="PangoLayout">PangoLayout</link> * <link linkend="pango-cairo-create-layout">pango_cairo_create_layout</link> (<link linkend="cairo-t">cairo_t</link> *cr);
54
<link linkend="void">void</link> <link linkend="pango-cairo-update-layout">pango_cairo_update_layout</link> (<link linkend="cairo-t">cairo_t</link> *cr,
55
<link linkend="PangoLayout">PangoLayout</link> *layout);
56
<link linkend="void">void</link> <link linkend="pango-cairo-show-glyph-string">pango_cairo_show_glyph_string</link> (<link linkend="cairo-t">cairo_t</link> *cr,
57
<link linkend="PangoFont">PangoFont</link> *font,
58
<link linkend="PangoGlyphString">PangoGlyphString</link> *glyphs);
59
<link linkend="void">void</link> <link linkend="pango-cairo-show-glyph-item">pango_cairo_show_glyph_item</link> (<link linkend="cairo-t">cairo_t</link> *cr,
60
const <link linkend="char">char</link> *text,
61
<link linkend="PangoGlyphItem">PangoGlyphItem</link> *glyph_item);
62
<link linkend="void">void</link> <link linkend="pango-cairo-show-layout-line">pango_cairo_show_layout_line</link> (<link linkend="cairo-t">cairo_t</link> *cr,
63
<link linkend="PangoLayoutLine">PangoLayoutLine</link> *line);
64
<link linkend="void">void</link> <link linkend="pango-cairo-show-layout">pango_cairo_show_layout</link> (<link linkend="cairo-t">cairo_t</link> *cr,
65
<link linkend="PangoLayout">PangoLayout</link> *layout);
66
<link linkend="void">void</link> <link linkend="pango-cairo-show-error-underline">pango_cairo_show_error_underline</link> (<link linkend="cairo-t">cairo_t</link> *cr,
67
<link linkend="double">double</link> x,
68
<link linkend="double">double</link> y,
69
<link linkend="double">double</link> width,
70
<link linkend="double">double</link> height);
71
<link linkend="void">void</link> <link linkend="pango-cairo-glyph-string-path">pango_cairo_glyph_string_path</link> (<link linkend="cairo-t">cairo_t</link> *cr,
72
<link linkend="PangoFont">PangoFont</link> *font,
73
<link linkend="PangoGlyphString">PangoGlyphString</link> *glyphs);
74
<link linkend="void">void</link> <link linkend="pango-cairo-layout-line-path">pango_cairo_layout_line_path</link> (<link linkend="cairo-t">cairo_t</link> *cr,
75
<link linkend="PangoLayoutLine">PangoLayoutLine</link> *line);
76
<link linkend="void">void</link> <link linkend="pango-cairo-layout-path">pango_cairo_layout_path</link> (<link linkend="cairo-t">cairo_t</link> *cr,
77
<link linkend="PangoLayout">PangoLayout</link> *layout);
78
<link linkend="void">void</link> <link linkend="pango-cairo-error-underline-path">pango_cairo_error_underline_path</link> (<link linkend="cairo-t">cairo_t</link> *cr,
79
<link linkend="double">double</link> x,
80
<link linkend="double">double</link> y,
81
<link linkend="double">double</link> width,
82
<link linkend="double">double</link> height);
86
<refsect1 id="pango-Cairo-Rendering.object-hierarchy" role="object_hierarchy">
87
<title role="object_hierarchy.title">Object Hierarchy</title>
89
<link linkend="GInterface">GInterface</link>
93
<link linkend="GInterface">GInterface</link>
94
+----PangoCairoFontMap
98
<refsect1 id="pango-Cairo-Rendering.prerequisites" role="prerequisites">
99
<title role="prerequisites.title">Prerequisites</title>
101
PangoCairoFont requires
102
<link linkend="PangoFont">PangoFont</link>.</para>
104
PangoCairoFontMap requires
105
<link linkend="PangoFontMap">PangoFontMap</link>.</para>
114
<refsect1 id="pango-Cairo-Rendering.description" role="desc">
115
<title role="desc.title">Description</title>
117
The <ulink url="http://cairographics.org">Cairo library</ulink> is a
118
vector graphics library with a powerful rendering model. It has such
119
features as anti-aliased primitives, alpha-compositing, and
120
gradients. Multiple backends for Cairo are available, to allow
121
rendering to images, to PDF files, and to the screen on X and on other
122
windowing systems. The functions in this section allow using Pango
123
to render to Cairo surfaces.
126
Using Pango with Cairo is straightforward. A <link linkend="PangoContext"><type>PangoContext</type></link> created
127
with <link linkend="pango-cairo-font-map-create-context"><function>pango_cairo_font_map_create_context()</function></link> can be used on any
128
Cairo context (cairo_t), but needs to be updated to match the
129
current transformation matrix and target surface of the Cairo context
130
using <link linkend="pango-cairo-update-context"><function>pango_cairo_update_context()</function></link>. The convenience functions
131
<link linkend="pango-cairo-create-layout"><function>pango_cairo_create_layout()</function></link> and <link linkend="pango-cairo-update-layout"><function>pango_cairo_update_layout()</function></link> handle
132
the common case where the program doesn't need to manipulate the
133
properties of the <link linkend="PangoContext"><type>PangoContext</type></link>.
136
When you get the metrics of a layout or of a piece of a layout using
137
functions such as <link linkend="pango-layout-get-extents"><function>pango_layout_get_extents()</function></link>, the reported metrics
138
are in user-space coordinates. If a piece of text is 10 units long,
139
and you call cairo_scale (cr, 2.0), it still is more-or-less 10
140
units long. However, the results will be affected by hinting
141
(that is, the process of adjusting the text to look good on the
142
pixel grid), so you shouldn't assume they are completely independent
143
of the current transformation matrix. Note that the basic metrics
144
functions in Pango report results in integer Pango units. To get
145
to the floating point units used in Cairo divide by <link linkend="PANGO-SCALE--CAPS"><literal>PANGO_SCALE</literal></link>.
147
<example id="rotated-example">
148
<title>Using Pango with Cairo</title>
150
#<!-- -->include <math.h>
151
#<!-- -->include <pango/pangocairo.h>
153
draw_text (cairo_t *cr)
155
#<!-- -->define RADIUS 150
156
#<!-- -->define N_WORDS 10
157
#<!-- -->define FONT "Sans Bold 27"
159
PangoFontDescription *desc;
161
/* Center coordinates on the middle of the region we are drawing
163
cairo_translate (cr, RADIUS, RADIUS);
164
/* Create a PangoLayout, set the font and text */
165
layout = pango_cairo_create_layout (cr);
166
pango_layout_set_text (layout, "Text", -1);
167
desc = pango_font_description_from_string (FONT);
168
pango_layout_set_font_description (layout, desc);
169
pango_font_description_free (desc);
170
/* Draw the layout N_WORDS times in a circle */
171
for (i = 0; i < N_WORDS; i++)
174
double angle = (360. * i) / N_WORDS;
177
/* Gradient from red at angle == 60 to blue at angle == 240 */
178
red = (1 + cos ((angle - 60) * G_PI / 180.)) / 2;
179
cairo_set_source_rgb (cr, red, 0, 1.0 - red);
180
cairo_rotate (cr, angle * G_PI / 180.);
181
/* Inform Pango to re-layout the text with the new transformation */
182
pango_cairo_update_layout (cr, layout);
183
pango_layout_get_size (layout, &width, &height);
184
cairo_move_to (cr, - ((double)width / PANGO_SCALE) / 2, - RADIUS);
185
pango_cairo_show_layout (cr, layout);
188
/* free the layout object */
189
g_object_unref (layout);
191
int main (int argc, char **argv)
195
cairo_status_t status;
196
cairo_surface_t *surface;
199
g_printerr ("Usage: cairosimple OUTPUT_FILENAME\n");
203
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
204
2 * RADIUS, 2 * RADIUS);
205
cr = cairo_create (surface);
206
cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
210
status = cairo_surface_write_to_png (surface, filename);
211
cairo_surface_destroy (surface);
212
if (status != CAIRO_STATUS_SUCCESS)
214
g_printerr ("Could not save png to '%s'\n", filename);
221
<figure id="rotated-example-output">
222
<title>Output of <xref linkend="rotated-example"/></title>
223
<graphic fileref="rotated-text.png" format="PNG"/>
227
<refsect1 id="pango-Cairo-Rendering.details" role="details">
228
<title role="details.title">Details</title>
229
<refsect2 id="PangoCairoFont-struct" role="struct">
230
<title>PangoCairoFont</title>
231
<indexterm zone="PangoCairoFont-struct" role="1.18"><primary sortas="PangoCairoFont">PangoCairoFont</primary></indexterm><programlisting>typedef struct _PangoCairoFont PangoCairoFont;</programlisting>
233
<link linkend="PangoCairoFont"><type>PangoCairoFont</type></link> is an interface exported by fonts for
234
use with Cairo. The actual type of the font will depend
235
on the particular font technology Cairo was compiled to use.</para>
237
</para><para role="since">Since 1.18</para></refsect2>
238
<refsect2 id="PangoCairoFontMap-struct" role="struct">
239
<title>PangoCairoFontMap</title>
240
<indexterm zone="PangoCairoFontMap-struct" role="1.10"><primary sortas="PangoCairoFontMap">PangoCairoFontMap</primary></indexterm><programlisting>typedef struct _PangoCairoFontMap PangoCairoFontMap;</programlisting>
242
<link linkend="PangoCairoFontMap"><type>PangoCairoFontMap</type></link> is an interface exported by font maps for
243
use with Cairo. The actual type of the font map will depend
244
on the particular font technology Cairo was compiled to use.</para>
246
</para><para role="since">Since 1.10</para></refsect2>
247
<refsect2 id="pango-cairo-font-map-get-default" role="function" condition="since:1.10">
248
<title>pango_cairo_font_map_get_default ()</title>
249
<indexterm zone="pango-cairo-font-map-get-default" role="1.10"><primary sortas="pango_cairo_font_map_get_default">pango_cairo_font_map_get_default</primary></indexterm><programlisting><link linkend="PangoFontMap">PangoFontMap</link> * pango_cairo_font_map_get_default (void);</programlisting>
251
Gets a default <link linkend="PangoCairoFontMap"><type>PangoCairoFontMap</type></link> to use with Cairo.
254
Note that the type of the returned object will depend
255
on the particular font backend Cairo was compiled to use;
256
You generally should only use the <link linkend="PangoFontMap"><type>PangoFontMap</type></link> and
257
<link linkend="PangoCairoFontMap"><type>PangoCairoFontMap</type></link> interfaces on the returned object.
260
The default Cairo fontmap can be changed by using
261
<link linkend="pango-cairo-font-map-set-default"><function>pango_cairo_font_map_set_default()</function></link>. This can be used to
262
change the Cairo font backend that the default fontmap
263
uses for example.</para>
265
</para><variablelist role="params">
266
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the default Cairo fontmap for Pango. This
267
object is owned by Pango and must not be freed.
269
</simpara></listitem></varlistentry>
270
</variablelist><para role="since">Since 1.10</para></refsect2>
271
<refsect2 id="pango-cairo-font-map-set-default" role="function" condition="since:1.22">
272
<title>pango_cairo_font_map_set_default ()</title>
273
<indexterm zone="pango-cairo-font-map-set-default" role="1.22"><primary sortas="pango_cairo_font_map_set_default">pango_cairo_font_map_set_default</primary></indexterm><programlisting><link linkend="void">void</link> pango_cairo_font_map_set_default (<link linkend="PangoCairoFontMap">PangoCairoFontMap</link> *fontmap);</programlisting>
275
Sets a default <link linkend="PangoCairoFontMap"><type>PangoCairoFontMap</type></link> to use with Cairo.
278
This can be used to change the Cairo font backend that the
279
default fontmap uses for example. The old default font map
280
is unreffed and the new font map referenced.
283
A value of <link linkend="NULL--CAPS"><literal>NULL</literal></link> for <parameter>fontmap</parameter> will cause the current default
284
font map to be released and a new default font
285
map to be created on demand, using <link linkend="pango-cairo-font-map-new"><function>pango_cairo_font_map_new()</function></link>.</para>
287
</para><variablelist role="params">
288
<varlistentry><term><parameter>fontmap</parameter> :</term>
289
<listitem><simpara> The new default font map, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
290
</simpara></listitem></varlistentry>
291
</variablelist><para role="since">Since 1.22</para></refsect2>
292
<refsect2 id="pango-cairo-font-map-new" role="function" condition="since:1.10">
293
<title>pango_cairo_font_map_new ()</title>
294
<indexterm zone="pango-cairo-font-map-new" role="1.10"><primary sortas="pango_cairo_font_map_new">pango_cairo_font_map_new</primary></indexterm><programlisting><link linkend="PangoFontMap">PangoFontMap</link> * pango_cairo_font_map_new (void);</programlisting>
296
Creates a new <link linkend="PangoCairoFontMap"><type>PangoCairoFontMap</type></link> object; a fontmap is used
297
to cache information about available fonts, and holds
298
certain global parameters such as the resolution.
299
In most cases, you can use <link linkend="pango-cairo-font-map-get-default"><function>pango_cairo_font_map_get_default()</function></link>
303
Note that the type of the returned object will depend
304
on the particular font backend Cairo was compiled to use;
305
You generally should only use the <link linkend="PangoFontMap"><type>PangoFontMap</type></link> and
306
<link linkend="PangoCairoFontMap"><type>PangoCairoFontMap</type></link> interfaces on the returned object.</para>
308
</para><variablelist role="params">
309
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the newly allocated <link linkend="PangoFontMap"><type>PangoFontMap</type></link>, which should
310
be freed with <link linkend="g-object-unref"><function>g_object_unref()</function></link>.
312
</simpara></listitem></varlistentry>
313
</variablelist><para role="since">Since 1.10</para></refsect2>
314
<refsect2 id="pango-cairo-font-map-new-for-font-type" role="function" condition="since:1.18">
315
<title>pango_cairo_font_map_new_for_font_type ()</title>
316
<indexterm zone="pango-cairo-font-map-new-for-font-type" role="1.18"><primary sortas="pango_cairo_font_map_new_for_font_type">pango_cairo_font_map_new_for_font_type</primary></indexterm><programlisting><link linkend="PangoFontMap">PangoFontMap</link> * pango_cairo_font_map_new_for_font_type
317
(<link linkend="cairo-font-type-t">cairo_font_type_t</link> fonttype);</programlisting>
319
Creates a new <link linkend="PangoCairoFontMap"><type>PangoCairoFontMap</type></link> object of the type suitable
320
to be used with cairo font backend of type <parameter>fonttype</parameter>.
323
In most cases one should simply use @<link linkend="pango-cairo-font-map-new"><function>pango_cairo_font_map_new()</function></link>,
324
or in fact in most of those cases, just use
325
@<link linkend="pango-cairo-font-map-get-default"><function>pango_cairo_font_map_get_default()</function></link>.</para>
327
</para><variablelist role="params">
328
<varlistentry><term><parameter>fonttype</parameter> :</term>
329
<listitem><simpara> desired <link linkend="cairo-font-type-t"><type>cairo_font_type_t</type></link>
330
</simpara></listitem></varlistentry>
331
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the newly allocated <link linkend="PangoFontMap"><type>PangoFontMap</type></link> of suitable type
332
which should be freed with <link linkend="g-object-unref"><function>g_object_unref()</function></link>,
333
or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if the requested cairo font backend is
334
not supported / compiled in.
336
</simpara></listitem></varlistentry>
337
</variablelist><para role="since">Since 1.18</para></refsect2>
338
<refsect2 id="pango-cairo-font-map-get-font-type" role="function" condition="since:1.18">
339
<title>pango_cairo_font_map_get_font_type ()</title>
340
<indexterm zone="pango-cairo-font-map-get-font-type" role="1.18"><primary sortas="pango_cairo_font_map_get_font_type">pango_cairo_font_map_get_font_type</primary></indexterm><programlisting><link linkend="cairo-font-type-t">cairo_font_type_t</link> pango_cairo_font_map_get_font_type (<link linkend="PangoCairoFontMap">PangoCairoFontMap</link> *fontmap);</programlisting>
342
Gets the type of Cairo font backend that <parameter>fontmap</parameter> uses.</para>
344
</para><variablelist role="params">
345
<varlistentry><term><parameter>fontmap</parameter> :</term>
346
<listitem><simpara> a <link linkend="PangoCairoFontMap"><type>PangoCairoFontMap</type></link>
347
</simpara></listitem></varlistentry>
348
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the <link linkend="cairo-font-type-t"><type>cairo_font_type_t</type></link> cairo font backend type
350
</simpara></listitem></varlistentry>
351
</variablelist><para role="since">Since 1.18</para></refsect2>
352
<refsect2 id="pango-cairo-font-map-set-resolution" role="function" condition="since:1.10">
353
<title>pango_cairo_font_map_set_resolution ()</title>
354
<indexterm zone="pango-cairo-font-map-set-resolution" role="1.10"><primary sortas="pango_cairo_font_map_set_resolution">pango_cairo_font_map_set_resolution</primary></indexterm><programlisting><link linkend="void">void</link> pango_cairo_font_map_set_resolution (<link linkend="PangoCairoFontMap">PangoCairoFontMap</link> *fontmap,
355
<link linkend="double">double</link> dpi);</programlisting>
357
Sets the resolution for the fontmap. This is a scale factor between
358
points specified in a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link> and Cairo units. The
359
default value is 96, meaning that a 10 point font will be 13
360
units high. (10 * 96. / 72. = 13.3).</para>
362
</para><variablelist role="params">
363
<varlistentry><term><parameter>fontmap</parameter> :</term>
364
<listitem><simpara> a <link linkend="PangoCairoFontMap"><type>PangoCairoFontMap</type></link>
365
</simpara></listitem></varlistentry>
366
<varlistentry><term><parameter>dpi</parameter> :</term>
367
<listitem><simpara> the resolution in "dots per inch". (Physical inches aren't actually
368
involved; the terminology is conventional.)
369
</simpara></listitem></varlistentry>
370
</variablelist><para role="since">Since 1.10</para></refsect2>
371
<refsect2 id="pango-cairo-font-map-get-resolution" role="function" condition="since:1.10">
372
<title>pango_cairo_font_map_get_resolution ()</title>
373
<indexterm zone="pango-cairo-font-map-get-resolution" role="1.10"><primary sortas="pango_cairo_font_map_get_resolution">pango_cairo_font_map_get_resolution</primary></indexterm><programlisting><link linkend="double">double</link> pango_cairo_font_map_get_resolution (<link linkend="PangoCairoFontMap">PangoCairoFontMap</link> *fontmap);</programlisting>
375
Gets the resolution for the fontmap. See <link linkend="pango-cairo-font-map-set-resolution"><function>pango_cairo_font_map_set_resolution()</function></link></para>
377
</para><variablelist role="params">
378
<varlistentry><term><parameter>fontmap</parameter> :</term>
379
<listitem><simpara> a <link linkend="PangoCairoFontMap"><type>PangoCairoFontMap</type></link>
380
</simpara></listitem></varlistentry>
381
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the resolution in "dots per inch"
383
</simpara></listitem></varlistentry>
384
</variablelist><para role="since">Since 1.10</para></refsect2>
385
<refsect2 id="pango-cairo-font-map-create-context" role="function" condition="deprecated:1.22: Use pango_font_map_create_context() instead.|since:1.10">
386
<title>pango_cairo_font_map_create_context ()</title>
387
<indexterm zone="pango-cairo-font-map-create-context" role="deprecated"><primary sortas="pango_cairo_font_map_create_context">pango_cairo_font_map_create_context</primary></indexterm><indexterm zone="pango-cairo-font-map-create-context" role="1.10"><primary sortas="pango_cairo_font_map_create_context">pango_cairo_font_map_create_context</primary></indexterm><programlisting><link linkend="PangoContext">PangoContext</link> * pango_cairo_font_map_create_context (<link linkend="PangoCairoFontMap">PangoCairoFontMap</link> *fontmap);</programlisting>
388
<warning><para><literal>pango_cairo_font_map_create_context</literal> has been deprecated since version 1.22 and should not be used in newly-written code. Use <link linkend="pango-font-map-create-context"><function>pango_font_map_create_context()</function></link> instead.</para></warning>
390
Create a <link linkend="PangoContext"><type>PangoContext</type></link> for the given fontmap.</para>
392
</para><variablelist role="params">
393
<varlistentry><term><parameter>fontmap</parameter> :</term>
394
<listitem><simpara> a <link linkend="PangoCairoFontMap"><type>PangoCairoFontMap</type></link>
395
</simpara></listitem></varlistentry>
396
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the newly created context; free with <link linkend="g-object-unref"><function>g_object_unref()</function></link>.
398
</simpara></listitem></varlistentry>
399
</variablelist><para role="since">Since 1.10</para></refsect2>
400
<refsect2 id="pango-cairo-font-get-scaled-font" role="function" condition="since:1.18">
401
<title>pango_cairo_font_get_scaled_font ()</title>
402
<indexterm zone="pango-cairo-font-get-scaled-font" role="1.18"><primary sortas="pango_cairo_font_get_scaled_font">pango_cairo_font_get_scaled_font</primary></indexterm><programlisting><link linkend="cairo-scaled-font-t">cairo_scaled_font_t</link> * pango_cairo_font_get_scaled_font (<link linkend="PangoCairoFont">PangoCairoFont</link> *font);</programlisting>
404
Gets the <link linkend="cairo-scaled-font-t"><type>cairo_scaled_font_t</type></link> used by <parameter>font</parameter>.
405
The scaled font can be referenced and kept using
406
<link linkend="cairo-scaled-font-reference"><function>cairo_scaled_font_reference()</function></link>.</para>
408
</para><variablelist role="params">
409
<varlistentry><term><parameter>font</parameter> :</term>
410
<listitem><simpara> a <link linkend="PangoFont"><type>PangoFont</type></link> from a <link linkend="PangoCairoFontMap"><type>PangoCairoFontMap</type></link>
411
</simpara></listitem></varlistentry>
412
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the <link linkend="cairo-scaled-font-t"><type>cairo_scaled_font_t</type></link> used by <parameter>font</parameter>,
413
or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if <parameter>font</parameter> is <link linkend="NULL--CAPS"><literal>NULL</literal></link>.
415
</simpara></listitem></varlistentry>
416
</variablelist><para role="since">Since 1.18</para></refsect2>
417
<refsect2 id="pango-cairo-context-set-resolution" role="function" condition="since:1.10">
418
<title>pango_cairo_context_set_resolution ()</title>
419
<indexterm zone="pango-cairo-context-set-resolution" role="1.10"><primary sortas="pango_cairo_context_set_resolution">pango_cairo_context_set_resolution</primary></indexterm><programlisting><link linkend="void">void</link> pango_cairo_context_set_resolution (<link linkend="PangoContext">PangoContext</link> *context,
420
<link linkend="double">double</link> dpi);</programlisting>
422
Sets the resolution for the context. This is a scale factor between
423
points specified in a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link> and Cairo units. The
424
default value is 96, meaning that a 10 point font will be 13
425
units high. (10 * 96. / 72. = 13.3).</para>
427
</para><variablelist role="params">
428
<varlistentry><term><parameter>context</parameter> :</term>
429
<listitem><simpara> a <link linkend="PangoContext"><type>PangoContext</type></link>, from a pangocairo font map
430
</simpara></listitem></varlistentry>
431
<varlistentry><term><parameter>dpi</parameter> :</term>
432
<listitem><simpara> the resolution in "dots per inch". (Physical inches aren't actually
433
involved; the terminology is conventional.) A 0 or negative value
434
means to use the resolution from the font map.
435
</simpara></listitem></varlistentry>
436
</variablelist><para role="since">Since 1.10</para></refsect2>
437
<refsect2 id="pango-cairo-context-get-resolution" role="function" condition="since:1.10">
438
<title>pango_cairo_context_get_resolution ()</title>
439
<indexterm zone="pango-cairo-context-get-resolution" role="1.10"><primary sortas="pango_cairo_context_get_resolution">pango_cairo_context_get_resolution</primary></indexterm><programlisting><link linkend="double">double</link> pango_cairo_context_get_resolution (<link linkend="PangoContext">PangoContext</link> *context);</programlisting>
441
Gets the resolution for the context. See <link linkend="pango-cairo-context-set-resolution"><function>pango_cairo_context_set_resolution()</function></link></para>
443
</para><variablelist role="params">
444
<varlistentry><term><parameter>context</parameter> :</term>
445
<listitem><simpara> a <link linkend="PangoContext"><type>PangoContext</type></link>, from a pangocairo font map
446
</simpara></listitem></varlistentry>
447
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the resolution in "dots per inch". A negative value will
448
be returned if no resolution has previously been set.
450
</simpara></listitem></varlistentry>
451
</variablelist><para role="since">Since 1.10</para></refsect2>
452
<refsect2 id="pango-cairo-context-set-font-options" role="function" condition="since:1.10">
453
<title>pango_cairo_context_set_font_options ()</title>
454
<indexterm zone="pango-cairo-context-set-font-options" role="1.10"><primary sortas="pango_cairo_context_set_font_options">pango_cairo_context_set_font_options</primary></indexterm><programlisting><link linkend="void">void</link> pango_cairo_context_set_font_options
455
(<link linkend="PangoContext">PangoContext</link> *context,
456
const <link linkend="cairo-font-options-t">cairo_font_options_t</link> *options);</programlisting>
458
Sets the font options used when rendering text with this context.
459
These options override any options that <link linkend="pango-cairo-update-context"><function>pango_cairo_update_context()</function></link>
460
derives from the target surface.</para>
462
</para><variablelist role="params">
463
<varlistentry><term><parameter>context</parameter> :</term>
464
<listitem><simpara> a <link linkend="PangoContext"><type>PangoContext</type></link>, from a pangocairo font map
465
</simpara></listitem></varlistentry>
466
<varlistentry><term><parameter>options</parameter> :</term>
467
<listitem><simpara> a <link linkend="cairo-font-options-t"><type>cairo_font_options_t</type></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link> to unset any previously set
468
options. A copy is made.
469
</simpara></listitem></varlistentry>
470
</variablelist><para role="since">Since 1.10</para></refsect2>
471
<refsect2 id="pango-cairo-context-get-font-options" role="function" condition="since:1.10">
472
<title>pango_cairo_context_get_font_options ()</title>
473
<indexterm zone="pango-cairo-context-get-font-options" role="1.10"><primary sortas="pango_cairo_context_get_font_options">pango_cairo_context_get_font_options</primary></indexterm><programlisting>const <link linkend="cairo-font-options-t">cairo_font_options_t</link> * pango_cairo_context_get_font_options
474
(<link linkend="PangoContext">PangoContext</link> *context);</programlisting>
476
Retrieves any font rendering options previously set with
477
<link linkend="pango-cairo-font-map-set-font-options"><function>pango_cairo_font_map_set_font_options()</function></link>. This function does not report options
478
that are derived from the target surface by <link linkend="pango-cairo-update-context"><function>pango_cairo_update_context()</function></link></para>
480
</para><variablelist role="params">
481
<varlistentry><term><parameter>context</parameter> :</term>
482
<listitem><simpara> a <link linkend="PangoContext"><type>PangoContext</type></link>, from a pangocairo font map
483
</simpara></listitem></varlistentry>
484
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the font options previously set on the context, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
485
if no options have been set. This value is owned by the context
486
and must not be modified or freed.
488
</simpara></listitem></varlistentry>
489
</variablelist><para role="since">Since 1.10</para></refsect2>
490
<refsect2 id="PangoCairoShapeRendererFunc" role="function">
491
<title>PangoCairoShapeRendererFunc ()</title>
492
<indexterm zone="PangoCairoShapeRendererFunc"><primary sortas="PangoCairoShapeRendererFunc">PangoCairoShapeRendererFunc</primary></indexterm><programlisting><link linkend="void">void</link> (*PangoCairoShapeRendererFunc) (<link linkend="cairo-t">cairo_t</link> *cr,
493
<link linkend="PangoAttrShape">PangoAttrShape</link> *attr,
494
<link linkend="gboolean">gboolean</link> do_path,
495
<link linkend="gpointer">gpointer</link> data);</programlisting>
497
Function type for rendering attributes of type <link linkend="PANGO-ATTR-SHAPE--CAPS"><literal>PANGO_ATTR_SHAPE</literal></link>
498
with Pango's Cairo renderer.
499
</para><variablelist role="params">
500
<varlistentry><term><parameter>cr</parameter> :</term>
501
<listitem><simpara>a Cairo context with current point set to where the shape should
503
</simpara></listitem></varlistentry>
504
<varlistentry><term><parameter>attr</parameter> :</term>
505
<listitem><simpara>the <link linkend="PANGO-ATTR-SHAPE--CAPS"><literal>PANGO_ATTR_SHAPE</literal></link> to render
506
</simpara></listitem></varlistentry>
507
<varlistentry><term><parameter>do_path</parameter> :</term>
508
<listitem><simpara>whether only the shape path should be appended to current
509
path of <parameter>cr</parameter> and no filling/stroking done. This will be set
510
to <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> when called from <link linkend="pango-cairo-layout-path"><function>pango_cairo_layout_path()</function></link> and
511
<link linkend="pango-cairo-layout-line-path"><function>pango_cairo_layout_line_path()</function></link> rendering functions.
512
</simpara></listitem></varlistentry>
513
<varlistentry><term><parameter>data</parameter> :</term>
514
<listitem><simpara>user data passed to <link linkend="pango-cairo-context-set-shape-renderer"><function>pango_cairo_context_set_shape_renderer()</function></link>
515
</simpara></listitem></varlistentry>
516
</variablelist></refsect2>
517
<refsect2 id="pango-cairo-context-set-shape-renderer" role="function" condition="since:1.18">
518
<title>pango_cairo_context_set_shape_renderer ()</title>
519
<indexterm zone="pango-cairo-context-set-shape-renderer" role="1.18"><primary sortas="pango_cairo_context_set_shape_renderer">pango_cairo_context_set_shape_renderer</primary></indexterm><programlisting><link linkend="void">void</link> pango_cairo_context_set_shape_renderer
520
(<link linkend="PangoContext">PangoContext</link> *context,
521
<link linkend="PangoCairoShapeRendererFunc">PangoCairoShapeRendererFunc</link> func,
522
<link linkend="gpointer">gpointer</link> data,
523
<link linkend="GDestroyNotify">GDestroyNotify</link> dnotify);</programlisting>
525
Sets callback function for context to use for rendering attributes
526
of type <link linkend="PANGO-ATTR-SHAPE--CAPS"><literal>PANGO_ATTR_SHAPE</literal></link>. See <link linkend="PangoCairoShapeRendererFunc"><type>PangoCairoShapeRendererFunc</type></link> for
529
</para><variablelist role="params">
530
<varlistentry><term><parameter>context</parameter> :</term>
531
<listitem><simpara> a <link linkend="PangoContext"><type>PangoContext</type></link>, from a pangocairo font map
532
</simpara></listitem></varlistentry>
533
<varlistentry><term><parameter>func</parameter> :</term>
534
<listitem><simpara> Callback function for rendering attributes of type
535
<link linkend="PANGO-ATTR-SHAPE--CAPS"><literal>PANGO_ATTR_SHAPE</literal></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link> to disable shape rendering.
536
</simpara></listitem></varlistentry>
537
<varlistentry><term><parameter>data</parameter> :</term>
538
<listitem><simpara> User data that will be passed to <parameter>func</parameter>.
539
</simpara></listitem></varlistentry>
540
<varlistentry><term><parameter>dnotify</parameter> :</term>
541
<listitem><simpara> Callback that will be called when the
542
context is freed to release <parameter>data</parameter>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>.
543
</simpara></listitem></varlistentry>
544
</variablelist><para role="since">Since 1.18</para></refsect2>
545
<refsect2 id="pango-cairo-context-get-shape-renderer" role="function" condition="since:1.18">
546
<title>pango_cairo_context_get_shape_renderer ()</title>
547
<indexterm zone="pango-cairo-context-get-shape-renderer" role="1.18"><primary sortas="pango_cairo_context_get_shape_renderer">pango_cairo_context_get_shape_renderer</primary></indexterm><programlisting><link linkend="PangoCairoShapeRendererFunc">PangoCairoShapeRendererFunc</link> pango_cairo_context_get_shape_renderer
548
(<link linkend="PangoContext">PangoContext</link> *context,
549
<link linkend="gpointer">gpointer</link> *data);</programlisting>
551
Sets callback function for context to use for rendering attributes
552
of type <link linkend="PANGO-ATTR-SHAPE--CAPS"><literal>PANGO_ATTR_SHAPE</literal></link>. See <link linkend="PangoCairoShapeRendererFunc"><type>PangoCairoShapeRendererFunc</type></link> for
556
Retrieves callback function and associated user data for rendering
557
attributes of type <link linkend="PANGO-ATTR-SHAPE--CAPS"><literal>PANGO_ATTR_SHAPE</literal></link> as set by
558
<link linkend="pango-cairo-context-set-shape-renderer"><function>pango_cairo_context_set_shape_renderer()</function></link>, if any.</para>
560
</para><variablelist role="params">
561
<varlistentry><term><parameter>context</parameter> :</term>
562
<listitem><simpara> a <link linkend="PangoContext"><type>PangoContext</type></link>, from a pangocairo font map
563
</simpara></listitem></varlistentry>
564
<varlistentry><term><parameter>data</parameter> :</term>
565
<listitem><simpara> Pointer to <link linkend="gpointer"><type>gpointer</type></link> to return user data
566
</simpara></listitem></varlistentry>
567
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the shape rendering callback previously set on the context, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
568
if no shape rendering callback have been set.
570
</simpara></listitem></varlistentry>
571
</variablelist><para role="since">Since 1.18</para></refsect2>
572
<refsect2 id="pango-cairo-create-context" role="function" condition="since:1.22">
573
<title>pango_cairo_create_context ()</title>
574
<indexterm zone="pango-cairo-create-context" role="1.22"><primary sortas="pango_cairo_create_context">pango_cairo_create_context</primary></indexterm><programlisting><link linkend="PangoContext">PangoContext</link> * pango_cairo_create_context (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
576
Creates a context object set up to match the current transformation
577
and target surface of the Cairo context. This context can then be
578
used to create a layout using <link linkend="pango-layout-new"><function>pango_layout_new()</function></link>.
581
This function is a convenience function that creates a context using
582
the default font map, then updates it to <parameter>cr</parameter>. If you just need to
583
create a layout for use with <parameter>cr</parameter> and do not need to access <link linkend="PangoContext"><type>PangoContext</type></link>
584
directly, you can use <link linkend="pango-cairo-create-layout"><function>pango_cairo_create_layout()</function></link> instead.</para>
586
</para><variablelist role="params">
587
<varlistentry><term><parameter>cr</parameter> :</term>
588
<listitem><simpara> a Cairo context
589
</simpara></listitem></varlistentry>
590
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the newly created <link linkend="PangoContext"><type>PangoContext</type></link>. Free with
591
<link linkend="g-object-unref"><function>g_object_unref()</function></link>.
593
</simpara></listitem></varlistentry>
594
</variablelist><para role="since">Since 1.22</para></refsect2>
595
<refsect2 id="pango-cairo-update-context" role="function" condition="since:1.10">
596
<title>pango_cairo_update_context ()</title>
597
<indexterm zone="pango-cairo-update-context" role="1.10"><primary sortas="pango_cairo_update_context">pango_cairo_update_context</primary></indexterm><programlisting><link linkend="void">void</link> pango_cairo_update_context (<link linkend="cairo-t">cairo_t</link> *cr,
598
<link linkend="PangoContext">PangoContext</link> *context);</programlisting>
600
Updates a <link linkend="PangoContext"><type>PangoContext</type></link> previously created for use with Cairo to
601
match the current transformation and target surface of a Cairo
602
context. If any layouts have been created for the context,
603
it's necessary to call <link linkend="pango-layout-context-changed"><function>pango_layout_context_changed()</function></link> on those
606
</para><variablelist role="params">
607
<varlistentry><term><parameter>cr</parameter> :</term>
608
<listitem><simpara> a Cairo context
609
</simpara></listitem></varlistentry>
610
<varlistentry><term><parameter>context</parameter> :</term>
611
<listitem><simpara> a <link linkend="PangoContext"><type>PangoContext</type></link>, from a pangocairo font map
612
</simpara></listitem></varlistentry>
613
</variablelist><para role="since">Since 1.10</para></refsect2>
614
<refsect2 id="pango-cairo-create-layout" role="function" condition="since:1.10">
615
<title>pango_cairo_create_layout ()</title>
616
<indexterm zone="pango-cairo-create-layout" role="1.10"><primary sortas="pango_cairo_create_layout">pango_cairo_create_layout</primary></indexterm><programlisting><link linkend="PangoLayout">PangoLayout</link> * pango_cairo_create_layout (<link linkend="cairo-t">cairo_t</link> *cr);</programlisting>
618
Creates a layout object set up to match the current transformation
619
and target surface of the Cairo context. This layout can then be
620
used for text measurement with functions like
621
<link linkend="pango-layout-get-size"><function>pango_layout_get_size()</function></link> or drawing with functions like
622
<link linkend="pango-cairo-show-layout"><function>pango_cairo_show_layout()</function></link>. If you change the transformation
623
or target surface for <parameter>cr</parameter>, you need to call <link linkend="pango-cairo-update-layout"><function>pango_cairo_update_layout()</function></link>
626
This function is the most convenient way to use Cairo with Pango,
627
however it is slightly inefficient since it creates a separate
628
<link linkend="PangoContext"><type>PangoContext</type></link> object for each layout. This might matter in an
629
application that was laying out large amounts of text.</para>
631
</para><variablelist role="params">
632
<varlistentry><term><parameter>cr</parameter> :</term>
633
<listitem><simpara> a Cairo context
634
</simpara></listitem></varlistentry>
635
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the newly created <link linkend="PangoLayout"><type>PangoLayout</type></link>. Free with
636
<link linkend="g-object-unref"><function>g_object_unref()</function></link>.
638
</simpara></listitem></varlistentry>
639
</variablelist><para role="since">Since 1.10</para></refsect2>
640
<refsect2 id="pango-cairo-update-layout" role="function" condition="since:1.10">
641
<title>pango_cairo_update_layout ()</title>
642
<indexterm zone="pango-cairo-update-layout" role="1.10"><primary sortas="pango_cairo_update_layout">pango_cairo_update_layout</primary></indexterm><programlisting><link linkend="void">void</link> pango_cairo_update_layout (<link linkend="cairo-t">cairo_t</link> *cr,
643
<link linkend="PangoLayout">PangoLayout</link> *layout);</programlisting>
645
Updates the private <link linkend="PangoContext"><type>PangoContext</type></link> of a <link linkend="PangoLayout"><type>PangoLayout</type></link> created with
646
<link linkend="pango-cairo-create-layout"><function>pango_cairo_create_layout()</function></link> to match the current transformation
647
and target surface of a Cairo context.</para>
649
</para><variablelist role="params">
650
<varlistentry><term><parameter>cr</parameter> :</term>
651
<listitem><simpara> a Cairo context
652
</simpara></listitem></varlistentry>
653
<varlistentry><term><parameter>layout</parameter> :</term>
654
<listitem><simpara> a <link linkend="PangoLayout"><type>PangoLayout</type></link>, from <link linkend="pango-cairo-create-layout"><function>pango_cairo_create_layout()</function></link>
655
</simpara></listitem></varlistentry>
656
</variablelist><para role="since">Since 1.10</para></refsect2>
657
<refsect2 id="pango-cairo-show-glyph-string" role="function" condition="since:1.10">
658
<title>pango_cairo_show_glyph_string ()</title>
659
<indexterm zone="pango-cairo-show-glyph-string" role="1.10"><primary sortas="pango_cairo_show_glyph_string">pango_cairo_show_glyph_string</primary></indexterm><programlisting><link linkend="void">void</link> pango_cairo_show_glyph_string (<link linkend="cairo-t">cairo_t</link> *cr,
660
<link linkend="PangoFont">PangoFont</link> *font,
661
<link linkend="PangoGlyphString">PangoGlyphString</link> *glyphs);</programlisting>
663
Draws the glyphs in <parameter>glyphs</parameter> in the specified cairo context.
664
The origin of the glyphs (the left edge of the baseline) will
665
be drawn at the current point of the cairo context.</para>
667
</para><variablelist role="params">
668
<varlistentry><term><parameter>cr</parameter> :</term>
669
<listitem><simpara> a Cairo context
670
</simpara></listitem></varlistentry>
671
<varlistentry><term><parameter>font</parameter> :</term>
672
<listitem><simpara> a <link linkend="PangoFont"><type>PangoFont</type></link> from a <link linkend="PangoCairoFontMap"><type>PangoCairoFontMap</type></link>
673
</simpara></listitem></varlistentry>
674
<varlistentry><term><parameter>glyphs</parameter> :</term>
675
<listitem><simpara> a <link linkend="PangoGlyphString"><type>PangoGlyphString</type></link>
676
</simpara></listitem></varlistentry>
677
</variablelist><para role="since">Since 1.10</para></refsect2>
678
<refsect2 id="pango-cairo-show-glyph-item" role="function" condition="since:1.22">
679
<title>pango_cairo_show_glyph_item ()</title>
680
<indexterm zone="pango-cairo-show-glyph-item" role="1.22"><primary sortas="pango_cairo_show_glyph_item">pango_cairo_show_glyph_item</primary></indexterm><programlisting><link linkend="void">void</link> pango_cairo_show_glyph_item (<link linkend="cairo-t">cairo_t</link> *cr,
681
const <link linkend="char">char</link> *text,
682
<link linkend="PangoGlyphItem">PangoGlyphItem</link> *glyph_item);</programlisting>
684
Draws the glyphs in <parameter>glyph_item</parameter> in the specified cairo context,
685
embedding the text associated with the glyphs in the output if the
686
output format supports it (PDF for example), otherwise it acts
687
similar to <link linkend="pango-cairo-show-glyph-string"><function>pango_cairo_show_glyph_string()</function></link>.
690
The origin of the glyphs (the left edge of the baseline) will
691
be drawn at the current point of the cairo context.
694
Note that <parameter>text</parameter> is the start of the text for layout, which is then
695
indexed by <literal><parameter>glyph_item->item->offset</parameter></literal>.</para>
697
</para><variablelist role="params">
698
<varlistentry><term><parameter>cr</parameter> :</term>
699
<listitem><simpara> a Cairo context
700
</simpara></listitem></varlistentry>
701
<varlistentry><term><parameter>text</parameter> :</term>
702
<listitem><simpara> the UTF-8 text that <parameter>glyph_item</parameter> refers to
703
</simpara></listitem></varlistentry>
704
<varlistentry><term><parameter>glyph_item</parameter> :</term>
705
<listitem><simpara> a <link linkend="PangoGlyphItem"><type>PangoGlyphItem</type></link>
706
</simpara></listitem></varlistentry>
707
</variablelist><para role="since">Since 1.22</para></refsect2>
708
<refsect2 id="pango-cairo-show-layout-line" role="function" condition="since:1.10">
709
<title>pango_cairo_show_layout_line ()</title>
710
<indexterm zone="pango-cairo-show-layout-line" role="1.10"><primary sortas="pango_cairo_show_layout_line">pango_cairo_show_layout_line</primary></indexterm><programlisting><link linkend="void">void</link> pango_cairo_show_layout_line (<link linkend="cairo-t">cairo_t</link> *cr,
711
<link linkend="PangoLayoutLine">PangoLayoutLine</link> *line);</programlisting>
713
Draws a <link linkend="PangoLayoutLine"><type>PangoLayoutLine</type></link> in the specified cairo context.
714
The origin of the glyphs (the left edge of the line) will
715
be drawn at the current point of the cairo context.</para>
717
</para><variablelist role="params">
718
<varlistentry><term><parameter>cr</parameter> :</term>
719
<listitem><simpara> a Cairo context
720
</simpara></listitem></varlistentry>
721
<varlistentry><term><parameter>line</parameter> :</term>
722
<listitem><simpara> a <link linkend="PangoLayoutLine"><type>PangoLayoutLine</type></link>
723
</simpara></listitem></varlistentry>
724
</variablelist><para role="since">Since 1.10</para></refsect2>
725
<refsect2 id="pango-cairo-show-layout" role="function" condition="since:1.10">
726
<title>pango_cairo_show_layout ()</title>
727
<indexterm zone="pango-cairo-show-layout" role="1.10"><primary sortas="pango_cairo_show_layout">pango_cairo_show_layout</primary></indexterm><programlisting><link linkend="void">void</link> pango_cairo_show_layout (<link linkend="cairo-t">cairo_t</link> *cr,
728
<link linkend="PangoLayout">PangoLayout</link> *layout);</programlisting>
730
Draws a <link linkend="PangoLayoutLine"><type>PangoLayoutLine</type></link> in the specified cairo context.
731
The top-left corner of the <link linkend="PangoLayout"><type>PangoLayout</type></link> will be drawn
732
at the current point of the cairo context.</para>
734
</para><variablelist role="params">
735
<varlistentry><term><parameter>cr</parameter> :</term>
736
<listitem><simpara> a Cairo context
737
</simpara></listitem></varlistentry>
738
<varlistentry><term><parameter>layout</parameter> :</term>
739
<listitem><simpara> a Pango layout
740
</simpara></listitem></varlistentry>
741
</variablelist><para role="since">Since 1.10</para></refsect2>
742
<refsect2 id="pango-cairo-show-error-underline" role="function" condition="since:1.14">
743
<title>pango_cairo_show_error_underline ()</title>
744
<indexterm zone="pango-cairo-show-error-underline" role="1.14"><primary sortas="pango_cairo_show_error_underline">pango_cairo_show_error_underline</primary></indexterm><programlisting><link linkend="void">void</link> pango_cairo_show_error_underline (<link linkend="cairo-t">cairo_t</link> *cr,
745
<link linkend="double">double</link> x,
746
<link linkend="double">double</link> y,
747
<link linkend="double">double</link> width,
748
<link linkend="double">double</link> height);</programlisting>
750
Draw a squiggly line in the specified cairo context that approximately
751
covers the given rectangle in the style of an underline used to indicate a
752
spelling error. (The width of the underline is rounded to an integer
753
number of up/down segments and the resulting rectangle is centered in the
754
original rectangle)</para>
756
</para><variablelist role="params">
757
<varlistentry><term><parameter>cr</parameter> :</term>
758
<listitem><simpara> a Cairo context
759
</simpara></listitem></varlistentry>
760
<varlistentry><term><parameter>x</parameter> :</term>
761
<listitem><simpara> The X coordinate of one corner of the rectangle
762
</simpara></listitem></varlistentry>
763
<varlistentry><term><parameter>y</parameter> :</term>
764
<listitem><simpara> The Y coordinate of one corner of the rectangle
765
</simpara></listitem></varlistentry>
766
<varlistentry><term><parameter>width</parameter> :</term>
767
<listitem><simpara> Non-negative width of the rectangle
768
</simpara></listitem></varlistentry>
769
<varlistentry><term><parameter>height</parameter> :</term>
770
<listitem><simpara> Non-negative height of the rectangle
771
</simpara></listitem></varlistentry>
772
</variablelist><para role="since">Since 1.14</para></refsect2>
773
<refsect2 id="pango-cairo-glyph-string-path" role="function" condition="since:1.10">
774
<title>pango_cairo_glyph_string_path ()</title>
775
<indexterm zone="pango-cairo-glyph-string-path" role="1.10"><primary sortas="pango_cairo_glyph_string_path">pango_cairo_glyph_string_path</primary></indexterm><programlisting><link linkend="void">void</link> pango_cairo_glyph_string_path (<link linkend="cairo-t">cairo_t</link> *cr,
776
<link linkend="PangoFont">PangoFont</link> *font,
777
<link linkend="PangoGlyphString">PangoGlyphString</link> *glyphs);</programlisting>
779
Adds the glyphs in <parameter>glyphs</parameter> to the current path in the specified
780
cairo context. The origin of the glyphs (the left edge of the baseline)
781
will be at the current point of the cairo context.</para>
783
</para><variablelist role="params">
784
<varlistentry><term><parameter>cr</parameter> :</term>
785
<listitem><simpara> a Cairo context
786
</simpara></listitem></varlistentry>
787
<varlistentry><term><parameter>font</parameter> :</term>
788
<listitem><simpara> a <link linkend="PangoFont"><type>PangoFont</type></link> from a <link linkend="PangoCairoFontMap"><type>PangoCairoFontMap</type></link>
789
</simpara></listitem></varlistentry>
790
<varlistentry><term><parameter>glyphs</parameter> :</term>
791
<listitem><simpara> a <link linkend="PangoGlyphString"><type>PangoGlyphString</type></link>
792
</simpara></listitem></varlistentry>
793
</variablelist><para role="since">Since 1.10</para></refsect2>
794
<refsect2 id="pango-cairo-layout-line-path" role="function" condition="since:1.10">
795
<title>pango_cairo_layout_line_path ()</title>
796
<indexterm zone="pango-cairo-layout-line-path" role="1.10"><primary sortas="pango_cairo_layout_line_path">pango_cairo_layout_line_path</primary></indexterm><programlisting><link linkend="void">void</link> pango_cairo_layout_line_path (<link linkend="cairo-t">cairo_t</link> *cr,
797
<link linkend="PangoLayoutLine">PangoLayoutLine</link> *line);</programlisting>
799
Adds the text in <link linkend="PangoLayoutLine"><type>PangoLayoutLine</type></link> to the current path in the
800
specified cairo context. The origin of the glyphs (the left edge
801
of the line) will be at the current point of the cairo context.</para>
803
</para><variablelist role="params">
804
<varlistentry><term><parameter>cr</parameter> :</term>
805
<listitem><simpara> a Cairo context
806
</simpara></listitem></varlistentry>
807
<varlistentry><term><parameter>line</parameter> :</term>
808
<listitem><simpara> a <link linkend="PangoLayoutLine"><type>PangoLayoutLine</type></link>
809
</simpara></listitem></varlistentry>
810
</variablelist><para role="since">Since 1.10</para></refsect2>
811
<refsect2 id="pango-cairo-layout-path" role="function" condition="since:1.10">
812
<title>pango_cairo_layout_path ()</title>
813
<indexterm zone="pango-cairo-layout-path" role="1.10"><primary sortas="pango_cairo_layout_path">pango_cairo_layout_path</primary></indexterm><programlisting><link linkend="void">void</link> pango_cairo_layout_path (<link linkend="cairo-t">cairo_t</link> *cr,
814
<link linkend="PangoLayout">PangoLayout</link> *layout);</programlisting>
816
Adds the text in a <link linkend="PangoLayout"><type>PangoLayout</type></link> to the current path in the
817
specified cairo context. The top-left corner of the <link linkend="PangoLayout"><type>PangoLayout</type></link>
818
will be at the current point of the cairo context.</para>
820
</para><variablelist role="params">
821
<varlistentry><term><parameter>cr</parameter> :</term>
822
<listitem><simpara> a Cairo context
823
</simpara></listitem></varlistentry>
824
<varlistentry><term><parameter>layout</parameter> :</term>
825
<listitem><simpara> a Pango layout
826
</simpara></listitem></varlistentry>
827
</variablelist><para role="since">Since 1.10</para></refsect2>
828
<refsect2 id="pango-cairo-error-underline-path" role="function" condition="since:1.14">
829
<title>pango_cairo_error_underline_path ()</title>
830
<indexterm zone="pango-cairo-error-underline-path" role="1.14"><primary sortas="pango_cairo_error_underline_path">pango_cairo_error_underline_path</primary></indexterm><programlisting><link linkend="void">void</link> pango_cairo_error_underline_path (<link linkend="cairo-t">cairo_t</link> *cr,
831
<link linkend="double">double</link> x,
832
<link linkend="double">double</link> y,
833
<link linkend="double">double</link> width,
834
<link linkend="double">double</link> height);</programlisting>
836
Add a squiggly line to the current path in the specified cairo context that
837
approximately covers the given rectangle in the style of an underline used
838
to indicate a spelling error. (The width of the underline is rounded to an
839
integer number of up/down segments and the resulting rectangle is centered
840
in the original rectangle)</para>
842
</para><variablelist role="params">
843
<varlistentry><term><parameter>cr</parameter> :</term>
844
<listitem><simpara> a Cairo context
845
</simpara></listitem></varlistentry>
846
<varlistentry><term><parameter>x</parameter> :</term>
847
<listitem><simpara> The X coordinate of one corner of the rectangle
848
</simpara></listitem></varlistentry>
849
<varlistentry><term><parameter>y</parameter> :</term>
850
<listitem><simpara> The Y coordinate of one corner of the rectangle
851
</simpara></listitem></varlistentry>
852
<varlistentry><term><parameter>width</parameter> :</term>
853
<listitem><simpara> Non-negative width of the rectangle
854
</simpara></listitem></varlistentry>
855
<varlistentry><term><parameter>height</parameter> :</term>
856
<listitem><simpara> Non-negative height of the rectangle
857
</simpara></listitem></varlistentry>
858
</variablelist><para role="since">Since 1.14</para></refsect2>