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>Layout Objects</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.74.3">
7 <link rel="home" href="index.html" title="Pango Reference Manual">
8 <link rel="up" href="pango.html" title="Basic Pango Interfaces">
9 <link rel="prev" href="PangoMarkupFormat.html" title="Text Attribute Markup">
10 <link rel="next" href="pango-Scripts-and-Languages.html" title="Scripts and Languages">
11 <meta name="generator" content="GTK-Doc V1.11 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 <link rel="chapter" href="pango.html" title="Basic Pango Interfaces">
14 <link rel="chapter" href="rendering.html" title="Rendering with Pango">
15 <link rel="chapter" href="lowlevel.html" title="Low Level Functionality">
16 <link rel="chapter" href="tools.html" title="Pango Tools">
17 <link rel="chapter" href="pango-hierarchy.html" title="Object Hierarchy">
18 <link rel="index" href="index-all.html" title="Index">
19 <link rel="index" href="index-deprecated.html" title="Index of deprecated symbols">
20 <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2">
21 <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4">
22 <link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6">
23 <link rel="index" href="index-1.8.html" title="Index of new symbols in 1.8">
24 <link rel="index" href="index-1.10.html" title="Index of new symbols in 1.10">
25 <link rel="index" href="index-1.12.html" title="Index of new symbols in 1.12">
26 <link rel="index" href="index-1.14.html" title="Index of new symbols in 1.14">
27 <link rel="index" href="index-1.16.html" title="Index of new symbols in 1.16">
28 <link rel="index" href="index-1.18.html" title="Index of new symbols in 1.18">
29 <link rel="index" href="index-1.20.html" title="Index of new symbols in 1.20">
30 <link rel="index" href="index-1.22.html" title="Index of new symbols in 1.22">
31 <link rel="index" href="index-1.24.html" title="Index of new symbols in 1.24">
32 <link rel="index" href="index-1.26.html" title="Index of new symbols in 1.26">
34 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
35 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
37 <td><a accesskey="p" href="PangoMarkupFormat.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
38 <td><a accesskey="u" href="pango.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
39 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
40 <th width="100%" align="center">Pango Reference Manual</th>
41 <td><a accesskey="n" href="pango-Scripts-and-Languages.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
43 <tr><td colspan="5" class="shortcuts">
44 <a href="#pango-Layout-Objects.synopsis" class="shortcut">Top</a>
46 <a href="#pango-Layout-Objects.description" class="shortcut">Description</a>
48 <a href="#pango-Layout-Objects.object-hierarchy" class="shortcut">Object Hierarchy</a>
51 <div class="refentry" lang="en">
52 <a name="pango-Layout-Objects"></a><div class="titlepage"></div>
53 <div class="refnamediv"><table width="100%"><tr>
55 <h2><span class="refentrytitle"><a name="pango-Layout-Objects.top_of_page"></a>Layout Objects</span></h2>
56 <p>Layout Objects — High-level layout driver objects</p>
58 <td valign="top" align="right"></td>
60 <div class="refsynopsisdiv">
61 <a name="pango-Layout-Objects.synopsis"></a><h2>Synopsis</h2>
62 <a name="PangoLayout"></a><pre class="synopsis">
63 <a class="link" href="pango-Layout-Objects.html#PangoLayout-struct" title="PangoLayout">PangoLayout</a>;
64 <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a>;
65 <a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> * <a class="link" href="pango-Layout-Objects.html#pango-layout-new" title="pango_layout_new ()">pango_layout_new</a> (<a class="link" href="pango-Text-Processing.html#PangoContext">PangoContext</a> *context);
66 <a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> * <a class="link" href="pango-Layout-Objects.html#pango-layout-copy" title="pango_layout_copy ()">pango_layout_copy</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *src);
67 <a class="link" href="pango-Text-Processing.html#PangoContext">PangoContext</a> * <a class="link" href="pango-Layout-Objects.html#pango-layout-get-context" title="pango_layout_get_context ()">pango_layout_get_context</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
68 void <a class="link" href="pango-Layout-Objects.html#pango-layout-context-changed" title="pango_layout_context_changed ()">pango_layout_context_changed</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
69 void <a class="link" href="pango-Layout-Objects.html#pango-layout-set-text" title="pango_layout_set_text ()">pango_layout_set_text</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
72 const char * <a class="link" href="pango-Layout-Objects.html#pango-layout-get-text" title="pango_layout_get_text ()">pango_layout_get_text</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
73 void <a class="link" href="pango-Layout-Objects.html#pango-layout-set-markup" title="pango_layout_set_markup ()">pango_layout_set_markup</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
76 void <a class="link" href="pango-Layout-Objects.html#pango-layout-set-markup-with-accel" title="pango_layout_set_markup_with_accel ()">pango_layout_set_markup_with_accel</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
80 href="http://library.gnome.org/devel/glib/unstable/glib-Unicode-Manipulation.html#gunichar"
81 >gunichar</a> accel_marker,
83 href="http://library.gnome.org/devel/glib/unstable/glib-Unicode-Manipulation.html#gunichar"
84 >gunichar</a> *accel_char);
85 void <a class="link" href="pango-Layout-Objects.html#pango-layout-set-attributes" title="pango_layout_set_attributes ()">pango_layout_set_attributes</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
86 <a class="link" href="pango-Text-Attributes.html#PangoAttrList" title="PangoAttrList">PangoAttrList</a> *attrs);
87 <a class="link" href="pango-Text-Attributes.html#PangoAttrList" title="PangoAttrList">PangoAttrList</a> * <a class="link" href="pango-Layout-Objects.html#pango-layout-get-attributes" title="pango_layout_get_attributes ()">pango_layout_get_attributes</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
88 void <a class="link" href="pango-Layout-Objects.html#pango-layout-set-font-description" title="pango_layout_set_font_description ()">pango_layout_set_font_description</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
89 const <a class="link" href="pango-Fonts.html#PangoFontDescription" title="PangoFontDescription">PangoFontDescription</a> *desc);
90 const <a class="link" href="pango-Fonts.html#PangoFontDescription" title="PangoFontDescription">PangoFontDescription</a> * <a class="link" href="pango-Layout-Objects.html#pango-layout-get-font-description" title="pango_layout_get_font_description ()">pango_layout_get_font_description</a>
91 (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
92 void <a class="link" href="pango-Layout-Objects.html#pango-layout-set-width" title="pango_layout_set_width ()">pango_layout_set_width</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
94 int <a class="link" href="pango-Layout-Objects.html#pango-layout-get-width" title="pango_layout_get_width ()">pango_layout_get_width</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
95 void <a class="link" href="pango-Layout-Objects.html#pango-layout-set-height" title="pango_layout_set_height ()">pango_layout_set_height</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
97 int <a class="link" href="pango-Layout-Objects.html#pango-layout-get-height" title="pango_layout_get_height ()">pango_layout_get_height</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
98 void <a class="link" href="pango-Layout-Objects.html#pango-layout-set-wrap" title="pango_layout_set_wrap ()">pango_layout_set_wrap</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
99 <a class="link" href="pango-Layout-Objects.html#PangoWrapMode" title="enum PangoWrapMode">PangoWrapMode</a> wrap);
100 <a class="link" href="pango-Layout-Objects.html#PangoWrapMode" title="enum PangoWrapMode">PangoWrapMode</a> <a class="link" href="pango-Layout-Objects.html#pango-layout-get-wrap" title="pango_layout_get_wrap ()">pango_layout_get_wrap</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
102 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
103 >gboolean</a> <a class="link" href="pango-Layout-Objects.html#pango-layout-is-wrapped" title="pango_layout_is_wrapped ()">pango_layout_is_wrapped</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
104 enum <a class="link" href="pango-Layout-Objects.html#PangoWrapMode" title="enum PangoWrapMode">PangoWrapMode</a>;
105 #define <a class="link" href="pango-Layout-Objects.html#PANGO-TYPE-WRAP-MODE--CAPS" title="PANGO_TYPE_WRAP_MODE">PANGO_TYPE_WRAP_MODE</a>
106 void <a class="link" href="pango-Layout-Objects.html#pango-layout-set-ellipsize" title="pango_layout_set_ellipsize ()">pango_layout_set_ellipsize</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
107 <a class="link" href="pango-Layout-Objects.html#PangoEllipsizeMode" title="enum PangoEllipsizeMode">PangoEllipsizeMode</a> ellipsize);
108 <a class="link" href="pango-Layout-Objects.html#PangoEllipsizeMode" title="enum PangoEllipsizeMode">PangoEllipsizeMode</a> <a class="link" href="pango-Layout-Objects.html#pango-layout-get-ellipsize" title="pango_layout_get_ellipsize ()">pango_layout_get_ellipsize</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
110 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
111 >gboolean</a> <a class="link" href="pango-Layout-Objects.html#pango-layout-is-ellipsized" title="pango_layout_is_ellipsized ()">pango_layout_is_ellipsized</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
112 enum <a class="link" href="pango-Layout-Objects.html#PangoEllipsizeMode" title="enum PangoEllipsizeMode">PangoEllipsizeMode</a>;
113 #define <a class="link" href="pango-Layout-Objects.html#PANGO-TYPE-ELLIPSIZE-MODE--CAPS" title="PANGO_TYPE_ELLIPSIZE_MODE">PANGO_TYPE_ELLIPSIZE_MODE</a>
114 void <a class="link" href="pango-Layout-Objects.html#pango-layout-set-indent" title="pango_layout_set_indent ()">pango_layout_set_indent</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
116 int <a class="link" href="pango-Layout-Objects.html#pango-layout-get-indent" title="pango_layout_get_indent ()">pango_layout_get_indent</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
117 int <a class="link" href="pango-Layout-Objects.html#pango-layout-get-spacing" title="pango_layout_get_spacing ()">pango_layout_get_spacing</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
118 void <a class="link" href="pango-Layout-Objects.html#pango-layout-set-spacing" title="pango_layout_set_spacing ()">pango_layout_set_spacing</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
120 void <a class="link" href="pango-Layout-Objects.html#pango-layout-set-justify" title="pango_layout_set_justify ()">pango_layout_set_justify</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
122 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
123 >gboolean</a> justify);
125 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
126 >gboolean</a> <a class="link" href="pango-Layout-Objects.html#pango-layout-get-justify" title="pango_layout_get_justify ()">pango_layout_get_justify</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
127 void <a class="link" href="pango-Layout-Objects.html#pango-layout-set-auto-dir" title="pango_layout_set_auto_dir ()">pango_layout_set_auto_dir</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
129 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
130 >gboolean</a> auto_dir);
132 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
133 >gboolean</a> <a class="link" href="pango-Layout-Objects.html#pango-layout-get-auto-dir" title="pango_layout_get_auto_dir ()">pango_layout_get_auto_dir</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
134 void <a class="link" href="pango-Layout-Objects.html#pango-layout-set-alignment" title="pango_layout_set_alignment ()">pango_layout_set_alignment</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
135 <a class="link" href="pango-Layout-Objects.html#PangoAlignment" title="enum PangoAlignment">PangoAlignment</a> alignment);
136 <a class="link" href="pango-Layout-Objects.html#PangoAlignment" title="enum PangoAlignment">PangoAlignment</a> <a class="link" href="pango-Layout-Objects.html#pango-layout-get-alignment" title="pango_layout_get_alignment ()">pango_layout_get_alignment</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
137 void <a class="link" href="pango-Layout-Objects.html#pango-layout-set-tabs" title="pango_layout_set_tabs ()">pango_layout_set_tabs</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
138 <a class="link" href="pango-Tab-Stops.html#PangoTabArray" title="PangoTabArray">PangoTabArray</a> *tabs);
139 <a class="link" href="pango-Tab-Stops.html#PangoTabArray" title="PangoTabArray">PangoTabArray</a>* <a class="link" href="pango-Layout-Objects.html#pango-layout-get-tabs" title="pango_layout_get_tabs ()">pango_layout_get_tabs</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
140 void <a class="link" href="pango-Layout-Objects.html#pango-layout-set-single-paragraph-mode" title="pango_layout_set_single_paragraph_mode ()">pango_layout_set_single_paragraph_mode</a>
141 (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
143 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
144 >gboolean</a> setting);
146 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
147 >gboolean</a> <a class="link" href="pango-Layout-Objects.html#pango-layout-get-single-paragraph-mode" title="pango_layout_get_single_paragraph_mode ()">pango_layout_get_single_paragraph_mode</a>
148 (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
149 enum <a class="link" href="pango-Layout-Objects.html#PangoAlignment" title="enum PangoAlignment">PangoAlignment</a>;
150 #define <a class="link" href="pango-Layout-Objects.html#PANGO-TYPE-ALIGNMENT--CAPS" title="PANGO_TYPE_ALIGNMENT">PANGO_TYPE_ALIGNMENT</a>
151 int <a class="link" href="pango-Layout-Objects.html#pango-layout-get-unknown-glyphs-count" title="pango_layout_get_unknown_glyphs_count ()">pango_layout_get_unknown_glyphs_count</a>
152 (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
153 void <a class="link" href="pango-Layout-Objects.html#pango-layout-get-log-attrs" title="pango_layout_get_log_attrs ()">pango_layout_get_log_attrs</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
154 <a class="link" href="pango-Text-Processing.html#PangoLogAttr" title="PangoLogAttr">PangoLogAttr</a> **attrs,
156 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
158 void <a class="link" href="pango-Layout-Objects.html#pango-layout-index-to-pos" title="pango_layout_index_to_pos ()">pango_layout_index_to_pos</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
160 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *pos);
161 void <a class="link" href="pango-Layout-Objects.html#pango-layout-index-to-line-x" title="pango_layout_index_to_line_x ()">pango_layout_index_to_line_x</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
164 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
165 >gboolean</a> trailing,
169 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
170 >gboolean</a> <a class="link" href="pango-Layout-Objects.html#pango-layout-xy-to-index" title="pango_layout_xy_to_index ()">pango_layout_xy_to_index</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
175 void <a class="link" href="pango-Layout-Objects.html#pango-layout-get-cursor-pos" title="pango_layout_get_cursor_pos ()">pango_layout_get_cursor_pos</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
177 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *strong_pos,
178 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *weak_pos);
179 void <a class="link" href="pango-Layout-Objects.html#pango-layout-move-cursor-visually" title="pango_layout_move_cursor_visually ()">pango_layout_move_cursor_visually</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
181 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
182 >gboolean</a> strong,
188 void <a class="link" href="pango-Layout-Objects.html#pango-layout-get-extents" title="pango_layout_get_extents ()">pango_layout_get_extents</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
189 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *ink_rect,
190 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *logical_rect);
191 void <a class="link" href="pango-Layout-Objects.html#pango-layout-get-pixel-extents" title="pango_layout_get_pixel_extents ()">pango_layout_get_pixel_extents</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
192 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *ink_rect,
193 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *logical_rect);
194 void <a class="link" href="pango-Layout-Objects.html#pango-layout-get-size" title="pango_layout_get_size ()">pango_layout_get_size</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
197 void <a class="link" href="pango-Layout-Objects.html#pango-layout-get-pixel-size" title="pango_layout_get_pixel_size ()">pango_layout_get_pixel_size</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
200 int <a class="link" href="pango-Layout-Objects.html#pango-layout-get-baseline" title="pango_layout_get_baseline ()">pango_layout_get_baseline</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
201 int <a class="link" href="pango-Layout-Objects.html#pango-layout-get-line-count" title="pango_layout_get_line_count ()">pango_layout_get_line_count</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
202 <a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> * <a class="link" href="pango-Layout-Objects.html#pango-layout-get-line" title="pango_layout_get_line ()">pango_layout_get_line</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
204 <a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> * <a class="link" href="pango-Layout-Objects.html#pango-layout-get-line-readonly" title="pango_layout_get_line_readonly ()">pango_layout_get_line_readonly</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
207 href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"
208 >GSList</a> * <a class="link" href="pango-Layout-Objects.html#pango-layout-get-lines" title="pango_layout_get_lines ()">pango_layout_get_lines</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
210 href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"
211 >GSList</a> * <a class="link" href="pango-Layout-Objects.html#pango-layout-get-lines-readonly" title="pango_layout_get_lines_readonly ()">pango_layout_get_lines_readonly</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
212 <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> * <a class="link" href="pango-Layout-Objects.html#pango-layout-get-iter" title="pango_layout_get_iter ()">pango_layout_get_iter</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);
213 <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> * <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-copy" title="pango_layout_iter_copy ()">pango_layout_iter_copy</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);
214 void <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-free" title="pango_layout_iter_free ()">pango_layout_iter_free</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);
216 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
217 >gboolean</a> <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-next-run" title="pango_layout_iter_next_run ()">pango_layout_iter_next_run</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);
219 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
220 >gboolean</a> <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-next-char" title="pango_layout_iter_next_char ()">pango_layout_iter_next_char</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);
222 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
223 >gboolean</a> <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-next-cluster" title="pango_layout_iter_next_cluster ()">pango_layout_iter_next_cluster</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);
225 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
226 >gboolean</a> <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-next-line" title="pango_layout_iter_next_line ()">pango_layout_iter_next_line</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);
228 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
229 >gboolean</a> <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-at-last-line" title="pango_layout_iter_at_last_line ()">pango_layout_iter_at_last_line</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);
230 int <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-get-index" title="pango_layout_iter_get_index ()">pango_layout_iter_get_index</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);
231 int <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-get-baseline" title="pango_layout_iter_get_baseline ()">pango_layout_iter_get_baseline</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);
232 <a class="link" href="pango-Layout-Objects.html#PangoLayoutRun" title="PangoLayoutRun">PangoLayoutRun</a> * <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-get-run" title="pango_layout_iter_get_run ()">pango_layout_iter_get_run</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);
233 <a class="link" href="pango-Layout-Objects.html#PangoLayoutRun" title="PangoLayoutRun">PangoLayoutRun</a> * <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-get-run-readonly" title="pango_layout_iter_get_run_readonly ()">pango_layout_iter_get_run_readonly</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);
234 <a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> * <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-get-line" title="pango_layout_iter_get_line ()">pango_layout_iter_get_line</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);
235 <a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> * <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-get-line-readonly" title="pango_layout_iter_get_line_readonly ()">pango_layout_iter_get_line_readonly</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);
236 <a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> * <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-get-layout" title="pango_layout_iter_get_layout ()">pango_layout_iter_get_layout</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);
237 void <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-get-char-extents" title="pango_layout_iter_get_char_extents ()">pango_layout_iter_get_char_extents</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter,
238 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *logical_rect);
239 void <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-get-cluster-extents" title="pango_layout_iter_get_cluster_extents ()">pango_layout_iter_get_cluster_extents</a>
240 (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter,
241 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *ink_rect,
242 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *logical_rect);
243 void <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-get-run-extents" title="pango_layout_iter_get_run_extents ()">pango_layout_iter_get_run_extents</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter,
244 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *ink_rect,
245 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *logical_rect);
246 void <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-get-line-yrange" title="pango_layout_iter_get_line_yrange ()">pango_layout_iter_get_line_yrange</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter,
249 void <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-get-line-extents" title="pango_layout_iter_get_line_extents ()">pango_layout_iter_get_line_extents</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter,
250 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *ink_rect,
251 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *logical_rect);
252 void <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-get-layout-extents" title="pango_layout_iter_get_layout_extents ()">pango_layout_iter_get_layout_extents</a>
253 (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter,
254 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *ink_rect,
255 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *logical_rect);
257 <a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a>;
258 typedef <a class="link" href="pango-Layout-Objects.html#PangoLayoutRun" title="PangoLayoutRun">PangoLayoutRun</a>;
259 <a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> * <a class="link" href="pango-Layout-Objects.html#pango-layout-line-ref" title="pango_layout_line_ref ()">pango_layout_line_ref</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> *line);
260 void <a class="link" href="pango-Layout-Objects.html#pango-layout-line-unref" title="pango_layout_line_unref ()">pango_layout_line_unref</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> *line);
261 void <a class="link" href="pango-Layout-Objects.html#pango-layout-line-get-extents" title="pango_layout_line_get_extents ()">pango_layout_line_get_extents</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> *line,
262 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *ink_rect,
263 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *logical_rect);
264 void <a class="link" href="pango-Layout-Objects.html#pango-layout-line-get-pixel-extents" title="pango_layout_line_get_pixel_extents ()">pango_layout_line_get_pixel_extents</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> *layout_line,
265 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *ink_rect,
266 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *logical_rect);
267 void <a class="link" href="pango-Layout-Objects.html#pango-layout-line-index-to-x" title="pango_layout_line_index_to_x ()">pango_layout_line_index_to_x</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> *line,
270 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
271 >gboolean</a> trailing,
274 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
275 >gboolean</a> <a class="link" href="pango-Layout-Objects.html#pango-layout-line-x-to-index" title="pango_layout_line_x_to_index ()">pango_layout_line_x_to_index</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> *line,
279 void <a class="link" href="pango-Layout-Objects.html#pango-layout-line-get-x-ranges" title="pango_layout_line_get_x_ranges ()">pango_layout_line_get_x_ranges</a> (<a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> *line,
286 <div class="refsect1" lang="en">
287 <a name="pango-Layout-Objects.object-hierarchy"></a><h2>Object Hierarchy</h2>
288 <pre class="synopsis">
290 href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"
295 <div class="refsect1" lang="en">
296 <a name="pango-Layout-Objects.description"></a><h2>Description</h2>
298 While complete access to the layout capabilities of Pango is provided
299 using the detailed interfaces for itemization and shaping, using
300 that functionality directly involves writing a fairly large amount
301 of code. The objects and functions in this section provide a
302 high-level driver for formatting entire paragraphs of text
306 <div class="refsect1" lang="en">
307 <a name="pango-Layout-Objects.details"></a><h2>Details</h2>
308 <div class="refsect2" lang="en">
309 <a name="PangoLayout-struct"></a><h3>PangoLayout</h3>
310 <pre class="programlisting">typedef struct _PangoLayout PangoLayout;</pre>
312 The <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a> structure represents an entire paragraph
313 of text. It is initialized with a <a class="link" href="pango-Text-Processing.html#PangoContext"><span class="type">PangoContext</span></a>, UTF-8 string
314 and set of attributes for that string. Once that is done, the
315 set of formatted lines can be extracted from the object,
316 the layout can be rendered, and conversion between logical
317 character positions within the layout's text, and the physical
318 position of the resulting glyphs can be made.
321 There are also a number of parameters to adjust the formatting
322 of a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>, which are illustrated in <a class="xref" href="pango-Layout-Objects.html#parameters" title="Figure 1. Adjustable parameters for a PangoLayout">Figure 1, “Adjustable parameters for a PangoLayout”</a>.
323 It is possible, as well, to ignore the 2-D setup, and simply
324 treat the results of a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a> as a list of lines.
327 <a name="parameters"></a><p class="title"><b>Figure 1. Adjustable parameters for a PangoLayout</b></p>
328 <div class="figure-contents"><div><img src="layout.gif" alt="Adjustable parameters for a PangoLayout"></div></div>
330 <br class="figure-break"><p>
331 The <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a> structure is opaque, and has no user-visible
336 <div class="refsect2" lang="en">
337 <a name="PangoLayoutIter"></a><h3>PangoLayoutIter</h3>
338 <pre class="programlisting">typedef struct _PangoLayoutIter PangoLayoutIter;</pre>
340 A <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a> structure can be used to
341 iterate over the visual extents of a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>.
344 The <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a> structure is opaque, and
345 has no user-visible fields.
349 <div class="refsect2" lang="en">
350 <a name="pango-layout-new"></a><h3>pango_layout_new ()</h3>
351 <pre class="programlisting"><a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> * pango_layout_new (<a class="link" href="pango-Text-Processing.html#PangoContext">PangoContext</a> *context);</pre>
353 Create a new <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a> object with attributes initialized to
354 default values for a particular <a class="link" href="pango-Text-Processing.html#PangoContext"><span class="type">PangoContext</span></a>.</p>
357 <div class="variablelist"><table border="0">
358 <col align="left" valign="top">
361 <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
362 <td> a <a class="link" href="pango-Text-Processing.html#PangoContext"><span class="type">PangoContext</span></a>
366 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
367 <td> the newly allocated <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>, with a reference
368 count of one, which should be freed with
370 href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"
371 ><code class="function">g_object_unref()</code></a>.
378 <div class="refsect2" lang="en">
379 <a name="pango-layout-copy"></a><h3>pango_layout_copy ()</h3>
380 <pre class="programlisting"><a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> * pango_layout_copy (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *src);</pre>
382 Does a deep copy-by-value of the <em class="parameter"><code>src</code></em> layout. The attribute list,
383 tab array, and text from the original layout are all copied by
387 <div class="variablelist"><table border="0">
388 <col align="left" valign="top">
391 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
392 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
396 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
397 <td> the newly allocated <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>, with a reference
398 count of one, which should be freed with
400 href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"
401 ><code class="function">g_object_unref()</code></a>.
408 <div class="refsect2" lang="en">
409 <a name="pango-layout-get-context"></a><h3>pango_layout_get_context ()</h3>
410 <pre class="programlisting"><a class="link" href="pango-Text-Processing.html#PangoContext">PangoContext</a> * pango_layout_get_context (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
412 Retrieves the <a class="link" href="pango-Text-Processing.html#PangoContext"><span class="type">PangoContext</span></a> used for this layout.</p>
415 <div class="variablelist"><table border="0">
416 <col align="left" valign="top">
419 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
420 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
424 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
425 <td> the <a class="link" href="pango-Text-Processing.html#PangoContext"><span class="type">PangoContext</span></a> for the layout. This does not
426 have an additional refcount added, so if you want to keep
427 a copy of this around, you must reference it yourself.
434 <div class="refsect2" lang="en">
435 <a name="pango-layout-context-changed"></a><h3>pango_layout_context_changed ()</h3>
436 <pre class="programlisting">void pango_layout_context_changed (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
438 Forces recomputation of any state in the <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a> that
439 might depend on the layout's context. This function should
440 be called if you make changes to the context subsequent
441 to creating the layout.</p>
444 <div class="variablelist"><table border="0">
445 <col align="left" valign="top">
447 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
448 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
454 <div class="refsect2" lang="en">
455 <a name="pango-layout-set-text"></a><h3>pango_layout_set_text ()</h3>
456 <pre class="programlisting">void pango_layout_set_text (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
460 Sets the text of the layout.
463 Note that if you have used
464 <a class="link" href="pango-Layout-Objects.html#pango-layout-set-markup" title="pango_layout_set_markup ()"><code class="function">pango_layout_set_markup()</code></a> or <a class="link" href="pango-Layout-Objects.html#pango-layout-set-markup-with-accel" title="pango_layout_set_markup_with_accel ()"><code class="function">pango_layout_set_markup_with_accel()</code></a> on
465 <em class="parameter"><code>layout</code></em> before, you may want to call <a class="link" href="pango-Layout-Objects.html#pango-layout-set-attributes" title="pango_layout_set_attributes ()"><code class="function">pango_layout_set_attributes()</code></a> to clear
466 the attributes set on the layout from the markup as this function does not
467 clear attributes.</p>
470 <div class="variablelist"><table border="0">
471 <col align="left" valign="top">
474 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
475 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
479 <td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
480 <td> a valid UTF-8 string
484 <td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
485 <td> maximum length of <em class="parameter"><code>text</code></em>, in bytes. -1 indicates that
486 the string is nul-terminated and the length should be
487 calculated. The text will also be truncated on
488 encountering a nul-termination even when <em class="parameter"><code>length</code></em> is
496 <div class="refsect2" lang="en">
497 <a name="pango-layout-get-text"></a><h3>pango_layout_get_text ()</h3>
498 <pre class="programlisting">const char * pango_layout_get_text (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
500 Gets the text in the layout. The returned text should not
501 be freed or modified.</p>
504 <div class="variablelist"><table border="0">
505 <col align="left" valign="top">
508 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
509 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
513 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
514 <td> the text in the <em class="parameter"><code>layout</code></em>.
521 <div class="refsect2" lang="en">
522 <a name="pango-layout-set-markup"></a><h3>pango_layout_set_markup ()</h3>
523 <pre class="programlisting">void pango_layout_set_markup (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
527 Same as <a class="link" href="pango-Layout-Objects.html#pango-layout-set-markup-with-accel" title="pango_layout_set_markup_with_accel ()"><code class="function">pango_layout_set_markup_with_accel()</code></a>, but
528 the markup text isn't scanned for accelerators.</p>
531 <div class="variablelist"><table border="0">
532 <col align="left" valign="top">
535 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
536 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
540 <td><p><span class="term"><em class="parameter"><code>markup</code></em> :</span></p></td>
545 <td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
546 <td> length of marked-up text in bytes, or -1 if <em class="parameter"><code>markup</code></em> is
554 <div class="refsect2" lang="en">
555 <a name="pango-layout-set-markup-with-accel"></a><h3>pango_layout_set_markup_with_accel ()</h3>
556 <pre class="programlisting">void pango_layout_set_markup_with_accel (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
560 href="http://library.gnome.org/devel/glib/unstable/glib-Unicode-Manipulation.html#gunichar"
561 >gunichar</a> accel_marker,
563 href="http://library.gnome.org/devel/glib/unstable/glib-Unicode-Manipulation.html#gunichar"
564 >gunichar</a> *accel_char);</pre>
566 Sets the layout text and attribute list from marked-up text (see
567 <a class="link" href="PangoMarkupFormat.html" title="Text Attribute Markup">markup format</a>). Replaces
568 the current text and attribute list.
571 If <em class="parameter"><code>accel_marker</code></em> is nonzero, the given character will mark the
572 character following it as an accelerator. For example, <em class="parameter"><code>accel_marker</code></em>
573 might be an ampersand or underscore. All characters marked
574 as an accelerator will receive a <a class="link" href="pango-Text-Attributes.html#PANGO-UNDERLINE-LOW--CAPS"><code class="literal">PANGO_UNDERLINE_LOW</code></a> attribute,
575 and the first character so marked will be returned in <em class="parameter"><code>accel_char</code></em>.
576 Two <em class="parameter"><code>accel_marker</code></em> characters following each other produce a single
577 literal <em class="parameter"><code>accel_marker</code></em> character.</p>
580 <div class="variablelist"><table border="0">
581 <col align="left" valign="top">
584 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
585 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
589 <td><p><span class="term"><em class="parameter"><code>markup</code></em> :</span></p></td>
591 (see <a class="link" href="PangoMarkupFormat.html" title="Text Attribute Markup">markup format</a>)
595 <td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
596 <td> length of marked-up text in bytes, or -1 if <em class="parameter"><code>markup</code></em> is
601 <td><p><span class="term"><em class="parameter"><code>accel_marker</code></em> :</span></p></td>
602 <td> marker for accelerators in the text
606 <td><p><span class="term"><em class="parameter"><code>accel_char</code></em> :</span></p></td>
607 <td> return location for first located accelerator, or <a
608 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
609 ><code class="literal">NULL</code></a>
616 <div class="refsect2" lang="en">
617 <a name="pango-layout-set-attributes"></a><h3>pango_layout_set_attributes ()</h3>
618 <pre class="programlisting">void pango_layout_set_attributes (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
619 <a class="link" href="pango-Text-Attributes.html#PangoAttrList" title="PangoAttrList">PangoAttrList</a> *attrs);</pre>
621 Sets the text attributes for a layout object.
622 References <em class="parameter"><code>attrs</code></em>, so the caller can unref its reference.</p>
625 <div class="variablelist"><table border="0">
626 <col align="left" valign="top">
629 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
630 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
634 <td><p><span class="term"><em class="parameter"><code>attrs</code></em> :</span></p></td>
635 <td> a <a class="link" href="pango-Text-Attributes.html#PangoAttrList" title="PangoAttrList"><span class="type">PangoAttrList</span></a>, can be <a
636 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
637 ><code class="literal">NULL</code></a>
644 <div class="refsect2" lang="en">
645 <a name="pango-layout-get-attributes"></a><h3>pango_layout_get_attributes ()</h3>
646 <pre class="programlisting"><a class="link" href="pango-Text-Attributes.html#PangoAttrList" title="PangoAttrList">PangoAttrList</a> * pango_layout_get_attributes (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
648 Gets the attribute list for the layout, if any.</p>
651 <div class="variablelist"><table border="0">
652 <col align="left" valign="top">
655 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
656 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
660 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
661 <td> a <a class="link" href="pango-Text-Attributes.html#PangoAttrList" title="PangoAttrList"><span class="type">PangoAttrList</span></a>.
668 <div class="refsect2" lang="en">
669 <a name="pango-layout-set-font-description"></a><h3>pango_layout_set_font_description ()</h3>
670 <pre class="programlisting">void pango_layout_set_font_description (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
671 const <a class="link" href="pango-Fonts.html#PangoFontDescription" title="PangoFontDescription">PangoFontDescription</a> *desc);</pre>
673 Sets the default font description for the layout. If no font
674 description is set on the layout, the font description from
675 the layout's context is used.</p>
678 <div class="variablelist"><table border="0">
679 <col align="left" valign="top">
682 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
683 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
687 <td><p><span class="term"><em class="parameter"><code>desc</code></em> :</span></p></td>
688 <td> the new <a class="link" href="pango-Fonts.html#PangoFontDescription" title="PangoFontDescription"><span class="type">PangoFontDescription</span></a>, or <a
689 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
690 ><code class="literal">NULL</code></a> to unset the
691 current font description
698 <div class="refsect2" lang="en">
699 <a name="pango-layout-get-font-description"></a><h3>pango_layout_get_font_description ()</h3>
700 <pre class="programlisting">const <a class="link" href="pango-Fonts.html#PangoFontDescription" title="PangoFontDescription">PangoFontDescription</a> * pango_layout_get_font_description
701 (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
703 Gets the font description for the layout, if any.</p>
706 <div class="variablelist"><table border="0">
707 <col align="left" valign="top">
710 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
711 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
715 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
716 <td> a pointer to the layout's font description,
718 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
719 ><code class="literal">NULL</code></a> if the font description from the layout's
720 context is inherited. This value is owned by the layout
721 and must not be modified or freed.
727 <p class="since">Since 1.8</p>
730 <div class="refsect2" lang="en">
731 <a name="pango-layout-set-width"></a><h3>pango_layout_set_width ()</h3>
732 <pre class="programlisting">void pango_layout_set_width (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
735 Sets the width to which the lines of the <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a> should wrap or
736 ellipsized. The default value is -1: no width set.</p>
739 <div class="variablelist"><table border="0">
740 <col align="left" valign="top">
743 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
744 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>.
748 <td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
749 <td> the desired width in Pango units, or -1 to indicate that no
750 wrapping or ellipsization should be performed.
757 <div class="refsect2" lang="en">
758 <a name="pango-layout-get-width"></a><h3>pango_layout_get_width ()</h3>
759 <pre class="programlisting">int pango_layout_get_width (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
761 Gets the width to which the lines of the <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a> should wrap.</p>
764 <div class="variablelist"><table border="0">
765 <col align="left" valign="top">
768 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
769 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
773 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
774 <td> the width in Pango units, or -1 if no width set.
781 <div class="refsect2" lang="en">
782 <a name="pango-layout-set-height"></a><h3>pango_layout_set_height ()</h3>
783 <pre class="programlisting">void pango_layout_set_height (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
786 Sets the height to which the <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a> should be ellipsized at. There
787 are two different behaviors, based on whether <em class="parameter"><code>height</code></em> is positive or
791 If <em class="parameter"><code>height</code></em> is positive, it will be the maximum height of the layout. Only
792 lines would be shown that would fit, and if there is any text omitted,
793 an ellipsis added. At least one line is included in each paragraph regardless
794 of how small the height value is. A value of zero will render exactly one
795 line for the entire layout.
798 If <em class="parameter"><code>height</code></em> is negative, it will be the (negative of) maximum number of lines per
799 paragraph. That is, the total number of lines shown may well be more than
800 this value if the layout contains multiple paragraphs of text.
801 The default value of -1 means that first line of each paragraph is ellipsized.
802 This behvaior may be changed in the future to act per layout instead of per
803 paragraph. File a bug against pango at <a class="ulink" href="http://bugzilla.gnome.org/" target="_top">http://bugzilla.gnome.org/</a> if your
804 code relies on this behavior.
807 Height setting only has effect if a positive width is set on
808 <em class="parameter"><code>layout</code></em> and ellipsization mode of <em class="parameter"><code>layout</code></em> is not <a class="link" href="pango-Layout-Objects.html#PANGO-ELLIPSIZE-NONE--CAPS"><code class="literal">PANGO_ELLIPSIZE_NONE</code></a>.
809 The behavior is undefined if a height other than -1 is set and
810 ellipsization mode is set to <a class="link" href="pango-Layout-Objects.html#PANGO-ELLIPSIZE-NONE--CAPS"><code class="literal">PANGO_ELLIPSIZE_NONE</code></a>, and may change in the
814 <div class="variablelist"><table border="0">
815 <col align="left" valign="top">
818 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
819 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>.
823 <td><p><span class="term"><em class="parameter"><code>height</code></em> :</span></p></td>
824 <td> the desired height of the layout in Pango units if positive,
825 or desired number of lines if negative.
830 <p class="since">Since 1.20</p>
833 <div class="refsect2" lang="en">
834 <a name="pango-layout-get-height"></a><h3>pango_layout_get_height ()</h3>
835 <pre class="programlisting">int pango_layout_get_height (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
837 Gets the height of layout used for ellipsization. See
838 <a class="link" href="pango-Layout-Objects.html#pango-layout-set-height" title="pango_layout_set_height ()"><code class="function">pango_layout_set_height()</code></a> for details.</p>
841 <div class="variablelist"><table border="0">
842 <col align="left" valign="top">
845 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
846 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
850 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
851 <td> the height, in Pango units if positive, or
852 number of lines if negative.
858 <p class="since">Since 1.20</p>
861 <div class="refsect2" lang="en">
862 <a name="pango-layout-set-wrap"></a><h3>pango_layout_set_wrap ()</h3>
863 <pre class="programlisting">void pango_layout_set_wrap (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
864 <a class="link" href="pango-Layout-Objects.html#PangoWrapMode" title="enum PangoWrapMode">PangoWrapMode</a> wrap);</pre>
866 Sets the wrap mode; the wrap mode only has effect if a width
867 is set on the layout with <a class="link" href="pango-Layout-Objects.html#pango-layout-set-width" title="pango_layout_set_width ()"><code class="function">pango_layout_set_width()</code></a>.
868 To turn off wrapping, set the width to -1.</p>
871 <div class="variablelist"><table border="0">
872 <col align="left" valign="top">
875 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
876 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
880 <td><p><span class="term"><em class="parameter"><code>wrap</code></em> :</span></p></td>
888 <div class="refsect2" lang="en">
889 <a name="pango-layout-get-wrap"></a><h3>pango_layout_get_wrap ()</h3>
890 <pre class="programlisting"><a class="link" href="pango-Layout-Objects.html#PangoWrapMode" title="enum PangoWrapMode">PangoWrapMode</a> pango_layout_get_wrap (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
892 Gets the wrap mode for the layout.
895 Use <a class="link" href="pango-Layout-Objects.html#pango-layout-is-wrapped" title="pango_layout_is_wrapped ()"><code class="function">pango_layout_is_wrapped()</code></a> to query whether any paragraphs
896 were actually wrapped.</p>
899 <div class="variablelist"><table border="0">
900 <col align="left" valign="top">
903 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
904 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
908 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
909 <td> active wrap mode.
916 <div class="refsect2" lang="en">
917 <a name="pango-layout-is-wrapped"></a><h3>pango_layout_is_wrapped ()</h3>
918 <pre class="programlisting"><a
919 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
920 >gboolean</a> pango_layout_is_wrapped (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
922 Queries whether the layout had to wrap any paragraphs.
926 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE--CAPS"
927 ><code class="literal">TRUE</code></a> if a positive width is set on <em class="parameter"><code>layout</code></em>,
928 ellipsization mode of <em class="parameter"><code>layout</code></em> is set to <a class="link" href="pango-Layout-Objects.html#PANGO-ELLIPSIZE-NONE--CAPS"><code class="literal">PANGO_ELLIPSIZE_NONE</code></a>,
929 and there are paragraphs exceeding the layout width that have
933 <div class="variablelist"><table border="0">
934 <col align="left" valign="top">
937 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
938 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
942 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
944 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE--CAPS"
945 ><code class="literal">TRUE</code></a> if any paragraphs had to be wrapped, <a
946 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE--CAPS"
947 ><code class="literal">FALSE</code></a>
954 <p class="since">Since 1.16</p>
957 <div class="refsect2" lang="en">
958 <a name="PangoWrapMode"></a><h3>enum PangoWrapMode</h3>
959 <pre class="programlisting">typedef enum {
966 A <a class="link" href="pango-Layout-Objects.html#PangoWrapMode" title="enum PangoWrapMode"><span class="type">PangoWrapMode</span></a> describes how to wrap the lines of a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a> to the desired width.
968 <div class="variablelist"><table border="0">
969 <col align="left" valign="top">
972 <td><p><a name="PANGO-WRAP-WORD--CAPS"></a><span class="term"><code class="literal">PANGO_WRAP_WORD</code></span></p></td>
973 <td>wrap lines at word boundaries.
977 <td><p><a name="PANGO-WRAP-CHAR--CAPS"></a><span class="term"><code class="literal">PANGO_WRAP_CHAR</code></span></p></td>
978 <td>wrap lines at character boundaries.
982 <td><p><a name="PANGO-WRAP-WORD-CHAR--CAPS"></a><span class="term"><code class="literal">PANGO_WRAP_WORD_CHAR</code></span></p></td>
983 <td>wrap lines at word boundaries, but fall back to character boundaries if there is not
984 enough space for a full word.
991 <div class="refsect2" lang="en">
992 <a name="PANGO-TYPE-WRAP-MODE--CAPS"></a><h3>PANGO_TYPE_WRAP_MODE</h3>
993 <pre class="programlisting">#define PANGO_TYPE_WRAP_MODE (pango_wrap_mode_get_type())
997 href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"
998 ><span class="type">GObject</span></a> type for <a class="link" href="pango-Layout-Objects.html#PangoWrapMode" title="enum PangoWrapMode"><span class="type">PangoWrapMode</span></a>.
1002 <div class="refsect2" lang="en">
1003 <a name="pango-layout-set-ellipsize"></a><h3>pango_layout_set_ellipsize ()</h3>
1004 <pre class="programlisting">void pango_layout_set_ellipsize (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
1005 <a class="link" href="pango-Layout-Objects.html#PangoEllipsizeMode" title="enum PangoEllipsizeMode">PangoEllipsizeMode</a> ellipsize);</pre>
1007 Sets the type of ellipsization being performed for <em class="parameter"><code>layout</code></em>.
1008 Depending on the ellipsization mode <em class="parameter"><code>ellipsize</code></em> text is
1009 removed from the start, middle, or end of text so they
1010 fit within the width and height of layout set with
1011 <a class="link" href="pango-Layout-Objects.html#pango-layout-set-width" title="pango_layout_set_width ()"><code class="function">pango_layout_set_width()</code></a> and <a class="link" href="pango-Layout-Objects.html#pango-layout-set-height" title="pango_layout_set_height ()"><code class="function">pango_layout_set_height()</code></a>.
1014 If the layout contains characters such as newlines that
1015 force it to be layed out in multiple paragraphs, then whether
1016 each paragraph is ellipsized separately or the entire layout
1017 is ellipsized as a whole depends on the set height of the layout.
1018 See <a class="link" href="pango-Layout-Objects.html#pango-layout-set-height" title="pango_layout_set_height ()"><code class="function">pango_layout_set_height()</code></a> for details.</p>
1021 <div class="variablelist"><table border="0">
1022 <col align="left" valign="top">
1025 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1026 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
1030 <td><p><span class="term"><em class="parameter"><code>ellipsize</code></em> :</span></p></td>
1031 <td> the new ellipsization mode for <em class="parameter"><code>layout</code></em>
1036 <p class="since">Since 1.6</p>
1039 <div class="refsect2" lang="en">
1040 <a name="pango-layout-get-ellipsize"></a><h3>pango_layout_get_ellipsize ()</h3>
1041 <pre class="programlisting"><a class="link" href="pango-Layout-Objects.html#PangoEllipsizeMode" title="enum PangoEllipsizeMode">PangoEllipsizeMode</a> pango_layout_get_ellipsize (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
1043 Gets the type of ellipsization being performed for <em class="parameter"><code>layout</code></em>.
1044 See <a class="link" href="pango-Layout-Objects.html#pango-layout-set-ellipsize" title="pango_layout_set_ellipsize ()"><code class="function">pango_layout_set_ellipsize()</code></a></p>
1047 <div class="variablelist"><table border="0">
1048 <col align="left" valign="top">
1051 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1052 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
1056 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1057 <td> the current ellipsization mode for <em class="parameter"><code>layout</code></em>.
1059 Use <a class="link" href="pango-Layout-Objects.html#pango-layout-is-ellipsized" title="pango_layout_is_ellipsized ()"><code class="function">pango_layout_is_ellipsized()</code></a> to query whether any paragraphs
1060 were actually ellipsized.
1066 <p class="since">Since 1.6</p>
1069 <div class="refsect2" lang="en">
1070 <a name="pango-layout-is-ellipsized"></a><h3>pango_layout_is_ellipsized ()</h3>
1071 <pre class="programlisting"><a
1072 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
1073 >gboolean</a> pango_layout_is_ellipsized (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
1075 Queries whether the layout had to ellipsize any paragraphs.
1079 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE--CAPS"
1080 ><code class="literal">TRUE</code></a> if the ellipsization mode for <em class="parameter"><code>layout</code></em>
1081 is not <a class="link" href="pango-Layout-Objects.html#PANGO-ELLIPSIZE-NONE--CAPS"><code class="literal">PANGO_ELLIPSIZE_NONE</code></a>, a positive width is set on <em class="parameter"><code>layout</code></em>,
1082 and there are paragraphs exceeding that width that have to be
1086 <div class="variablelist"><table border="0">
1087 <col align="left" valign="top">
1090 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1091 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
1095 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1097 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE--CAPS"
1098 ><code class="literal">TRUE</code></a> if any paragraphs had to be ellipsized, <a
1099 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE--CAPS"
1100 ><code class="literal">FALSE</code></a>
1107 <p class="since">Since 1.16</p>
1110 <div class="refsect2" lang="en">
1111 <a name="PangoEllipsizeMode"></a><h3>enum PangoEllipsizeMode</h3>
1112 <pre class="programlisting">typedef enum {
1113 PANGO_ELLIPSIZE_NONE,
1114 PANGO_ELLIPSIZE_START,
1115 PANGO_ELLIPSIZE_MIDDLE,
1117 } PangoEllipsizeMode;
1120 The <a class="link" href="pango-Layout-Objects.html#PangoEllipsizeMode" title="enum PangoEllipsizeMode"><span class="type">PangoEllipsizeMode</span></a> type describes what sort of (if any)
1121 ellipsization should be applied to a line of text. In
1122 the ellipsization process characters are removed from the
1123 text in order to make it fit to a given width and replaced
1124 with an ellipsis.</p>
1127 <div class="variablelist"><table border="0">
1128 <col align="left" valign="top">
1131 <td><p><a name="PANGO-ELLIPSIZE-NONE--CAPS"></a><span class="term"><code class="literal">PANGO_ELLIPSIZE_NONE</code></span></p></td>
1132 <td> No ellipsization
1136 <td><p><a name="PANGO-ELLIPSIZE-START--CAPS"></a><span class="term"><code class="literal">PANGO_ELLIPSIZE_START</code></span></p></td>
1137 <td> Omit characters at the start of the text
1141 <td><p><a name="PANGO-ELLIPSIZE-MIDDLE--CAPS"></a><span class="term"><code class="literal">PANGO_ELLIPSIZE_MIDDLE</code></span></p></td>
1142 <td> Omit characters in the middle of the text
1146 <td><p><a name="PANGO-ELLIPSIZE-END--CAPS"></a><span class="term"><code class="literal">PANGO_ELLIPSIZE_END</code></span></p></td>
1147 <td> Omit characters at the end of the text
1154 <div class="refsect2" lang="en">
1155 <a name="PANGO-TYPE-ELLIPSIZE-MODE--CAPS"></a><h3>PANGO_TYPE_ELLIPSIZE_MODE</h3>
1156 <pre class="programlisting">#define PANGO_TYPE_ELLIPSIZE_MODE (pango_ellipsize_mode_get_type())
1160 href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"
1161 ><span class="type">GObject</span></a> type for <a class="link" href="pango-Layout-Objects.html#PangoEllipsizeMode" title="enum PangoEllipsizeMode"><span class="type">PangoEllipsizeMode</span></a>.
1165 <div class="refsect2" lang="en">
1166 <a name="pango-layout-set-indent"></a><h3>pango_layout_set_indent ()</h3>
1167 <pre class="programlisting">void pango_layout_set_indent (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
1170 Sets the width in Pango units to indent each paragraph. A negative value
1171 of <em class="parameter"><code>indent</code></em> will produce a hanging indentation. That is, the first line will
1172 have the full width, and subsequent lines will be indented by the
1173 absolute value of <em class="parameter"><code>indent</code></em>.
1176 The indent setting is ignored if layout alignment is set to
1177 <a class="link" href="pango-Layout-Objects.html#PANGO-ALIGN-CENTER--CAPS"><code class="literal">PANGO_ALIGN_CENTER</code></a>.</p>
1180 <div class="variablelist"><table border="0">
1181 <col align="left" valign="top">
1184 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1185 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>.
1189 <td><p><span class="term"><em class="parameter"><code>indent</code></em> :</span></p></td>
1190 <td> the amount by which to indent.
1197 <div class="refsect2" lang="en">
1198 <a name="pango-layout-get-indent"></a><h3>pango_layout_get_indent ()</h3>
1199 <pre class="programlisting">int pango_layout_get_indent (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
1201 Gets the paragraph indent width in Pango units. A negative value
1202 indicates a hanging indentation.</p>
1205 <div class="variablelist"><table border="0">
1206 <col align="left" valign="top">
1209 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1210 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
1214 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1215 <td> the indent in Pango units.
1222 <div class="refsect2" lang="en">
1223 <a name="pango-layout-get-spacing"></a><h3>pango_layout_get_spacing ()</h3>
1224 <pre class="programlisting">int pango_layout_get_spacing (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
1226 Gets the amount of spacing between the lines of the layout.</p>
1229 <div class="variablelist"><table border="0">
1230 <col align="left" valign="top">
1233 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1234 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
1238 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1239 <td> the spacing in Pango units.
1246 <div class="refsect2" lang="en">
1247 <a name="pango-layout-set-spacing"></a><h3>pango_layout_set_spacing ()</h3>
1248 <pre class="programlisting">void pango_layout_set_spacing (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
1251 Sets the amount of spacing in Pango unit between the lines of the
1255 <div class="variablelist"><table border="0">
1256 <col align="left" valign="top">
1259 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1260 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>.
1264 <td><p><span class="term"><em class="parameter"><code>spacing</code></em> :</span></p></td>
1265 <td> the amount of spacing
1272 <div class="refsect2" lang="en">
1273 <a name="pango-layout-set-justify"></a><h3>pango_layout_set_justify ()</h3>
1274 <pre class="programlisting">void pango_layout_set_justify (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
1276 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
1277 >gboolean</a> justify);</pre>
1279 Sets whether each complete line should be stretched to
1280 fill the entire width of the layout. This stretching is typically
1281 done by adding whitespace, but for some scripts (such as Arabic),
1282 the justification may be done in more complex ways, like extending
1286 Note that this setting is not implemented and so is ignored in Pango
1287 older than 1.18.</p>
1290 <div class="variablelist"><table border="0">
1291 <col align="left" valign="top">
1294 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1295 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
1299 <td><p><span class="term"><em class="parameter"><code>justify</code></em> :</span></p></td>
1300 <td> whether the lines in the layout should be justified.
1307 <div class="refsect2" lang="en">
1308 <a name="pango-layout-get-justify"></a><h3>pango_layout_get_justify ()</h3>
1309 <pre class="programlisting"><a
1310 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
1311 >gboolean</a> pango_layout_get_justify (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
1313 Gets whether each complete line should be stretched to fill the entire
1314 width of the layout.</p>
1317 <div class="variablelist"><table border="0">
1318 <col align="left" valign="top">
1321 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1322 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
1326 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1334 <div class="refsect2" lang="en">
1335 <a name="pango-layout-set-auto-dir"></a><h3>pango_layout_set_auto_dir ()</h3>
1336 <pre class="programlisting">void pango_layout_set_auto_dir (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
1338 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
1339 >gboolean</a> auto_dir);</pre>
1341 Sets whether to calculate the bidirectional base direction
1342 for the layout according to the contents of the layout;
1343 when this flag is on (the default), then paragraphs in
1344 <em class="parameter"><code>layout</code></em> that begin with strong right-to-left characters
1345 (Arabic and Hebrew principally), will have right-to-left
1346 layout, paragraphs with letters from other scripts will
1347 have left-to-right layout. Paragraphs with only neutral
1348 characters get their direction from the surrounding paragraphs.
1352 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE--CAPS"
1353 ><code class="literal">FALSE</code></a>, the choice between left-to-right and
1354 right-to-left layout is done according to the base direction
1355 of the layout's <a class="link" href="pango-Text-Processing.html#PangoContext"><span class="type">PangoContext</span></a>. (See <a class="link" href="pango-Text-Processing.html#pango-context-set-base-dir" title="pango_context_set_base_dir ()"><code class="function">pango_context_set_base_dir()</code></a>).
1358 When the auto-computed direction of a paragraph differs from the
1359 base direction of the context, the interpretation of
1360 <a class="link" href="pango-Layout-Objects.html#PANGO-ALIGN-LEFT--CAPS"><code class="literal">PANGO_ALIGN_LEFT</code></a> and <a class="link" href="pango-Layout-Objects.html#PANGO-ALIGN-RIGHT--CAPS"><code class="literal">PANGO_ALIGN_RIGHT</code></a> are swapped.</p>
1363 <div class="variablelist"><table border="0">
1364 <col align="left" valign="top">
1367 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1368 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
1372 <td><p><span class="term"><em class="parameter"><code>auto_dir</code></em> :</span></p></td>
1374 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE--CAPS"
1375 ><code class="literal">TRUE</code></a>, compute the bidirectional base direction
1376 from the layout's contents.
1381 <p class="since">Since 1.4</p>
1384 <div class="refsect2" lang="en">
1385 <a name="pango-layout-get-auto-dir"></a><h3>pango_layout_get_auto_dir ()</h3>
1386 <pre class="programlisting"><a
1387 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
1388 >gboolean</a> pango_layout_get_auto_dir (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
1390 Gets whether to calculate the bidirectional base direction
1391 for the layout according to the contents of the layout.
1392 See <a class="link" href="pango-Layout-Objects.html#pango-layout-set-auto-dir" title="pango_layout_set_auto_dir ()"><code class="function">pango_layout_set_auto_dir()</code></a>.</p>
1395 <div class="variablelist"><table border="0">
1396 <col align="left" valign="top">
1399 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1400 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
1404 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1406 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE--CAPS"
1407 ><code class="literal">TRUE</code></a> if the bidirectional base direction
1408 is computed from the layout's contents, <a
1409 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE--CAPS"
1410 ><code class="literal">FALSE</code></a> otherwise.
1416 <p class="since">Since 1.4</p>
1419 <div class="refsect2" lang="en">
1420 <a name="pango-layout-set-alignment"></a><h3>pango_layout_set_alignment ()</h3>
1421 <pre class="programlisting">void pango_layout_set_alignment (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
1422 <a class="link" href="pango-Layout-Objects.html#PangoAlignment" title="enum PangoAlignment">PangoAlignment</a> alignment);</pre>
1424 Sets the alignment for the layout: how partial lines are
1425 positioned within the horizontal space available.</p>
1428 <div class="variablelist"><table border="0">
1429 <col align="left" valign="top">
1432 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1433 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
1437 <td><p><span class="term"><em class="parameter"><code>alignment</code></em> :</span></p></td>
1445 <div class="refsect2" lang="en">
1446 <a name="pango-layout-get-alignment"></a><h3>pango_layout_get_alignment ()</h3>
1447 <pre class="programlisting"><a class="link" href="pango-Layout-Objects.html#PangoAlignment" title="enum PangoAlignment">PangoAlignment</a> pango_layout_get_alignment (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
1449 Gets the alignment for the layout: how partial lines are
1450 positioned within the horizontal space available.</p>
1453 <div class="variablelist"><table border="0">
1454 <col align="left" valign="top">
1457 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1458 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
1462 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1470 <div class="refsect2" lang="en">
1471 <a name="pango-layout-set-tabs"></a><h3>pango_layout_set_tabs ()</h3>
1472 <pre class="programlisting">void pango_layout_set_tabs (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
1473 <a class="link" href="pango-Tab-Stops.html#PangoTabArray" title="PangoTabArray">PangoTabArray</a> *tabs);</pre>
1475 Sets the tabs to use for <em class="parameter"><code>layout</code></em>, overriding the default tabs
1476 (by default, tabs are every 8 spaces). If <em class="parameter"><code>tabs</code></em> is <a
1477 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
1478 ><code class="literal">NULL</code></a>, the default
1479 tabs are reinstated. <em class="parameter"><code>tabs</code></em> is copied into the layout; you must
1480 free your copy of <em class="parameter"><code>tabs</code></em> yourself.</p>
1483 <div class="variablelist"><table border="0">
1484 <col align="left" valign="top">
1487 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1488 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
1492 <td><p><span class="term"><em class="parameter"><code>tabs</code></em> :</span></p></td>
1493 <td> a <a class="link" href="pango-Tab-Stops.html#PangoTabArray" title="PangoTabArray"><span class="type">PangoTabArray</span></a>, or <a
1494 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
1495 ><code class="literal">NULL</code></a>
1502 <div class="refsect2" lang="en">
1503 <a name="pango-layout-get-tabs"></a><h3>pango_layout_get_tabs ()</h3>
1504 <pre class="programlisting"><a class="link" href="pango-Tab-Stops.html#PangoTabArray" title="PangoTabArray">PangoTabArray</a>* pango_layout_get_tabs (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
1506 Gets the current <a class="link" href="pango-Tab-Stops.html#PangoTabArray" title="PangoTabArray"><span class="type">PangoTabArray</span></a> used by this layout. If no
1507 <a class="link" href="pango-Tab-Stops.html#PangoTabArray" title="PangoTabArray"><span class="type">PangoTabArray</span></a> has been set, then the default tabs are in use
1509 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
1510 ><code class="literal">NULL</code></a> is returned. Default tabs are every 8 spaces.
1511 The return value should be freed with <a class="link" href="pango-Tab-Stops.html#pango-tab-array-free" title="pango_tab_array_free ()"><code class="function">pango_tab_array_free()</code></a>.</p>
1514 <div class="variablelist"><table border="0">
1515 <col align="left" valign="top">
1518 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1519 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
1523 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1524 <td> a copy of the tabs for this layout, or <a
1525 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
1526 ><code class="literal">NULL</code></a>.
1533 <div class="refsect2" lang="en">
1534 <a name="pango-layout-set-single-paragraph-mode"></a><h3>pango_layout_set_single_paragraph_mode ()</h3>
1535 <pre class="programlisting">void pango_layout_set_single_paragraph_mode
1536 (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
1538 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
1539 >gboolean</a> setting);</pre>
1541 If <em class="parameter"><code>setting</code></em> is <a
1542 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE--CAPS"
1543 ><code class="literal">TRUE</code></a>, do not treat newlines and similar characters
1544 as paragraph separators; instead, keep all text in a single paragraph,
1545 and display a glyph for paragraph separator characters. Used when
1546 you want to allow editing of newlines on a single text line.</p>
1549 <div class="variablelist"><table border="0">
1550 <col align="left" valign="top">
1553 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1554 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
1558 <td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
1566 <div class="refsect2" lang="en">
1567 <a name="pango-layout-get-single-paragraph-mode"></a><h3>pango_layout_get_single_paragraph_mode ()</h3>
1568 <pre class="programlisting"><a
1569 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
1570 >gboolean</a> pango_layout_get_single_paragraph_mode
1571 (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
1573 Obtains the value set by <a class="link" href="pango-Layout-Objects.html#pango-layout-set-single-paragraph-mode" title="pango_layout_set_single_paragraph_mode ()"><code class="function">pango_layout_set_single_paragraph_mode()</code></a>.</p>
1576 <div class="variablelist"><table border="0">
1577 <col align="left" valign="top">
1580 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1581 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
1585 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1587 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE--CAPS"
1588 ><code class="literal">TRUE</code></a> if the layout does not break paragraphs at
1589 paragraph separator characters, <a
1590 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE--CAPS"
1591 ><code class="literal">FALSE</code></a> otherwise.
1598 <div class="refsect2" lang="en">
1599 <a name="PangoAlignment"></a><h3>enum PangoAlignment</h3>
1600 <pre class="programlisting">typedef enum {
1607 A <a class="link" href="pango-Layout-Objects.html#PangoAlignment" title="enum PangoAlignment"><span class="type">PangoAlignment</span></a> describes how to align the lines of a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a> within the
1608 available space. If the <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a> is set to justify
1609 using <a class="link" href="pango-Layout-Objects.html#pango-layout-set-justify" title="pango_layout_set_justify ()"><code class="function">pango_layout_set_justify()</code></a>, this only has effect for partial lines.
1611 <div class="variablelist"><table border="0">
1612 <col align="left" valign="top">
1615 <td><p><a name="PANGO-ALIGN-LEFT--CAPS"></a><span class="term"><code class="literal">PANGO_ALIGN_LEFT</code></span></p></td>
1616 <td>Put all available space on the right
1620 <td><p><a name="PANGO-ALIGN-CENTER--CAPS"></a><span class="term"><code class="literal">PANGO_ALIGN_CENTER</code></span></p></td>
1621 <td>Center the line within the available space
1625 <td><p><a name="PANGO-ALIGN-RIGHT--CAPS"></a><span class="term"><code class="literal">PANGO_ALIGN_RIGHT</code></span></p></td>
1626 <td>Put all available space on the left
1633 <div class="refsect2" lang="en">
1634 <a name="PANGO-TYPE-ALIGNMENT--CAPS"></a><h3>PANGO_TYPE_ALIGNMENT</h3>
1635 <pre class="programlisting">#define PANGO_TYPE_ALIGNMENT (pango_alignment_get_type())
1639 href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"
1640 ><span class="type">GObject</span></a> type for <a class="link" href="pango-Layout-Objects.html#PangoAlignment" title="enum PangoAlignment"><span class="type">PangoAlignment</span></a>.
1644 <div class="refsect2" lang="en">
1645 <a name="pango-layout-get-unknown-glyphs-count"></a><h3>pango_layout_get_unknown_glyphs_count ()</h3>
1646 <pre class="programlisting">int pango_layout_get_unknown_glyphs_count
1647 (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
1649 Counts the number unknown glyphs in <em class="parameter"><code>layout</code></em>. That is, zero if
1650 glyphs for all characters in the layout text were found, or more
1651 than zero otherwise.
1654 This function can be used to determine if there are any fonts
1655 available to render all characters in a certain string, or when
1656 used in combination with <a class="link" href="pango-Text-Attributes.html#PANGO-ATTR-FALLBACK--CAPS"><code class="literal">PANGO_ATTR_FALLBACK</code></a>, to check if a
1657 certain font supports all the characters in the string.</p>
1660 <div class="variablelist"><table border="0">
1661 <col align="left" valign="top">
1664 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1665 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
1669 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1670 <td> The number of unknown glyphs in <em class="parameter"><code>layout</code></em>.
1676 <p class="since">Since 1.16</p>
1679 <div class="refsect2" lang="en">
1680 <a name="pango-layout-get-log-attrs"></a><h3>pango_layout_get_log_attrs ()</h3>
1681 <pre class="programlisting">void pango_layout_get_log_attrs (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
1682 <a class="link" href="pango-Text-Processing.html#PangoLogAttr" title="PangoLogAttr">PangoLogAttr</a> **attrs,
1684 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
1685 >gint</a> *n_attrs);</pre>
1687 Retrieves an array of logical attributes for each character in
1688 the <em class="parameter"><code>layout</code></em>.</p>
1691 <div class="variablelist"><table border="0">
1692 <col align="left" valign="top">
1695 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1696 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
1700 <td><p><span class="term"><em class="parameter"><code>attrs</code></em> :</span></p></td>
1701 <td> location to store a pointer to an array of logical attributes
1702 This value must be freed with <a
1703 href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"
1704 ><code class="function">g_free()</code></a>.
1708 <td><p><span class="term"><em class="parameter"><code>n_attrs</code></em> :</span></p></td>
1709 <td> location to store the number of the attributes in the
1710 array. (The stored value will be one more than the total number
1711 of characters in the layout, since there need to be attributes
1712 corresponding to both the position before the first character
1713 and the position after the last character.)
1720 <div class="refsect2" lang="en">
1721 <a name="pango-layout-index-to-pos"></a><h3>pango_layout_index_to_pos ()</h3>
1722 <pre class="programlisting">void pango_layout_index_to_pos (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
1724 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *pos);</pre>
1726 Converts from an index within a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a> to the onscreen position
1727 corresponding to the grapheme at that index, which is represented
1728 as rectangle. Note that <code class="literal">pos->x</code> is always the leading
1729 edge of the grapheme and <code class="literal">pos->x + pos->width</code> the trailing
1730 edge of the grapheme. If the directionality of the grapheme is right-to-left,
1731 then <code class="literal">pos->width</code> will be negative.</p>
1734 <div class="variablelist"><table border="0">
1735 <col align="left" valign="top">
1738 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1739 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
1743 <td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
1744 <td> byte index within <em class="parameter"><code>layout</code></em>
1748 <td><p><span class="term"><em class="parameter"><code>pos</code></em> :</span></p></td>
1749 <td> rectangle in which to store the position of the grapheme
1756 <div class="refsect2" lang="en">
1757 <a name="pango-layout-index-to-line-x"></a><h3>pango_layout_index_to_line_x ()</h3>
1758 <pre class="programlisting">void pango_layout_index_to_line_x (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
1761 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
1762 >gboolean</a> trailing,
1766 Converts from byte <em class="parameter"><code>index_</code></em> within the <em class="parameter"><code>layout</code></em> to line and X position.
1767 (X position is measured from the left edge of the line)</p>
1770 <div class="variablelist"><table border="0">
1771 <col align="left" valign="top">
1774 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1775 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
1779 <td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
1780 <td> the byte index of a grapheme within the layout.
1784 <td><p><span class="term"><em class="parameter"><code>trailing</code></em> :</span></p></td>
1785 <td> an integer indicating the edge of the grapheme to retrieve the
1786 position of. If 0, the trailing edge of the grapheme, if > 0,
1787 the leading of the grapheme.
1791 <td><p><span class="term"><em class="parameter"><code>line</code></em> :</span></p></td>
1792 <td> location to store resulting line index. (which will
1793 between 0 and pango_layout_get_line_count(layout) - 1)
1797 <td><p><span class="term"><em class="parameter"><code>x_pos</code></em> :</span></p></td>
1798 <td> location to store resulting position within line
1799 (<a class="link" href="pango-Glyph-Storage.html#PANGO-SCALE--CAPS" title="PANGO_SCALE"><code class="literal">PANGO_SCALE</code></a> units per device unit)
1806 <div class="refsect2" lang="en">
1807 <a name="pango-layout-xy-to-index"></a><h3>pango_layout_xy_to_index ()</h3>
1808 <pre class="programlisting"><a
1809 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
1810 >gboolean</a> pango_layout_xy_to_index (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
1814 int *trailing);</pre>
1816 Converts from X and Y position within a layout to the byte
1817 index to the character at that logical position. If the
1818 Y position is not inside the layout, the closest position is chosen
1819 (the position will be clamped inside the layout). If the
1820 X position is not within the layout, then the start or the
1821 end of the line is chosen as described for <code class="function">pango_layout_x_to_index()</code>.
1822 If either the X or Y positions were not inside the layout, then the
1824 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE--CAPS"
1825 ><code class="literal">FALSE</code></a>; on an exact hit, it returns <a
1826 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE--CAPS"
1827 ><code class="literal">TRUE</code></a>.</p>
1830 <div class="variablelist"><table border="0">
1831 <col align="left" valign="top">
1834 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1835 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
1839 <td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
1840 <td> the X offset (in Pango units)
1841 from the left edge of the layout.
1845 <td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
1846 <td> the Y offset (in Pango units)
1847 from the top edge of the layout
1851 <td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
1852 <td> location to store calculated byte index
1856 <td><p><span class="term"><em class="parameter"><code>trailing</code></em> :</span></p></td>
1857 <td> location to store a integer indicating where
1858 in the grapheme the user clicked. It will either
1859 be zero, or the number of characters in the
1860 grapheme. 0 represents the trailing edge of the grapheme.
1864 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1866 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE--CAPS"
1867 ><code class="literal">TRUE</code></a> if the coordinates were inside text, <a
1868 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE--CAPS"
1869 ><code class="literal">FALSE</code></a> otherwise.
1876 <div class="refsect2" lang="en">
1877 <a name="pango-layout-get-cursor-pos"></a><h3>pango_layout_get_cursor_pos ()</h3>
1878 <pre class="programlisting">void pango_layout_get_cursor_pos (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
1880 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *strong_pos,
1881 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *weak_pos);</pre>
1883 Given an index within a layout, determines the positions that of the
1884 strong and weak cursors if the insertion point is at that
1885 index. The position of each cursor is stored as a zero-width
1886 rectangle. The strong cursor location is the location where
1887 characters of the directionality equal to the base direction of the
1888 layout are inserted. The weak cursor location is the location
1889 where characters of the directionality opposite to the base
1890 direction of the layout are inserted.</p>
1893 <div class="variablelist"><table border="0">
1894 <col align="left" valign="top">
1897 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1898 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
1902 <td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
1903 <td> the byte index of the cursor
1907 <td><p><span class="term"><em class="parameter"><code>strong_pos</code></em> :</span></p></td>
1908 <td> location to store the strong cursor position (may be <a
1909 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
1910 ><code class="literal">NULL</code></a>)
1914 <td><p><span class="term"><em class="parameter"><code>weak_pos</code></em> :</span></p></td>
1915 <td> location to store the weak cursor position (may be <a
1916 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
1917 ><code class="literal">NULL</code></a>)
1924 <div class="refsect2" lang="en">
1925 <a name="pango-layout-move-cursor-visually"></a><h3>pango_layout_move_cursor_visually ()</h3>
1926 <pre class="programlisting">void pango_layout_move_cursor_visually (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
1928 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
1929 >gboolean</a> strong,
1934 int *new_trailing);</pre>
1936 Computes a new cursor position from an old position and
1937 a count of positions to move visually. If <em class="parameter"><code>direction</code></em> is positive,
1938 then the new strong cursor position will be one position
1939 to the right of the old cursor position. If <em class="parameter"><code>direction</code></em> is negative,
1940 then the new strong cursor position will be one position
1941 to the left of the old cursor position.
1944 In the presence of bidirectional text, the correspondence
1945 between logical and visual order will depend on the direction
1946 of the current run, and there may be jumps when the cursor
1947 is moved off of the end of a run.
1950 Motion here is in cursor positions, not in characters, so a
1951 single call to <a class="link" href="pango-Layout-Objects.html#pango-layout-move-cursor-visually" title="pango_layout_move_cursor_visually ()"><code class="function">pango_layout_move_cursor_visually()</code></a> may move the
1952 cursor over multiple characters when multiple characters combine
1953 to form a single grapheme.</p>
1956 <div class="variablelist"><table border="0">
1957 <col align="left" valign="top">
1960 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
1961 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>.
1965 <td><p><span class="term"><em class="parameter"><code>strong</code></em> :</span></p></td>
1966 <td> whether the moving cursor is the strong cursor or the
1967 weak cursor. The strong cursor is the cursor corresponding
1968 to text insertion in the base direction for the layout.
1972 <td><p><span class="term"><em class="parameter"><code>old_index</code></em> :</span></p></td>
1973 <td> the byte index of the grapheme for the old index
1977 <td><p><span class="term"><em class="parameter"><code>old_trailing</code></em> :</span></p></td>
1978 <td> if 0, the cursor was at the trailing edge of the
1979 grapheme indicated by <em class="parameter"><code>old_index</code></em>, if > 0, the cursor
1980 was at the leading edge.
1984 <td><p><span class="term"><em class="parameter"><code>direction</code></em> :</span></p></td>
1985 <td> direction to move cursor. A negative
1986 value indicates motion to the left.
1990 <td><p><span class="term"><em class="parameter"><code>new_index</code></em> :</span></p></td>
1991 <td> location to store the new cursor byte index. A value of -1
1992 indicates that the cursor has been moved off the beginning
1993 of the layout. A value of <a
1994 href="http://library.gnome.org/devel/glib/unstable/glib-Limits-of-Basic-Types.html#G-MAXINT--CAPS"
1995 ><code class="literal">G_MAXINT</code></a> indicates that
1996 the cursor has been moved off the end of the layout.
2000 <td><p><span class="term"><em class="parameter"><code>new_trailing</code></em> :</span></p></td>
2001 <td> number of characters to move forward from the location returned
2002 for <em class="parameter"><code>new_index</code></em> to get the position where the cursor should
2003 be displayed. This allows distinguishing the position at
2004 the beginning of one line from the position at the end
2005 of the preceding line. <em class="parameter"><code>new_index</code></em> is always on the line
2006 where the cursor should be displayed.
2013 <div class="refsect2" lang="en">
2014 <a name="pango-layout-get-extents"></a><h3>pango_layout_get_extents ()</h3>
2015 <pre class="programlisting">void pango_layout_get_extents (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
2016 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *ink_rect,
2017 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *logical_rect);</pre>
2019 Computes the logical and ink extents of <em class="parameter"><code>layout</code></em>. Logical extents
2020 are usually what you want for positioning things. Note that both extents
2021 may have non-zero x and y. You may want to use those to offset where you
2022 render the layout. Not doing that is a very typical bug that shows up as
2023 right-to-left layouts not being correctly positioned in a layout with
2027 The extents are given in layout coordinates and in Pango units; layout
2028 coordinates begin at the top left corner of the layout.</p>
2031 <div class="variablelist"><table border="0">
2032 <col align="left" valign="top">
2035 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
2036 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
2040 <td><p><span class="term"><em class="parameter"><code>ink_rect</code></em> :</span></p></td>
2041 <td> rectangle used to store the extents of the layout as drawn
2043 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2044 ><code class="literal">NULL</code></a> to indicate that the result is not needed.
2048 <td><p><span class="term"><em class="parameter"><code>logical_rect</code></em> :</span></p></td>
2049 <td> rectangle used to store the logical extents of the layout
2051 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2052 ><code class="literal">NULL</code></a> to indicate that the result is not needed.
2059 <div class="refsect2" lang="en">
2060 <a name="pango-layout-get-pixel-extents"></a><h3>pango_layout_get_pixel_extents ()</h3>
2061 <pre class="programlisting">void pango_layout_get_pixel_extents (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
2062 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *ink_rect,
2063 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *logical_rect);</pre>
2065 Computes the logical and ink extents of <em class="parameter"><code>layout</code></em> in device units.
2066 This function just calls <a class="link" href="pango-Layout-Objects.html#pango-layout-get-extents" title="pango_layout_get_extents ()"><code class="function">pango_layout_get_extents()</code></a> followed by
2067 two <a class="link" href="pango-Glyph-Storage.html#pango-extents-to-pixels" title="pango_extents_to_pixels ()"><code class="function">pango_extents_to_pixels()</code></a> calls, rounding <em class="parameter"><code>ink_rect</code></em> and <em class="parameter"><code>logical_rect</code></em>
2068 such that the rounded rectangles fully contain the unrounded one (that is,
2069 passes them as first argument to <a class="link" href="pango-Glyph-Storage.html#pango-extents-to-pixels" title="pango_extents_to_pixels ()"><code class="function">pango_extents_to_pixels()</code></a>).</p>
2072 <div class="variablelist"><table border="0">
2073 <col align="left" valign="top">
2076 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
2077 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
2081 <td><p><span class="term"><em class="parameter"><code>ink_rect</code></em> :</span></p></td>
2082 <td> rectangle used to store the extents of the layout as drawn
2084 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2085 ><code class="literal">NULL</code></a> to indicate that the result is not needed.
2089 <td><p><span class="term"><em class="parameter"><code>logical_rect</code></em> :</span></p></td>
2090 <td> rectangle used to store the logical extents of the
2092 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2093 ><code class="literal">NULL</code></a> to indicate that the result is not needed.
2100 <div class="refsect2" lang="en">
2101 <a name="pango-layout-get-size"></a><h3>pango_layout_get_size ()</h3>
2102 <pre class="programlisting">void pango_layout_get_size (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
2106 Determines the logical width and height of a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
2107 in Pango units (device units scaled by <a class="link" href="pango-Glyph-Storage.html#PANGO-SCALE--CAPS" title="PANGO_SCALE"><code class="literal">PANGO_SCALE</code></a>). This
2108 is simply a convenience function around <a class="link" href="pango-Layout-Objects.html#pango-layout-get-extents" title="pango_layout_get_extents ()"><code class="function">pango_layout_get_extents()</code></a>.</p>
2111 <div class="variablelist"><table border="0">
2112 <col align="left" valign="top">
2115 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
2116 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
2120 <td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
2121 <td> location to store the logical width, or <a
2122 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2123 ><code class="literal">NULL</code></a>
2127 <td><p><span class="term"><em class="parameter"><code>height</code></em> :</span></p></td>
2128 <td> location to store the logical height, or <a
2129 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2130 ><code class="literal">NULL</code></a>
2137 <div class="refsect2" lang="en">
2138 <a name="pango-layout-get-pixel-size"></a><h3>pango_layout_get_pixel_size ()</h3>
2139 <pre class="programlisting">void pango_layout_get_pixel_size (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
2143 Determines the logical width and height of a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
2144 in device units. (<a class="link" href="pango-Layout-Objects.html#pango-layout-get-size" title="pango_layout_get_size ()"><code class="function">pango_layout_get_size()</code></a> returns the width
2145 and height scaled by <a class="link" href="pango-Glyph-Storage.html#PANGO-SCALE--CAPS" title="PANGO_SCALE"><code class="literal">PANGO_SCALE</code></a>.) This
2146 is simply a convenience function around
2147 <a class="link" href="pango-Layout-Objects.html#pango-layout-get-pixel-extents" title="pango_layout_get_pixel_extents ()"><code class="function">pango_layout_get_pixel_extents()</code></a>.</p>
2150 <div class="variablelist"><table border="0">
2151 <col align="left" valign="top">
2154 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
2155 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
2159 <td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
2160 <td> location to store the logical width, or <a
2161 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2162 ><code class="literal">NULL</code></a>
2166 <td><p><span class="term"><em class="parameter"><code>height</code></em> :</span></p></td>
2167 <td> location to store the logical height, or <a
2168 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2169 ><code class="literal">NULL</code></a>
2176 <div class="refsect2" lang="en">
2177 <a name="pango-layout-get-baseline"></a><h3>pango_layout_get_baseline ()</h3>
2178 <pre class="programlisting">int pango_layout_get_baseline (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
2180 Gets the Y position of baseline of the first line in <em class="parameter"><code>layout</code></em>.</p>
2183 <div class="variablelist"><table border="0">
2184 <col align="left" valign="top">
2187 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
2188 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
2192 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2193 <td> baseline of first line, from top of <em class="parameter"><code>layout</code></em>.
2199 <p class="since">Since 1.22</p>
2202 <div class="refsect2" lang="en">
2203 <a name="pango-layout-get-line-count"></a><h3>pango_layout_get_line_count ()</h3>
2204 <pre class="programlisting">int pango_layout_get_line_count (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
2206 Retrieves the count of lines for the <em class="parameter"><code>layout</code></em>.</p>
2209 <div class="variablelist"><table border="0">
2210 <col align="left" valign="top">
2213 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
2214 <td> <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
2218 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2219 <td> the line count.
2226 <div class="refsect2" lang="en">
2227 <a name="pango-layout-get-line"></a><h3>pango_layout_get_line ()</h3>
2228 <pre class="programlisting"><a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> * pango_layout_get_line (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
2231 Retrieves a particular line from a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>.
2234 Use the faster <a class="link" href="pango-Layout-Objects.html#pango-layout-get-line-readonly" title="pango_layout_get_line_readonly ()"><code class="function">pango_layout_get_line_readonly()</code></a> if you do not plan
2235 to modify the contents of the line (glyphs, glyph widths, etc.).</p>
2238 <div class="variablelist"><table border="0">
2239 <col align="left" valign="top">
2242 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
2243 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
2247 <td><p><span class="term"><em class="parameter"><code>line</code></em> :</span></p></td>
2248 <td> the index of a line, which must be between 0 and
2249 <code class="literal">pango_layout_get_line_count(layout) - 1</code>, inclusive.
2253 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2254 <td> the requested <a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine"><span class="type">PangoLayoutLine</span></a>, or <a
2255 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2256 ><code class="literal">NULL</code></a> if the
2257 index is out of range. This layout line can
2258 be ref'ed and retained, but will become invalid
2259 if changes are made to the <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>.
2266 <div class="refsect2" lang="en">
2267 <a name="pango-layout-get-line-readonly"></a><h3>pango_layout_get_line_readonly ()</h3>
2268 <pre class="programlisting"><a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> * pango_layout_get_line_readonly (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout,
2271 Retrieves a particular line from a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>.
2274 This is a faster alternative to <a class="link" href="pango-Layout-Objects.html#pango-layout-get-line" title="pango_layout_get_line ()"><code class="function">pango_layout_get_line()</code></a>,
2275 but the user is not expected
2276 to modify the contents of the line (glyphs, glyph widths, etc.).</p>
2279 <div class="variablelist"><table border="0">
2280 <col align="left" valign="top">
2283 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
2284 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
2288 <td><p><span class="term"><em class="parameter"><code>line</code></em> :</span></p></td>
2289 <td> the index of a line, which must be between 0 and
2290 <code class="literal">pango_layout_get_line_count(layout) - 1</code>, inclusive.
2294 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2295 <td> the requested <a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine"><span class="type">PangoLayoutLine</span></a>, or <a
2296 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2297 ><code class="literal">NULL</code></a> if the
2298 index is out of range. This layout line can
2299 be ref'ed and retained, but will become invalid
2300 if changes are made to the <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>.
2301 No changes should be made to the line.
2307 <p class="since">Since 1.16</p>
2310 <div class="refsect2" lang="en">
2311 <a name="pango-layout-get-lines"></a><h3>pango_layout_get_lines ()</h3>
2312 <pre class="programlisting"><a
2313 href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"
2314 >GSList</a> * pango_layout_get_lines (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
2316 Returns the lines of the <em class="parameter"><code>layout</code></em> as a list.
2319 Use the faster <a class="link" href="pango-Layout-Objects.html#pango-layout-get-lines-readonly" title="pango_layout_get_lines_readonly ()"><code class="function">pango_layout_get_lines_readonly()</code></a> if you do not plan
2320 to modify the contents of the lines (glyphs, glyph widths, etc.).</p>
2323 <div class="variablelist"><table border="0">
2324 <col align="left" valign="top">
2327 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
2328 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
2332 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2333 <td>element-type Pango.LayoutLine): (transfer none. <a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=element-type%20Pango.LayoutLine):%20(transfer"><span class="acronym">element-type Pango.LayoutLine): (transfer</span></a> none. </td>
2339 <div class="refsect2" lang="en">
2340 <a name="pango-layout-get-lines-readonly"></a><h3>pango_layout_get_lines_readonly ()</h3>
2341 <pre class="programlisting"><a
2342 href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"
2343 >GSList</a> * pango_layout_get_lines_readonly (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
2345 Returns the lines of the <em class="parameter"><code>layout</code></em> as a list.
2348 This is a faster alternative to <a class="link" href="pango-Layout-Objects.html#pango-layout-get-lines" title="pango_layout_get_lines ()"><code class="function">pango_layout_get_lines()</code></a>,
2349 but the user is not expected
2350 to modify the contents of the lines (glyphs, glyph widths, etc.).</p>
2353 <div class="variablelist"><table border="0">
2354 <col align="left" valign="top">
2357 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
2358 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
2362 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2363 <td>element-type Pango.LayoutLine): (transfer none. <a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=element-type%20Pango.LayoutLine):%20(transfer"><span class="acronym">element-type Pango.LayoutLine): (transfer</span></a> none. </td>
2367 <p class="since">Since 1.16</p>
2370 <div class="refsect2" lang="en">
2371 <a name="pango-layout-get-iter"></a><h3>pango_layout_get_iter ()</h3>
2372 <pre class="programlisting"><a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> * pango_layout_get_iter (<a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *layout);</pre>
2374 Returns an iterator to iterate over the visual extents of the layout.</p>
2377 <div class="variablelist"><table border="0">
2378 <col align="left" valign="top">
2381 <td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
2382 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>
2386 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2387 <td> the new <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a> that should be freed using
2388 <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-free" title="pango_layout_iter_free ()"><code class="function">pango_layout_iter_free()</code></a>.
2395 <div class="refsect2" lang="en">
2396 <a name="pango-layout-iter-copy"></a><h3>pango_layout_iter_copy ()</h3>
2397 <pre class="programlisting"><a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> * pango_layout_iter_copy (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);</pre>
2399 Copies a <span class="type">PangLayoutIter</span>.</p>
2402 <div class="variablelist"><table border="0">
2403 <col align="left" valign="top">
2406 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
2407 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a>, may be <a
2408 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2409 ><code class="literal">NULL</code></a>
2413 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2414 <td> the newly allocated <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a>, which should
2415 be freed with <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-free" title="pango_layout_iter_free ()"><code class="function">pango_layout_iter_free()</code></a>, or <a
2416 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2417 ><code class="literal">NULL</code></a> if
2418 <em class="parameter"><code>iter</code></em> was <a
2419 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2420 ><code class="literal">NULL</code></a>.
2426 <p class="since">Since 1.20</p>
2429 <div class="refsect2" lang="en">
2430 <a name="pango-layout-iter-free"></a><h3>pango_layout_iter_free ()</h3>
2431 <pre class="programlisting">void pango_layout_iter_free (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);</pre>
2433 Frees an iterator that's no longer in use.</p>
2436 <div class="variablelist"><table border="0">
2437 <col align="left" valign="top">
2439 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
2440 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a>, may be <a
2441 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2442 ><code class="literal">NULL</code></a>
2448 <div class="refsect2" lang="en">
2449 <a name="pango-layout-iter-next-run"></a><h3>pango_layout_iter_next_run ()</h3>
2450 <pre class="programlisting"><a
2451 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
2452 >gboolean</a> pango_layout_iter_next_run (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);</pre>
2454 Moves <em class="parameter"><code>iter</code></em> forward to the next run in visual order. If <em class="parameter"><code>iter</code></em> was
2455 already at the end of the layout, returns <a
2456 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE--CAPS"
2457 ><code class="literal">FALSE</code></a>.</p>
2460 <div class="variablelist"><table border="0">
2461 <col align="left" valign="top">
2464 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
2465 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a>
2469 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2470 <td> whether motion was possible.
2477 <div class="refsect2" lang="en">
2478 <a name="pango-layout-iter-next-char"></a><h3>pango_layout_iter_next_char ()</h3>
2479 <pre class="programlisting"><a
2480 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
2481 >gboolean</a> pango_layout_iter_next_char (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);</pre>
2483 Moves <em class="parameter"><code>iter</code></em> forward to the next character in visual order. If <em class="parameter"><code>iter</code></em> was already at
2484 the end of the layout, returns <a
2485 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE--CAPS"
2486 ><code class="literal">FALSE</code></a>.</p>
2489 <div class="variablelist"><table border="0">
2490 <col align="left" valign="top">
2493 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
2494 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a>
2498 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2499 <td> whether motion was possible.
2506 <div class="refsect2" lang="en">
2507 <a name="pango-layout-iter-next-cluster"></a><h3>pango_layout_iter_next_cluster ()</h3>
2508 <pre class="programlisting"><a
2509 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
2510 >gboolean</a> pango_layout_iter_next_cluster (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);</pre>
2512 Moves <em class="parameter"><code>iter</code></em> forward to the next cluster in visual order. If <em class="parameter"><code>iter</code></em>
2513 was already at the end of the layout, returns <a
2514 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE--CAPS"
2515 ><code class="literal">FALSE</code></a>.</p>
2518 <div class="variablelist"><table border="0">
2519 <col align="left" valign="top">
2522 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
2523 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a>
2527 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2528 <td> whether motion was possible.
2535 <div class="refsect2" lang="en">
2536 <a name="pango-layout-iter-next-line"></a><h3>pango_layout_iter_next_line ()</h3>
2537 <pre class="programlisting"><a
2538 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
2539 >gboolean</a> pango_layout_iter_next_line (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);</pre>
2541 Moves <em class="parameter"><code>iter</code></em> forward to the start of the next line. If <em class="parameter"><code>iter</code></em> is
2542 already on the last line, returns <a
2543 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE--CAPS"
2544 ><code class="literal">FALSE</code></a>.</p>
2547 <div class="variablelist"><table border="0">
2548 <col align="left" valign="top">
2551 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
2552 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a>
2556 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2557 <td> whether motion was possible.
2564 <div class="refsect2" lang="en">
2565 <a name="pango-layout-iter-at-last-line"></a><h3>pango_layout_iter_at_last_line ()</h3>
2566 <pre class="programlisting"><a
2567 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
2568 >gboolean</a> pango_layout_iter_at_last_line (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);</pre>
2570 Determines whether <em class="parameter"><code>iter</code></em> is on the last line of the layout.</p>
2573 <div class="variablelist"><table border="0">
2574 <col align="left" valign="top">
2577 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
2578 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a>
2582 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2584 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE--CAPS"
2585 ><code class="literal">TRUE</code></a> if <em class="parameter"><code>iter</code></em> is on the last line.
2592 <div class="refsect2" lang="en">
2593 <a name="pango-layout-iter-get-index"></a><h3>pango_layout_iter_get_index ()</h3>
2594 <pre class="programlisting">int pango_layout_iter_get_index (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);</pre>
2596 Gets the current byte index. Note that iterating forward by char
2597 moves in visual order, not logical order, so indexes may not be
2598 sequential. Also, the index may be equal to the length of the text
2599 in the layout, if on the <a
2600 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2601 ><code class="literal">NULL</code></a> run (see <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-get-run" title="pango_layout_iter_get_run ()"><code class="function">pango_layout_iter_get_run()</code></a>).</p>
2604 <div class="variablelist"><table border="0">
2605 <col align="left" valign="top">
2608 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
2609 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a>
2613 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2614 <td> current byte index.
2621 <div class="refsect2" lang="en">
2622 <a name="pango-layout-iter-get-baseline"></a><h3>pango_layout_iter_get_baseline ()</h3>
2623 <pre class="programlisting">int pango_layout_iter_get_baseline (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);</pre>
2625 Gets the Y position of the current line's baseline, in layout
2626 coordinates (origin at top left of the entire layout).</p>
2629 <div class="variablelist"><table border="0">
2630 <col align="left" valign="top">
2633 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
2634 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a>
2638 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2639 <td> baseline of current line.
2646 <div class="refsect2" lang="en">
2647 <a name="pango-layout-iter-get-run"></a><h3>pango_layout_iter_get_run ()</h3>
2648 <pre class="programlisting"><a class="link" href="pango-Layout-Objects.html#PangoLayoutRun" title="PangoLayoutRun">PangoLayoutRun</a> * pango_layout_iter_get_run (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);</pre>
2650 Gets the current run. When iterating by run, at the end of each
2651 line, there's a position with a <a
2652 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2653 ><code class="literal">NULL</code></a> run, so this function can return
2655 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2656 ><code class="literal">NULL</code></a>. The <a
2657 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2658 ><code class="literal">NULL</code></a> run at the end of each line ensures that all lines have
2659 at least one run, even lines consisting of only a newline.
2662 Use the faster <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-get-run-readonly" title="pango_layout_iter_get_run_readonly ()"><code class="function">pango_layout_iter_get_run_readonly()</code></a> if you do not plan
2663 to modify the contents of the run (glyphs, glyph widths, etc.).</p>
2666 <div class="variablelist"><table border="0">
2667 <col align="left" valign="top">
2670 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
2671 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a>
2675 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2676 <td> the current run.
2683 <div class="refsect2" lang="en">
2684 <a name="pango-layout-iter-get-run-readonly"></a><h3>pango_layout_iter_get_run_readonly ()</h3>
2685 <pre class="programlisting"><a class="link" href="pango-Layout-Objects.html#PangoLayoutRun" title="PangoLayoutRun">PangoLayoutRun</a> * pango_layout_iter_get_run_readonly (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);</pre>
2687 Gets the current run. When iterating by run, at the end of each
2688 line, there's a position with a <a
2689 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2690 ><code class="literal">NULL</code></a> run, so this function can return
2692 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2693 ><code class="literal">NULL</code></a>. The <a
2694 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2695 ><code class="literal">NULL</code></a> run at the end of each line ensures that all lines have
2696 at least one run, even lines consisting of only a newline.
2699 This is a faster alternative to <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-get-run" title="pango_layout_iter_get_run ()"><code class="function">pango_layout_iter_get_run()</code></a>,
2700 but the user is not expected
2701 to modify the contents of the run (glyphs, glyph widths, etc.).</p>
2704 <div class="variablelist"><table border="0">
2705 <col align="left" valign="top">
2708 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
2709 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a>
2713 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2714 <td> the current run, that should not be modified.
2720 <p class="since">Since 1.16</p>
2723 <div class="refsect2" lang="en">
2724 <a name="pango-layout-iter-get-line"></a><h3>pango_layout_iter_get_line ()</h3>
2725 <pre class="programlisting"><a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> * pango_layout_iter_get_line (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);</pre>
2727 Gets the current line.
2730 Use the faster <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-get-line-readonly" title="pango_layout_iter_get_line_readonly ()"><code class="function">pango_layout_iter_get_line_readonly()</code></a> if you do not plan
2731 to modify the contents of the line (glyphs, glyph widths, etc.).</p>
2734 <div class="variablelist"><table border="0">
2735 <col align="left" valign="top">
2738 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
2739 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a>
2743 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2744 <td> the current line.
2751 <div class="refsect2" lang="en">
2752 <a name="pango-layout-iter-get-line-readonly"></a><h3>pango_layout_iter_get_line_readonly ()</h3>
2753 <pre class="programlisting"><a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> * pango_layout_iter_get_line_readonly (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);</pre>
2755 Gets the current line for read-only access.
2758 This is a faster alternative to <a class="link" href="pango-Layout-Objects.html#pango-layout-iter-get-line" title="pango_layout_iter_get_line ()"><code class="function">pango_layout_iter_get_line()</code></a>,
2759 but the user is not expected
2760 to modify the contents of the line (glyphs, glyph widths, etc.).</p>
2763 <div class="variablelist"><table border="0">
2764 <col align="left" valign="top">
2767 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
2768 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a>
2772 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2773 <td> the current line, that should not be modified.
2779 <p class="since">Since 1.16</p>
2782 <div class="refsect2" lang="en">
2783 <a name="pango-layout-iter-get-layout"></a><h3>pango_layout_iter_get_layout ()</h3>
2784 <pre class="programlisting"><a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> * pango_layout_iter_get_layout (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter);</pre>
2786 Gets the layout associated with a <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a>.</p>
2789 <div class="variablelist"><table border="0">
2790 <col align="left" valign="top">
2793 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
2794 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a>
2798 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2799 <td> the layout associated with <em class="parameter"><code>iter</code></em>.
2805 <p class="since">Since 1.20</p>
2808 <div class="refsect2" lang="en">
2809 <a name="pango-layout-iter-get-char-extents"></a><h3>pango_layout_iter_get_char_extents ()</h3>
2810 <pre class="programlisting">void pango_layout_iter_get_char_extents (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter,
2811 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *logical_rect);</pre>
2813 Gets the extents of the current character, in layout coordinates
2814 (origin is the top left of the entire layout). Only logical extents
2815 can sensibly be obtained for characters; ink extents make sense only
2816 down to the level of clusters.</p>
2819 <div class="variablelist"><table border="0">
2820 <col align="left" valign="top">
2823 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
2824 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a>
2828 <td><p><span class="term"><em class="parameter"><code>logical_rect</code></em> :</span></p></td>
2829 <td> rectangle to fill with logical extents
2836 <div class="refsect2" lang="en">
2837 <a name="pango-layout-iter-get-cluster-extents"></a><h3>pango_layout_iter_get_cluster_extents ()</h3>
2838 <pre class="programlisting">void pango_layout_iter_get_cluster_extents
2839 (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter,
2840 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *ink_rect,
2841 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *logical_rect);</pre>
2843 Gets the extents of the current cluster, in layout coordinates
2844 (origin is the top left of the entire layout).</p>
2847 <div class="variablelist"><table border="0">
2848 <col align="left" valign="top">
2851 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
2852 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a>
2856 <td><p><span class="term"><em class="parameter"><code>ink_rect</code></em> :</span></p></td>
2857 <td> rectangle to fill with ink extents, or <a
2858 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2859 ><code class="literal">NULL</code></a>
2863 <td><p><span class="term"><em class="parameter"><code>logical_rect</code></em> :</span></p></td>
2864 <td> rectangle to fill with logical extents, or <a
2865 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2866 ><code class="literal">NULL</code></a>
2873 <div class="refsect2" lang="en">
2874 <a name="pango-layout-iter-get-run-extents"></a><h3>pango_layout_iter_get_run_extents ()</h3>
2875 <pre class="programlisting">void pango_layout_iter_get_run_extents (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter,
2876 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *ink_rect,
2877 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *logical_rect);</pre>
2879 Gets the extents of the current run in layout coordinates
2880 (origin is the top left of the entire layout).</p>
2883 <div class="variablelist"><table border="0">
2884 <col align="left" valign="top">
2887 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
2888 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a>
2892 <td><p><span class="term"><em class="parameter"><code>ink_rect</code></em> :</span></p></td>
2893 <td> rectangle to fill with ink extents, or <a
2894 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2895 ><code class="literal">NULL</code></a>
2899 <td><p><span class="term"><em class="parameter"><code>logical_rect</code></em> :</span></p></td>
2900 <td> rectangle to fill with logical extents, or <a
2901 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2902 ><code class="literal">NULL</code></a>
2909 <div class="refsect2" lang="en">
2910 <a name="pango-layout-iter-get-line-yrange"></a><h3>pango_layout_iter_get_line_yrange ()</h3>
2911 <pre class="programlisting">void pango_layout_iter_get_line_yrange (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter,
2915 Divides the vertical space in the <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a> being iterated over
2916 between the lines in the layout, and returns the space belonging to
2917 the current line. A line's range includes the line's logical
2918 extents, plus half of the spacing above and below the line, if
2919 <a class="link" href="pango-Layout-Objects.html#pango-layout-set-spacing" title="pango_layout_set_spacing ()"><code class="function">pango_layout_set_spacing()</code></a> has been called to set layout spacing.
2920 The Y positions are in layout coordinates (origin at top left of the
2924 <div class="variablelist"><table border="0">
2925 <col align="left" valign="top">
2928 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
2929 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a>
2933 <td><p><span class="term"><em class="parameter"><code>y0_</code></em> :</span></p></td>
2938 <td><p><span class="term"><em class="parameter"><code>y1_</code></em> :</span></p></td>
2946 <div class="refsect2" lang="en">
2947 <a name="pango-layout-iter-get-line-extents"></a><h3>pango_layout_iter_get_line_extents ()</h3>
2948 <pre class="programlisting">void pango_layout_iter_get_line_extents (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter,
2949 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *ink_rect,
2950 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *logical_rect);</pre>
2952 Obtains the extents of the current line. <em class="parameter"><code>ink_rect</code></em> or <em class="parameter"><code>logical_rect</code></em>
2954 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2955 ><code class="literal">NULL</code></a> if you aren't interested in them. Extents are in layout
2956 coordinates (origin is the top-left corner of the entire
2957 <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>). Thus the extents returned by this function will be
2958 the same width/height but not at the same x/y as the extents
2959 returned from <a class="link" href="pango-Layout-Objects.html#pango-layout-line-get-extents" title="pango_layout_line_get_extents ()"><code class="function">pango_layout_line_get_extents()</code></a>.</p>
2962 <div class="variablelist"><table border="0">
2963 <col align="left" valign="top">
2966 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
2967 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a>
2971 <td><p><span class="term"><em class="parameter"><code>ink_rect</code></em> :</span></p></td>
2972 <td> rectangle to fill with ink extents, or <a
2973 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2974 ><code class="literal">NULL</code></a>
2978 <td><p><span class="term"><em class="parameter"><code>logical_rect</code></em> :</span></p></td>
2979 <td> rectangle to fill with logical extents, or <a
2980 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2981 ><code class="literal">NULL</code></a>
2988 <div class="refsect2" lang="en">
2989 <a name="pango-layout-iter-get-layout-extents"></a><h3>pango_layout_iter_get_layout_extents ()</h3>
2990 <pre class="programlisting">void pango_layout_iter_get_layout_extents
2991 (<a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter">PangoLayoutIter</a> *iter,
2992 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *ink_rect,
2993 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *logical_rect);</pre>
2995 Obtains the extents of the <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a> being iterated
2996 over. <em class="parameter"><code>ink_rect</code></em> or <em class="parameter"><code>logical_rect</code></em> can be <a
2997 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
2998 ><code class="literal">NULL</code></a> if you
2999 aren't interested in them.</p>
3002 <div class="variablelist"><table border="0">
3003 <col align="left" valign="top">
3006 <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
3007 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutIter" title="PangoLayoutIter"><span class="type">PangoLayoutIter</span></a>
3011 <td><p><span class="term"><em class="parameter"><code>ink_rect</code></em> :</span></p></td>
3012 <td> rectangle to fill with ink extents, or <a
3013 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
3014 ><code class="literal">NULL</code></a>
3018 <td><p><span class="term"><em class="parameter"><code>logical_rect</code></em> :</span></p></td>
3019 <td> rectangle to fill with logical extents, or <a
3020 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
3021 ><code class="literal">NULL</code></a>
3028 <div class="refsect2" lang="en">
3029 <a name="PangoLayoutLine"></a><h3>PangoLayoutLine</h3>
3030 <pre class="programlisting">typedef struct {
3031 PangoLayout *layout;
3032 gint start_index; /* start of line as byte index into layout->text */
3033 gint length; /* length of line in bytes */
3035 guint is_paragraph_start : 1; /* TRUE if this is the first line of the paragraph */
3036 guint resolved_dir : 3; /* Resolved PangoDirection of line */
3040 The <a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine"><span class="type">PangoLayoutLine</span></a> structure represents one of the lines resulting
3041 from laying out a paragraph via <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>. <a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine"><span class="type">PangoLayoutLine</span></a>
3042 structures are obtained by calling <a class="link" href="pango-Layout-Objects.html#pango-layout-get-line" title="pango_layout_get_line ()"><code class="function">pango_layout_get_line()</code></a> and
3043 are only valid until the text, attributes, or settings of the
3044 parent <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a> are modified.
3047 Routines for rendering PangoLayout objects are provided in
3048 code specific to each rendering system.
3050 <div class="variablelist"><table border="0">
3051 <col align="left" valign="top">
3054 <td><p><span class="term"><a class="link" href="pango-Layout-Objects.html#PangoLayout">PangoLayout</a> *<em class="structfield"><code>layout</code></em>;</span></p></td>
3055 <td>the parent layout for this line
3059 <td><p><span class="term"><a
3060 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
3061 >gint</a> <em class="structfield"><code>start_index</code></em>;</span></p></td>
3062 <td>the start of the line as byte index into <em class="parameter"><code>layout->text</code></em>
3066 <td><p><span class="term"><a
3067 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
3068 >gint</a> <em class="structfield"><code>length</code></em>;</span></p></td>
3069 <td>the length of the line in bytes
3073 <td><p><span class="term"><a
3074 href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"
3075 >GSList</a> *<em class="structfield"><code>runs</code></em>;</span></p></td>
3076 <td>a list containing the runs of the line in visual order
3080 <td><p><span class="term"><a
3081 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"
3082 >guint</a> <em class="structfield"><code>is_paragraph_start</code></em> : 1;</span></p></td>
3083 <td>%TRUE if this is the first line of the paragraph
3087 <td><p><span class="term"><a
3088 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"
3089 >guint</a> <em class="structfield"><code>resolved_dir</code></em> : 3;</span></p></td>
3090 <td>the resolved <a class="link" href="pango-Bidirectional-Text.html#PangoDirection" title="enum PangoDirection"><span class="type">PangoDirection</span></a> of the line
3097 <div class="refsect2" lang="en">
3098 <a name="PangoLayoutRun"></a><h3>PangoLayoutRun</h3>
3099 <pre class="programlisting">typedef PangoGlyphItem PangoLayoutRun;
3102 The <a class="link" href="pango-Layout-Objects.html#PangoLayoutRun" title="PangoLayoutRun"><span class="type">PangoLayoutRun</span></a> structure represents a single run within
3103 a <a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine"><span class="type">PangoLayoutLine</span></a>; it is simply an alternate name for
3104 <a class="link" href="pango-Glyph-Storage.html#PangoGlyphItem" title="PangoGlyphItem"><span class="type">PangoGlyphItem</span></a>.
3105 See the <a class="link" href="pango-Glyph-Storage.html#PangoGlyphItem" title="PangoGlyphItem"><span class="type">PangoGlyphItem</span></a> docs for details on the fields.
3109 <div class="refsect2" lang="en">
3110 <a name="pango-layout-line-ref"></a><h3>pango_layout_line_ref ()</h3>
3111 <pre class="programlisting"><a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> * pango_layout_line_ref (<a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> *line);</pre>
3113 Increase the reference count of a <a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine"><span class="type">PangoLayoutLine</span></a> by one.</p>
3116 <div class="variablelist"><table border="0">
3117 <col align="left" valign="top">
3120 <td><p><span class="term"><em class="parameter"><code>line</code></em> :</span></p></td>
3121 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine"><span class="type">PangoLayoutLine</span></a>, may be <a
3122 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
3123 ><code class="literal">NULL</code></a>
3127 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3128 <td> the line passed in.
3134 <p class="since">Since 1.10</p>
3137 <div class="refsect2" lang="en">
3138 <a name="pango-layout-line-unref"></a><h3>pango_layout_line_unref ()</h3>
3139 <pre class="programlisting">void pango_layout_line_unref (<a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> *line);</pre>
3141 Decrease the reference count of a <a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine"><span class="type">PangoLayoutLine</span></a> by one.
3142 If the result is zero, the line and all associated memory
3146 <div class="variablelist"><table border="0">
3147 <col align="left" valign="top">
3149 <td><p><span class="term"><em class="parameter"><code>line</code></em> :</span></p></td>
3150 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine"><span class="type">PangoLayoutLine</span></a>
3156 <div class="refsect2" lang="en">
3157 <a name="pango-layout-line-get-extents"></a><h3>pango_layout_line_get_extents ()</h3>
3158 <pre class="programlisting">void pango_layout_line_get_extents (<a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> *line,
3159 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *ink_rect,
3160 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *logical_rect);</pre>
3162 Computes the logical and ink extents of a layout line. See
3163 <a class="link" href="pango-Fonts.html#pango-font-get-glyph-extents" title="pango_font_get_glyph_extents ()"><code class="function">pango_font_get_glyph_extents()</code></a> for details about the interpretation
3164 of the rectangles.</p>
3167 <div class="variablelist"><table border="0">
3168 <col align="left" valign="top">
3171 <td><p><span class="term"><em class="parameter"><code>line</code></em> :</span></p></td>
3172 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine"><span class="type">PangoLayoutLine</span></a>
3176 <td><p><span class="term"><em class="parameter"><code>ink_rect</code></em> :</span></p></td>
3177 <td> rectangle used to store the extents of the glyph string
3179 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
3180 ><code class="literal">NULL</code></a>
3184 <td><p><span class="term"><em class="parameter"><code>logical_rect</code></em> :</span></p></td>
3185 <td> rectangle used to store the logical extents of the glyph
3187 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
3188 ><code class="literal">NULL</code></a>
3195 <div class="refsect2" lang="en">
3196 <a name="pango-layout-line-get-pixel-extents"></a><h3>pango_layout_line_get_pixel_extents ()</h3>
3197 <pre class="programlisting">void pango_layout_line_get_pixel_extents (<a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> *layout_line,
3198 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *ink_rect,
3199 <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *logical_rect);</pre>
3201 Computes the logical and ink extents of <em class="parameter"><code>layout_line</code></em> in device units.
3202 This function just calls <a class="link" href="pango-Layout-Objects.html#pango-layout-line-get-extents" title="pango_layout_line_get_extents ()"><code class="function">pango_layout_line_get_extents()</code></a> followed by
3203 two <a class="link" href="pango-Glyph-Storage.html#pango-extents-to-pixels" title="pango_extents_to_pixels ()"><code class="function">pango_extents_to_pixels()</code></a> calls, rounding <em class="parameter"><code>ink_rect</code></em> and <em class="parameter"><code>logical_rect</code></em>
3204 such that the rounded rectangles fully contain the unrounded one (that is,
3205 passes them as first argument to <a class="link" href="pango-Glyph-Storage.html#pango-extents-to-pixels" title="pango_extents_to_pixels ()"><code class="function">pango_extents_to_pixels()</code></a>).</p>
3208 <div class="variablelist"><table border="0">
3209 <col align="left" valign="top">
3212 <td><p><span class="term"><em class="parameter"><code>layout_line</code></em> :</span></p></td>
3213 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine"><span class="type">PangoLayoutLine</span></a>
3217 <td><p><span class="term"><em class="parameter"><code>ink_rect</code></em> :</span></p></td>
3218 <td> rectangle used to store the extents of the glyph string
3220 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
3221 ><code class="literal">NULL</code></a>
3225 <td><p><span class="term"><em class="parameter"><code>logical_rect</code></em> :</span></p></td>
3226 <td> rectangle used to store the logical extents of the glyph
3228 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
3229 ><code class="literal">NULL</code></a>
3236 <div class="refsect2" lang="en">
3237 <a name="pango-layout-line-index-to-x"></a><h3>pango_layout_line_index_to_x ()</h3>
3238 <pre class="programlisting">void pango_layout_line_index_to_x (<a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> *line,
3241 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
3242 >gboolean</a> trailing,
3245 Converts an index within a line to a X position.</p>
3248 <div class="variablelist"><table border="0">
3249 <col align="left" valign="top">
3252 <td><p><span class="term"><em class="parameter"><code>line</code></em> :</span></p></td>
3253 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine"><span class="type">PangoLayoutLine</span></a>
3257 <td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
3258 <td> byte offset of a grapheme within the layout
3262 <td><p><span class="term"><em class="parameter"><code>trailing</code></em> :</span></p></td>
3263 <td> an integer indicating the edge of the grapheme to retrieve
3264 the position of. If > 0, the trailing edge of the grapheme,
3265 if 0, the leading of the grapheme.
3269 <td><p><span class="term"><em class="parameter"><code>x_pos</code></em> :</span></p></td>
3270 <td> location to store the x_offset (in Pango unit)
3277 <div class="refsect2" lang="en">
3278 <a name="pango-layout-line-x-to-index"></a><h3>pango_layout_line_x_to_index ()</h3>
3279 <pre class="programlisting"><a
3280 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
3281 >gboolean</a> pango_layout_line_x_to_index (<a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> *line,
3284 int *trailing);</pre>
3286 Converts from x offset to the byte index of the corresponding
3287 character within the text of the layout. If <em class="parameter"><code>x_pos</code></em> is outside the line,
3288 <em class="parameter"><code>index_</code></em> and <em class="parameter"><code>trailing</code></em> will point to the very first or very last position
3289 in the line. This determination is based on the resolved direction
3290 of the paragraph; for example, if the resolved direction is
3291 right-to-left, then an X position to the right of the line (after it)
3292 results in 0 being stored in <em class="parameter"><code>index_</code></em> and <em class="parameter"><code>trailing</code></em>. An X position to the
3293 left of the line results in <em class="parameter"><code>index_</code></em> pointing to the (logical) last
3294 grapheme in the line and <em class="parameter"><code>trailing</code></em> being set to the number of characters
3295 in that grapheme. The reverse is true for a left-to-right line.</p>
3298 <div class="variablelist"><table border="0">
3299 <col align="left" valign="top">
3302 <td><p><span class="term"><em class="parameter"><code>line</code></em> :</span></p></td>
3303 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine"><span class="type">PangoLayoutLine</span></a>
3307 <td><p><span class="term"><em class="parameter"><code>x_pos</code></em> :</span></p></td>
3308 <td> the X offset (in Pango units)
3309 from the left edge of the line.
3313 <td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
3314 <td> location to store calculated byte index for
3315 the grapheme in which the user clicked.
3319 <td><p><span class="term"><em class="parameter"><code>trailing</code></em> :</span></p></td>
3320 <td> location to store an integer indicating where
3321 in the grapheme the user clicked. It will either
3322 be zero, or the number of characters in the
3323 grapheme. 0 represents the leading edge of the grapheme.
3327 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3329 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE--CAPS"
3330 ><code class="literal">FALSE</code></a> if <em class="parameter"><code>x_pos</code></em> was outside the line, <a
3331 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE--CAPS"
3332 ><code class="literal">TRUE</code></a> if inside
3339 <div class="refsect2" lang="en">
3340 <a name="pango-layout-line-get-x-ranges"></a><h3>pango_layout_line_get_x_ranges ()</h3>
3341 <pre class="programlisting">void pango_layout_line_get_x_ranges (<a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine">PangoLayoutLine</a> *line,
3345 int *n_ranges);</pre>
3347 Gets a list of visual ranges corresponding to a given logical range.
3348 This list is not necessarily minimal - there may be consecutive
3349 ranges which are adjacent. The ranges will be sorted from left to
3350 right. The ranges are with respect to the left edge of the entire
3351 layout, not with respect to the line.</p>
3354 <div class="variablelist"><table border="0">
3355 <col align="left" valign="top">
3358 <td><p><span class="term"><em class="parameter"><code>line</code></em> :</span></p></td>
3359 <td> a <a class="link" href="pango-Layout-Objects.html#PangoLayoutLine" title="PangoLayoutLine"><span class="type">PangoLayoutLine</span></a>
3363 <td><p><span class="term"><em class="parameter"><code>start_index</code></em> :</span></p></td>
3364 <td> Start byte index of the logical range. If this value
3365 is less than the start index for the line, then
3366 the first range will extend all the way to the leading
3367 edge of the layout. Otherwise it will start at the
3368 leading edge of the first character.
3372 <td><p><span class="term"><em class="parameter"><code>end_index</code></em> :</span></p></td>
3373 <td> Ending byte index of the logical range. If this value
3374 is greater than the end index for the line, then
3375 the last range will extend all the way to the trailing
3376 edge of the layout. Otherwise, it will end at the
3377 trailing edge of the last character.
3381 <td><p><span class="term"><em class="parameter"><code>ranges</code></em> :</span></p></td>
3382 <td>out): (array length=n_ranges): (transfer=full. <a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=out):%20(array%20length=n_ranges):"><span class="acronym">out): (array length=n_ranges):</span></a> (transfer=full. </td>
3385 <td><p><span class="term"><em class="parameter"><code>n_ranges</code></em> :</span></p></td>
3386 <td> The number of ranges stored in <em class="parameter"><code>ranges</code></em>.
3394 <div class="footer">
3396 Generated by GTK-Doc V1.11</div>