Git init
[external/pango1.0.git] / docs / html / pango-Layout-Objects.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>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">
33 </head>
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">
36 <tr valign="middle">
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>
42 </tr>
43 <tr><td colspan="5" class="shortcuts">
44 <a href="#pango-Layout-Objects.synopsis" class="shortcut">Top</a>
45                  | 
46                 <a href="#pango-Layout-Objects.description" class="shortcut">Description</a>
47                  | 
48                 <a href="#pango-Layout-Objects.object-hierarchy" class="shortcut">Object Hierarchy</a>
49 </td></tr>
50 </table>
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>
54 <td valign="top">
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>
57 </td>
58 <td valign="top" align="right"></td>
59 </tr></table></div>
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,
70                                                          const char *text,
71                                                          int length);
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,
74                                                          const char *markup,
75                                                          int length);
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,
77                                                          const char *markup,
78                                                          int length,
79                                                          <a
80 href="http://library.gnome.org/devel/glib/unstable/glib-Unicode-Manipulation.html#gunichar"
81 >gunichar</a> accel_marker,
82                                                          <a
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,
93                                                          int width);
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,
96                                                          int height);
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);
101 <a
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);
109 <a
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,
115                                                          int indent);
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,
119                                                          int spacing);
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,
121                                                          <a
122 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
123 >gboolean</a> justify);
124 <a
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,
128                                                          <a
129 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
130 >gboolean</a> auto_dir);
131 <a
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,
142                                                          <a
143 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
144 >gboolean</a> setting);
145 <a
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,
155                                                          <a
156 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
157 >gint</a> *n_attrs);
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,
159                                                          int index_,
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,
162                                                          int index_,
163                                                          <a
164 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
165 >gboolean</a> trailing,
166                                                          int *line,
167                                                          int *x_pos);
168 <a
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,
171                                                          int x,
172                                                          int y,
173                                                          int *index_,
174                                                          int *trailing);
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,
176                                                          int index_,
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,
180                                                          <a
181 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
182 >gboolean</a> strong,
183                                                          int old_index,
184                                                          int old_trailing,
185                                                          int direction,
186                                                          int *new_index,
187                                                          int *new_trailing);
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,
195                                                          int *width,
196                                                          int *height);
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,
198                                                          int *width,
199                                                          int *height);
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,
203                                                          int line);
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,
205                                                          int line);
206 <a
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);
209 <a
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);
215 <a
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);
218 <a
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);
221 <a
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);
224 <a
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);
227 <a
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,
247                                                          int *y0_,
248                                                          int *y1_);
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);
256
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,
268                                                          int index_,
269                                                          <a
270 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
271 >gboolean</a> trailing,
272                                                          int *x_pos);
273 <a
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,
276                                                          int x_pos,
277                                                          int *index_,
278                                                          int *trailing);
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,
280                                                          int start_index,
281                                                          int end_index,
282                                                          int **ranges,
283                                                          int *n_ranges);
284 </pre>
285 </div>
286 <div class="refsect1" lang="en">
287 <a name="pango-Layout-Objects.object-hierarchy"></a><h2>Object Hierarchy</h2>
288 <pre class="synopsis">
289   <a
290 href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"
291 >GObject</a>
292    +----PangoLayout
293 </pre>
294 </div>
295 <div class="refsect1" lang="en">
296 <a name="pango-Layout-Objects.description"></a><h2>Description</h2>
297 <p>
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
303 at once.
304 </p>
305 </div>
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>
311 <p>
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.
319 </p>
320 <p>
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.
325 </p>
326 <div class="figure">
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>
329 </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
332 fields.
333 </p>
334 </div>
335 <hr>
336 <div class="refsect2" lang="en">
337 <a name="PangoLayoutIter"></a><h3>PangoLayoutIter</h3>
338 <pre class="programlisting">typedef struct _PangoLayoutIter PangoLayoutIter;</pre>
339 <p>
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>.
342 </p>
343 <p>
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.
346 </p>
347 </div>
348 <hr>
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>
352 <p>
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>
355 <p>
356 </p>
357 <div class="variablelist"><table border="0">
358 <col align="left" valign="top">
359 <tbody>
360 <tr>
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>
363 </td>
364 </tr>
365 <tr>
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
369               <a
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>.
372 </td>
373 </tr>
374 </tbody>
375 </table></div>
376 </div>
377 <hr>
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>
381 <p>
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
384 value.</p>
385 <p>
386 </p>
387 <div class="variablelist"><table border="0">
388 <col align="left" valign="top">
389 <tbody>
390 <tr>
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>
393 </td>
394 </tr>
395 <tr>
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
399               <a
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>.
402 </td>
403 </tr>
404 </tbody>
405 </table></div>
406 </div>
407 <hr>
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>
411 <p>
412 Retrieves the <a class="link" href="pango-Text-Processing.html#PangoContext"><span class="type">PangoContext</span></a> used for this layout.</p>
413 <p>
414 </p>
415 <div class="variablelist"><table border="0">
416 <col align="left" valign="top">
417 <tbody>
418 <tr>
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>
421 </td>
422 </tr>
423 <tr>
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.
428 </td>
429 </tr>
430 </tbody>
431 </table></div>
432 </div>
433 <hr>
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>
437 <p>
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>
442 <p>
443 </p>
444 <div class="variablelist"><table border="0">
445 <col align="left" valign="top">
446 <tbody><tr>
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>
449 </td>
450 </tr></tbody>
451 </table></div>
452 </div>
453 <hr>
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,
457                                                          const char *text,
458                                                          int length);</pre>
459 <p>
460 Sets the text of the layout.
461 </p>
462 <p>
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>
468 <p>
469 </p>
470 <div class="variablelist"><table border="0">
471 <col align="left" valign="top">
472 <tbody>
473 <tr>
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>
476 </td>
477 </tr>
478 <tr>
479 <td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
480 <td> a valid UTF-8 string
481 </td>
482 </tr>
483 <tr>
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
489          positive.
490 </td>
491 </tr>
492 </tbody>
493 </table></div>
494 </div>
495 <hr>
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>
499 <p>
500 Gets the text in the layout. The returned text should not
501 be freed or modified.</p>
502 <p>
503 </p>
504 <div class="variablelist"><table border="0">
505 <col align="left" valign="top">
506 <tbody>
507 <tr>
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>
510 </td>
511 </tr>
512 <tr>
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>.
515 </td>
516 </tr>
517 </tbody>
518 </table></div>
519 </div>
520 <hr>
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,
524                                                          const char *markup,
525                                                          int length);</pre>
526 <p>
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>
529 <p>
530 </p>
531 <div class="variablelist"><table border="0">
532 <col align="left" valign="top">
533 <tbody>
534 <tr>
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>
537 </td>
538 </tr>
539 <tr>
540 <td><p><span class="term"><em class="parameter"><code>markup</code></em> :</span></p></td>
541 <td> marked-up text
542 </td>
543 </tr>
544 <tr>
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
547 nul-terminated
548 </td>
549 </tr>
550 </tbody>
551 </table></div>
552 </div>
553 <hr>
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,
557                                                          const char *markup,
558                                                          int length,
559                                                          <a
560 href="http://library.gnome.org/devel/glib/unstable/glib-Unicode-Manipulation.html#gunichar"
561 >gunichar</a> accel_marker,
562                                                          <a
563 href="http://library.gnome.org/devel/glib/unstable/glib-Unicode-Manipulation.html#gunichar"
564 >gunichar</a> *accel_char);</pre>
565 <p>
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.
569 </p>
570 <p>
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>
578 <p>
579 </p>
580 <div class="variablelist"><table border="0">
581 <col align="left" valign="top">
582 <tbody>
583 <tr>
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>
586 </td>
587 </tr>
588 <tr>
589 <td><p><span class="term"><em class="parameter"><code>markup</code></em> :</span></p></td>
590 <td> marked-up text
591 (see <a class="link" href="PangoMarkupFormat.html" title="Text Attribute Markup">markup format</a>)
592 </td>
593 </tr>
594 <tr>
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
597 nul-terminated
598 </td>
599 </tr>
600 <tr>
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
603 </td>
604 </tr>
605 <tr>
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>
610 </td>
611 </tr>
612 </tbody>
613 </table></div>
614 </div>
615 <hr>
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>
620 <p>
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>
623 <p>
624 </p>
625 <div class="variablelist"><table border="0">
626 <col align="left" valign="top">
627 <tbody>
628 <tr>
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>
631 </td>
632 </tr>
633 <tr>
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>
638 </td>
639 </tr>
640 </tbody>
641 </table></div>
642 </div>
643 <hr>
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>
647 <p>
648 Gets the attribute list for the layout, if any.</p>
649 <p>
650 </p>
651 <div class="variablelist"><table border="0">
652 <col align="left" valign="top">
653 <tbody>
654 <tr>
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>
657 </td>
658 </tr>
659 <tr>
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>.
662 </td>
663 </tr>
664 </tbody>
665 </table></div>
666 </div>
667 <hr>
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>
672 <p>
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>
676 <p>
677 </p>
678 <div class="variablelist"><table border="0">
679 <col align="left" valign="top">
680 <tbody>
681 <tr>
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>
684 </td>
685 </tr>
686 <tr>
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
692 </td>
693 </tr>
694 </tbody>
695 </table></div>
696 </div>
697 <hr>
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>
702 <p>
703 Gets the font description for the layout, if any.</p>
704 <p>
705 </p>
706 <div class="variablelist"><table border="0">
707 <col align="left" valign="top">
708 <tbody>
709 <tr>
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>
712 </td>
713 </tr>
714 <tr>
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,
717  or <a
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.
722
723 </td>
724 </tr>
725 </tbody>
726 </table></div>
727 <p class="since">Since 1.8</p>
728 </div>
729 <hr>
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,
733                                                          int width);</pre>
734 <p>
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>
737 <p>
738 </p>
739 <div class="variablelist"><table border="0">
740 <col align="left" valign="top">
741 <tbody>
742 <tr>
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>.
745 </td>
746 </tr>
747 <tr>
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.
751 </td>
752 </tr>
753 </tbody>
754 </table></div>
755 </div>
756 <hr>
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>
760 <p>
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>
762 <p>
763 </p>
764 <div class="variablelist"><table border="0">
765 <col align="left" valign="top">
766 <tbody>
767 <tr>
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>
770 </td>
771 </tr>
772 <tr>
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.
775 </td>
776 </tr>
777 </tbody>
778 </table></div>
779 </div>
780 <hr>
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,
784                                                          int height);</pre>
785 <p>
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
788 negative.
789 </p>
790 <p>
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.
796 </p>
797 <p>
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.
805 </p>
806 <p>
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
811 future.</p>
812 <p>
813 </p>
814 <div class="variablelist"><table border="0">
815 <col align="left" valign="top">
816 <tbody>
817 <tr>
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>.
820 </td>
821 </tr>
822 <tr>
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.
826 </td>
827 </tr>
828 </tbody>
829 </table></div>
830 <p class="since">Since 1.20</p>
831 </div>
832 <hr>
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>
836 <p>
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>
839 <p>
840 </p>
841 <div class="variablelist"><table border="0">
842 <col align="left" valign="top">
843 <tbody>
844 <tr>
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>
847 </td>
848 </tr>
849 <tr>
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.
853
854 </td>
855 </tr>
856 </tbody>
857 </table></div>
858 <p class="since">Since 1.20</p>
859 </div>
860 <hr>
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>
865 <p>
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>
869 <p>
870 </p>
871 <div class="variablelist"><table border="0">
872 <col align="left" valign="top">
873 <tbody>
874 <tr>
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>
877 </td>
878 </tr>
879 <tr>
880 <td><p><span class="term"><em class="parameter"><code>wrap</code></em> :</span></p></td>
881 <td> the wrap mode
882 </td>
883 </tr>
884 </tbody>
885 </table></div>
886 </div>
887 <hr>
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>
891 <p>
892 Gets the wrap mode for the layout.
893 </p>
894 <p>
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>
897 <p>
898 </p>
899 <div class="variablelist"><table border="0">
900 <col align="left" valign="top">
901 <tbody>
902 <tr>
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>
905 </td>
906 </tr>
907 <tr>
908 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
909 <td> active wrap mode.
910 </td>
911 </tr>
912 </tbody>
913 </table></div>
914 </div>
915 <hr>
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>
921 <p>
922 Queries whether the layout had to wrap any paragraphs.
923 </p>
924 <p>
925 This returns <a
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
930 to be wrapped.</p>
931 <p>
932 </p>
933 <div class="variablelist"><table border="0">
934 <col align="left" valign="top">
935 <tbody>
936 <tr>
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>
939 </td>
940 </tr>
941 <tr>
942 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
943 <td> <a
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>
948 otherwise.
949
950 </td>
951 </tr>
952 </tbody>
953 </table></div>
954 <p class="since">Since 1.16</p>
955 </div>
956 <hr>
957 <div class="refsect2" lang="en">
958 <a name="PangoWrapMode"></a><h3>enum PangoWrapMode</h3>
959 <pre class="programlisting">typedef enum {
960   PANGO_WRAP_WORD,
961   PANGO_WRAP_CHAR,
962   PANGO_WRAP_WORD_CHAR
963 } PangoWrapMode;
964 </pre>
965 <p>
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.
967 </p>
968 <div class="variablelist"><table border="0">
969 <col align="left" valign="top">
970 <tbody>
971 <tr>
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.
974 </td>
975 </tr>
976 <tr>
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.
979 </td>
980 </tr>
981 <tr>
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.
985 </td>
986 </tr>
987 </tbody>
988 </table></div>
989 </div>
990 <hr>
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())
994 </pre>
995 <p>
996 The <a
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>.
999 </p>
1000 </div>
1001 <hr>
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>
1006 <p>
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>.
1012 </p>
1013 <p>
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>
1019 <p>
1020 </p>
1021 <div class="variablelist"><table border="0">
1022 <col align="left" valign="top">
1023 <tbody>
1024 <tr>
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>
1027 </td>
1028 </tr>
1029 <tr>
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>
1032 </td>
1033 </tr>
1034 </tbody>
1035 </table></div>
1036 <p class="since">Since 1.6</p>
1037 </div>
1038 <hr>
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>
1042 <p>
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>
1045 <p>
1046 </p>
1047 <div class="variablelist"><table border="0">
1048 <col align="left" valign="top">
1049 <tbody>
1050 <tr>
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>
1053 </td>
1054 </tr>
1055 <tr>
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>.
1058
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.
1061
1062 </td>
1063 </tr>
1064 </tbody>
1065 </table></div>
1066 <p class="since">Since 1.6</p>
1067 </div>
1068 <hr>
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>
1074 <p>
1075 Queries whether the layout had to ellipsize any paragraphs.
1076 </p>
1077 <p>
1078 This returns <a
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
1083 ellipsized.</p>
1084 <p>
1085 </p>
1086 <div class="variablelist"><table border="0">
1087 <col align="left" valign="top">
1088 <tbody>
1089 <tr>
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>
1092 </td>
1093 </tr>
1094 <tr>
1095 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1096 <td> <a
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>
1101 otherwise.
1102
1103 </td>
1104 </tr>
1105 </tbody>
1106 </table></div>
1107 <p class="since">Since 1.16</p>
1108 </div>
1109 <hr>
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,
1116   PANGO_ELLIPSIZE_END
1117 } PangoEllipsizeMode;
1118 </pre>
1119 <p>
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>
1125 <p>
1126 </p>
1127 <div class="variablelist"><table border="0">
1128 <col align="left" valign="top">
1129 <tbody>
1130 <tr>
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
1133 </td>
1134 </tr>
1135 <tr>
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
1138 </td>
1139 </tr>
1140 <tr>
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
1143 </td>
1144 </tr>
1145 <tr>
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
1148 </td>
1149 </tr>
1150 </tbody>
1151 </table></div>
1152 </div>
1153 <hr>
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())
1157 </pre>
1158 <p>
1159 The <a
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>.
1162 </p>
1163 </div>
1164 <hr>
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,
1168                                                          int indent);</pre>
1169 <p>
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>.
1174 </p>
1175 <p>
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>
1178 <p>
1179 </p>
1180 <div class="variablelist"><table border="0">
1181 <col align="left" valign="top">
1182 <tbody>
1183 <tr>
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>.
1186 </td>
1187 </tr>
1188 <tr>
1189 <td><p><span class="term"><em class="parameter"><code>indent</code></em> :</span></p></td>
1190 <td> the amount by which to indent.
1191 </td>
1192 </tr>
1193 </tbody>
1194 </table></div>
1195 </div>
1196 <hr>
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>
1200 <p>
1201 Gets the paragraph indent width in Pango units. A negative value
1202 indicates a hanging indentation.</p>
1203 <p>
1204 </p>
1205 <div class="variablelist"><table border="0">
1206 <col align="left" valign="top">
1207 <tbody>
1208 <tr>
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>
1211 </td>
1212 </tr>
1213 <tr>
1214 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1215 <td> the indent in Pango units.
1216 </td>
1217 </tr>
1218 </tbody>
1219 </table></div>
1220 </div>
1221 <hr>
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>
1225 <p>
1226 Gets the amount of spacing between the lines of the layout.</p>
1227 <p>
1228 </p>
1229 <div class="variablelist"><table border="0">
1230 <col align="left" valign="top">
1231 <tbody>
1232 <tr>
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>
1235 </td>
1236 </tr>
1237 <tr>
1238 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1239 <td> the spacing in Pango units.
1240 </td>
1241 </tr>
1242 </tbody>
1243 </table></div>
1244 </div>
1245 <hr>
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,
1249                                                          int spacing);</pre>
1250 <p>
1251 Sets the amount of spacing in Pango unit between the lines of the
1252 layout.</p>
1253 <p>
1254 </p>
1255 <div class="variablelist"><table border="0">
1256 <col align="left" valign="top">
1257 <tbody>
1258 <tr>
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>.
1261 </td>
1262 </tr>
1263 <tr>
1264 <td><p><span class="term"><em class="parameter"><code>spacing</code></em> :</span></p></td>
1265 <td> the amount of spacing
1266 </td>
1267 </tr>
1268 </tbody>
1269 </table></div>
1270 </div>
1271 <hr>
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,
1275                                                          <a
1276 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
1277 >gboolean</a> justify);</pre>
1278 <p>
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
1283 the characters.
1284 </p>
1285 <p>
1286 Note that this setting is not implemented and so is ignored in Pango
1287 older than 1.18.</p>
1288 <p>
1289 </p>
1290 <div class="variablelist"><table border="0">
1291 <col align="left" valign="top">
1292 <tbody>
1293 <tr>
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>
1296 </td>
1297 </tr>
1298 <tr>
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.
1301 </td>
1302 </tr>
1303 </tbody>
1304 </table></div>
1305 </div>
1306 <hr>
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>
1312 <p>
1313 Gets whether each complete line should be stretched to fill the entire
1314 width of the layout.</p>
1315 <p>
1316 </p>
1317 <div class="variablelist"><table border="0">
1318 <col align="left" valign="top">
1319 <tbody>
1320 <tr>
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>
1323 </td>
1324 </tr>
1325 <tr>
1326 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1327 <td> the justify.
1328 </td>
1329 </tr>
1330 </tbody>
1331 </table></div>
1332 </div>
1333 <hr>
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,
1337                                                          <a
1338 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
1339 >gboolean</a> auto_dir);</pre>
1340 <p>
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.
1349 </p>
1350 <p>
1351 When <a
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>).
1356 </p>
1357 <p>
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>
1361 <p>
1362 </p>
1363 <div class="variablelist"><table border="0">
1364 <col align="left" valign="top">
1365 <tbody>
1366 <tr>
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>
1369 </td>
1370 </tr>
1371 <tr>
1372 <td><p><span class="term"><em class="parameter"><code>auto_dir</code></em> :</span></p></td>
1373 <td> if <a
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.
1377 </td>
1378 </tr>
1379 </tbody>
1380 </table></div>
1381 <p class="since">Since 1.4</p>
1382 </div>
1383 <hr>
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>
1389 <p>
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>
1393 <p>
1394 </p>
1395 <div class="variablelist"><table border="0">
1396 <col align="left" valign="top">
1397 <tbody>
1398 <tr>
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>
1401 </td>
1402 </tr>
1403 <tr>
1404 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1405 <td> <a
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.
1411
1412 </td>
1413 </tr>
1414 </tbody>
1415 </table></div>
1416 <p class="since">Since 1.4</p>
1417 </div>
1418 <hr>
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>
1423 <p>
1424 Sets the alignment for the layout: how partial lines are
1425 positioned within the horizontal space available.</p>
1426 <p>
1427 </p>
1428 <div class="variablelist"><table border="0">
1429 <col align="left" valign="top">
1430 <tbody>
1431 <tr>
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>
1434 </td>
1435 </tr>
1436 <tr>
1437 <td><p><span class="term"><em class="parameter"><code>alignment</code></em> :</span></p></td>
1438 <td> the alignment
1439 </td>
1440 </tr>
1441 </tbody>
1442 </table></div>
1443 </div>
1444 <hr>
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>
1448 <p>
1449 Gets the alignment for the layout: how partial lines are
1450 positioned within the horizontal space available.</p>
1451 <p>
1452 </p>
1453 <div class="variablelist"><table border="0">
1454 <col align="left" valign="top">
1455 <tbody>
1456 <tr>
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>
1459 </td>
1460 </tr>
1461 <tr>
1462 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1463 <td> the alignment.
1464 </td>
1465 </tr>
1466 </tbody>
1467 </table></div>
1468 </div>
1469 <hr>
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>
1474 <p>
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>
1481 <p>
1482 </p>
1483 <div class="variablelist"><table border="0">
1484 <col align="left" valign="top">
1485 <tbody>
1486 <tr>
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>
1489 </td>
1490 </tr>
1491 <tr>
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>
1496 </td>
1497 </tr>
1498 </tbody>
1499 </table></div>
1500 </div>
1501 <hr>
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>
1505 <p>
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
1508 and <a
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>
1512 <p>
1513 </p>
1514 <div class="variablelist"><table border="0">
1515 <col align="left" valign="top">
1516 <tbody>
1517 <tr>
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>
1520 </td>
1521 </tr>
1522 <tr>
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>.
1527 </td>
1528 </tr>
1529 </tbody>
1530 </table></div>
1531 </div>
1532 <hr>
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,
1537                                                          <a
1538 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
1539 >gboolean</a> setting);</pre>
1540 <p>
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>
1547 <p>
1548 </p>
1549 <div class="variablelist"><table border="0">
1550 <col align="left" valign="top">
1551 <tbody>
1552 <tr>
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>
1555 </td>
1556 </tr>
1557 <tr>
1558 <td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
1559 <td> new setting
1560 </td>
1561 </tr>
1562 </tbody>
1563 </table></div>
1564 </div>
1565 <hr>
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>
1572 <p>
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>
1574 <p>
1575 </p>
1576 <div class="variablelist"><table border="0">
1577 <col align="left" valign="top">
1578 <tbody>
1579 <tr>
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>
1582 </td>
1583 </tr>
1584 <tr>
1585 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1586 <td> <a
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.
1592 </td>
1593 </tr>
1594 </tbody>
1595 </table></div>
1596 </div>
1597 <hr>
1598 <div class="refsect2" lang="en">
1599 <a name="PangoAlignment"></a><h3>enum PangoAlignment</h3>
1600 <pre class="programlisting">typedef enum {
1601   PANGO_ALIGN_LEFT,
1602   PANGO_ALIGN_CENTER,
1603   PANGO_ALIGN_RIGHT
1604 } PangoAlignment;
1605 </pre>
1606 <p>
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.
1610 </p>
1611 <div class="variablelist"><table border="0">
1612 <col align="left" valign="top">
1613 <tbody>
1614 <tr>
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
1617 </td>
1618 </tr>
1619 <tr>
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
1622 </td>
1623 </tr>
1624 <tr>
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
1627 </td>
1628 </tr>
1629 </tbody>
1630 </table></div>
1631 </div>
1632 <hr>
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())
1636 </pre>
1637 <p>
1638 The <a
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>.
1641 </p>
1642 </div>
1643 <hr>
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>
1648 <p>
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.
1652 </p>
1653 <p>
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>
1658 <p>
1659 </p>
1660 <div class="variablelist"><table border="0">
1661 <col align="left" valign="top">
1662 <tbody>
1663 <tr>
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>
1666 </td>
1667 </tr>
1668 <tr>
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>.
1671
1672 </td>
1673 </tr>
1674 </tbody>
1675 </table></div>
1676 <p class="since">Since 1.16</p>
1677 </div>
1678 <hr>
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,
1683                                                          <a
1684 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"
1685 >gint</a> *n_attrs);</pre>
1686 <p>
1687 Retrieves an array of logical attributes for each character in
1688 the <em class="parameter"><code>layout</code></em>.</p>
1689 <p>
1690 </p>
1691 <div class="variablelist"><table border="0">
1692 <col align="left" valign="top">
1693 <tbody>
1694 <tr>
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>
1697 </td>
1698 </tr>
1699 <tr>
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>.
1705 </td>
1706 </tr>
1707 <tr>
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.)
1714 </td>
1715 </tr>
1716 </tbody>
1717 </table></div>
1718 </div>
1719 <hr>
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,
1723                                                          int index_,
1724                                                          <a class="link" href="pango-Glyph-Storage.html#PangoRectangle" title="PangoRectangle">PangoRectangle</a> *pos);</pre>
1725 <p>
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-&gt;x</code> is always the leading
1729 edge of the grapheme and <code class="literal">pos-&gt;x + pos-&gt;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-&gt;width</code> will be negative.</p>
1732 <p>
1733 </p>
1734 <div class="variablelist"><table border="0">
1735 <col align="left" valign="top">
1736 <tbody>
1737 <tr>
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>
1740 </td>
1741 </tr>
1742 <tr>
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>
1745 </td>
1746 </tr>
1747 <tr>
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
1750 </td>
1751 </tr>
1752 </tbody>
1753 </table></div>
1754 </div>
1755 <hr>
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,
1759                                                          int index_,
1760                                                          <a
1761 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
1762 >gboolean</a> trailing,
1763                                                          int *line,
1764                                                          int *x_pos);</pre>
1765 <p>
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>
1768 <p>
1769 </p>
1770 <div class="variablelist"><table border="0">
1771 <col align="left" valign="top">
1772 <tbody>
1773 <tr>
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>
1776 </td>
1777 </tr>
1778 <tr>
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.
1781 </td>
1782 </tr>
1783 <tr>
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 &gt; 0,
1787             the leading of the grapheme.
1788 </td>
1789 </tr>
1790 <tr>
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)
1794 </td>
1795 </tr>
1796 <tr>
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)
1800 </td>
1801 </tr>
1802 </tbody>
1803 </table></div>
1804 </div>
1805 <hr>
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,
1811                                                          int x,
1812                                                          int y,
1813                                                          int *index_,
1814                                                          int *trailing);</pre>
1815 <p>
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
1823 function returns <a
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>
1828 <p>
1829 </p>
1830 <div class="variablelist"><table border="0">
1831 <col align="left" valign="top">
1832 <tbody>
1833 <tr>
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>
1836 </td>
1837 </tr>
1838 <tr>
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.
1842 </td>
1843 </tr>
1844 <tr>
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
1848 </td>
1849 </tr>
1850 <tr>
1851 <td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
1852 <td>    location to store calculated byte index
1853 </td>
1854 </tr>
1855 <tr>
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.
1861 </td>
1862 </tr>
1863 <tr>
1864 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1865 <td> <a
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.
1870 </td>
1871 </tr>
1872 </tbody>
1873 </table></div>
1874 </div>
1875 <hr>
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,
1879                                                          int index_,
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>
1882 <p>
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>
1891 <p>
1892 </p>
1893 <div class="variablelist"><table border="0">
1894 <col align="left" valign="top">
1895 <tbody>
1896 <tr>
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>
1899 </td>
1900 </tr>
1901 <tr>
1902 <td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td>
1903 <td> the byte index of the cursor
1904 </td>
1905 </tr>
1906 <tr>
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>)
1911 </td>
1912 </tr>
1913 <tr>
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>)
1918 </td>
1919 </tr>
1920 </tbody>
1921 </table></div>
1922 </div>
1923 <hr>
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,
1927                                                          <a
1928 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
1929 >gboolean</a> strong,
1930                                                          int old_index,
1931                                                          int old_trailing,
1932                                                          int direction,
1933                                                          int *new_index,
1934                                                          int *new_trailing);</pre>
1935 <p>
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.
1942 </p>
1943 <p>
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.
1948 </p>
1949 <p>
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>
1954 <p>
1955 </p>
1956 <div class="variablelist"><table border="0">
1957 <col align="left" valign="top">
1958 <tbody>
1959 <tr>
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>.
1962 </td>
1963 </tr>
1964 <tr>
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.
1969 </td>
1970 </tr>
1971 <tr>
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
1974 </td>
1975 </tr>
1976 <tr>
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 &gt; 0, the cursor
1980                was at the leading edge.
1981 </td>
1982 </tr>
1983 <tr>
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.
1987 </td>
1988 </tr>
1989 <tr>
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.
1997 </td>
1998 </tr>
1999 <tr>
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.
2007 </td>
2008 </tr>
2009 </tbody>
2010 </table></div>
2011 </div>
2012 <hr>
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>
2018 <p>
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
2024 a set width.
2025 </p>
2026 <p>
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>
2029 <p>
2030 </p>
2031 <div class="variablelist"><table border="0">
2032 <col align="left" valign="top">
2033 <tbody>
2034 <tr>
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>
2037 </td>
2038 </tr>
2039 <tr>
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
2042            or <a
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.
2045 </td>
2046 </tr>
2047 <tr>
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
2050                  or <a
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.
2053 </td>
2054 </tr>
2055 </tbody>
2056 </table></div>
2057 </div>
2058 <hr>
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>
2064 <p>
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>
2070 <p>
2071 </p>
2072 <div class="variablelist"><table border="0">
2073 <col align="left" valign="top">
2074 <tbody>
2075 <tr>
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>
2078 </td>
2079 </tr>
2080 <tr>
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
2083            or <a
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.
2086 </td>
2087 </tr>
2088 <tr>
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
2091              layout or <a
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.
2094 </td>
2095 </tr>
2096 </tbody>
2097 </table></div>
2098 </div>
2099 <hr>
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,
2103                                                          int *width,
2104                                                          int *height);</pre>
2105 <p>
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>
2109 <p>
2110 </p>
2111 <div class="variablelist"><table border="0">
2112 <col align="left" valign="top">
2113 <tbody>
2114 <tr>
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>
2117 </td>
2118 </tr>
2119 <tr>
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>
2124 </td>
2125 </tr>
2126 <tr>
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>
2131 </td>
2132 </tr>
2133 </tbody>
2134 </table></div>
2135 </div>
2136 <hr>
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,
2140                                                          int *width,
2141                                                          int *height);</pre>
2142 <p>
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>
2148 <p>
2149 </p>
2150 <div class="variablelist"><table border="0">
2151 <col align="left" valign="top">
2152 <tbody>
2153 <tr>
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>
2156 </td>
2157 </tr>
2158 <tr>
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>
2163 </td>
2164 </tr>
2165 <tr>
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>
2170 </td>
2171 </tr>
2172 </tbody>
2173 </table></div>
2174 </div>
2175 <hr>
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>
2179 <p>
2180 Gets the Y position of baseline of the first line in <em class="parameter"><code>layout</code></em>.</p>
2181 <p>
2182 </p>
2183 <div class="variablelist"><table border="0">
2184 <col align="left" valign="top">
2185 <tbody>
2186 <tr>
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>
2189 </td>
2190 </tr>
2191 <tr>
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>.
2194
2195 </td>
2196 </tr>
2197 </tbody>
2198 </table></div>
2199 <p class="since">Since 1.22</p>
2200 </div>
2201 <hr>
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>
2205 <p>
2206 Retrieves the count of lines for the <em class="parameter"><code>layout</code></em>.</p>
2207 <p>
2208 </p>
2209 <div class="variablelist"><table border="0">
2210 <col align="left" valign="top">
2211 <tbody>
2212 <tr>
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>
2215 </td>
2216 </tr>
2217 <tr>
2218 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2219 <td> the line count.
2220 </td>
2221 </tr>
2222 </tbody>
2223 </table></div>
2224 </div>
2225 <hr>
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,
2229                                                          int line);</pre>
2230 <p>
2231 Retrieves a particular line from a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>.
2232 </p>
2233 <p>
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>
2236 <p>
2237 </p>
2238 <div class="variablelist"><table border="0">
2239 <col align="left" valign="top">
2240 <tbody>
2241 <tr>
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>
2244 </td>
2245 </tr>
2246 <tr>
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.
2250 </td>
2251 </tr>
2252 <tr>
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>.
2260 </td>
2261 </tr>
2262 </tbody>
2263 </table></div>
2264 </div>
2265 <hr>
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,
2269                                                          int line);</pre>
2270 <p>
2271 Retrieves a particular line from a <a class="link" href="pango-Layout-Objects.html#PangoLayout"><span class="type">PangoLayout</span></a>.
2272 </p>
2273 <p>
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>
2277 <p>
2278 </p>
2279 <div class="variablelist"><table border="0">
2280 <col align="left" valign="top">
2281 <tbody>
2282 <tr>
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>
2285 </td>
2286 </tr>
2287 <tr>
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.
2291 </td>
2292 </tr>
2293 <tr>
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.
2302
2303 </td>
2304 </tr>
2305 </tbody>
2306 </table></div>
2307 <p class="since">Since 1.16</p>
2308 </div>
2309 <hr>
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>
2315 <p>
2316 Returns the lines of the <em class="parameter"><code>layout</code></em> as a list.
2317 </p>
2318 <p>
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>
2321 <p>
2322 </p>
2323 <div class="variablelist"><table border="0">
2324 <col align="left" valign="top">
2325 <tbody>
2326 <tr>
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>
2329 </td>
2330 </tr>
2331 <tr>
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>
2334 </tr>
2335 </tbody>
2336 </table></div>
2337 </div>
2338 <hr>
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>
2344 <p>
2345 Returns the lines of the <em class="parameter"><code>layout</code></em> as a list.
2346 </p>
2347 <p>
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>
2351 <p>
2352 </p>
2353 <div class="variablelist"><table border="0">
2354 <col align="left" valign="top">
2355 <tbody>
2356 <tr>
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>
2359 </td>
2360 </tr>
2361 <tr>
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>
2364 </tr>
2365 </tbody>
2366 </table></div>
2367 <p class="since">Since 1.16</p>
2368 </div>
2369 <hr>
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>
2373 <p>
2374 Returns an iterator to iterate over the visual extents of the layout.</p>
2375 <p>
2376 </p>
2377 <div class="variablelist"><table border="0">
2378 <col align="left" valign="top">
2379 <tbody>
2380 <tr>
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>
2383 </td>
2384 </tr>
2385 <tr>
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>.
2389 </td>
2390 </tr>
2391 </tbody>
2392 </table></div>
2393 </div>
2394 <hr>
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>
2398 <p>
2399 Copies a <span class="type">PangLayoutIter</span>.</p>
2400 <p>
2401 </p>
2402 <div class="variablelist"><table border="0">
2403 <col align="left" valign="top">
2404 <tbody>
2405 <tr>
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>
2410 </td>
2411 </tr>
2412 <tr>
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>.
2421
2422 </td>
2423 </tr>
2424 </tbody>
2425 </table></div>
2426 <p class="since">Since 1.20</p>
2427 </div>
2428 <hr>
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>
2432 <p>
2433 Frees an iterator that's no longer in use.</p>
2434 <p>
2435 </p>
2436 <div class="variablelist"><table border="0">
2437 <col align="left" valign="top">
2438 <tbody><tr>
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>
2443 </td>
2444 </tr></tbody>
2445 </table></div>
2446 </div>
2447 <hr>
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>
2453 <p>
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>
2458 <p>
2459 </p>
2460 <div class="variablelist"><table border="0">
2461 <col align="left" valign="top">
2462 <tbody>
2463 <tr>
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>
2466 </td>
2467 </tr>
2468 <tr>
2469 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2470 <td> whether motion was possible.
2471 </td>
2472 </tr>
2473 </tbody>
2474 </table></div>
2475 </div>
2476 <hr>
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>
2482 <p>
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>
2487 <p>
2488 </p>
2489 <div class="variablelist"><table border="0">
2490 <col align="left" valign="top">
2491 <tbody>
2492 <tr>
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>
2495 </td>
2496 </tr>
2497 <tr>
2498 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2499 <td> whether motion was possible.
2500 </td>
2501 </tr>
2502 </tbody>
2503 </table></div>
2504 </div>
2505 <hr>
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>
2511 <p>
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>
2516 <p>
2517 </p>
2518 <div class="variablelist"><table border="0">
2519 <col align="left" valign="top">
2520 <tbody>
2521 <tr>
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>
2524 </td>
2525 </tr>
2526 <tr>
2527 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2528 <td> whether motion was possible.
2529 </td>
2530 </tr>
2531 </tbody>
2532 </table></div>
2533 </div>
2534 <hr>
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>
2540 <p>
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>
2545 <p>
2546 </p>
2547 <div class="variablelist"><table border="0">
2548 <col align="left" valign="top">
2549 <tbody>
2550 <tr>
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>
2553 </td>
2554 </tr>
2555 <tr>
2556 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2557 <td> whether motion was possible.
2558 </td>
2559 </tr>
2560 </tbody>
2561 </table></div>
2562 </div>
2563 <hr>
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>
2569 <p>
2570 Determines whether <em class="parameter"><code>iter</code></em> is on the last line of the layout.</p>
2571 <p>
2572 </p>
2573 <div class="variablelist"><table border="0">
2574 <col align="left" valign="top">
2575 <tbody>
2576 <tr>
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>
2579 </td>
2580 </tr>
2581 <tr>
2582 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2583 <td> <a
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.
2586 </td>
2587 </tr>
2588 </tbody>
2589 </table></div>
2590 </div>
2591 <hr>
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>
2595 <p>
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>
2602 <p>
2603 </p>
2604 <div class="variablelist"><table border="0">
2605 <col align="left" valign="top">
2606 <tbody>
2607 <tr>
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>
2610 </td>
2611 </tr>
2612 <tr>
2613 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2614 <td> current byte index.
2615 </td>
2616 </tr>
2617 </tbody>
2618 </table></div>
2619 </div>
2620 <hr>
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>
2624 <p>
2625 Gets the Y position of the current line's baseline, in layout
2626 coordinates (origin at top left of the entire layout).</p>
2627 <p>
2628 </p>
2629 <div class="variablelist"><table border="0">
2630 <col align="left" valign="top">
2631 <tbody>
2632 <tr>
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>
2635 </td>
2636 </tr>
2637 <tr>
2638 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2639 <td> baseline of current line.
2640 </td>
2641 </tr>
2642 </tbody>
2643 </table></div>
2644 </div>
2645 <hr>
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>
2649 <p>
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
2654 <a
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.
2660 </p>
2661 <p>
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>
2664 <p>
2665 </p>
2666 <div class="variablelist"><table border="0">
2667 <col align="left" valign="top">
2668 <tbody>
2669 <tr>
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>
2672 </td>
2673 </tr>
2674 <tr>
2675 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2676 <td> the current run.
2677 </td>
2678 </tr>
2679 </tbody>
2680 </table></div>
2681 </div>
2682 <hr>
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>
2686 <p>
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
2691 <a
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.
2697 </p>
2698 <p>
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>
2702 <p>
2703 </p>
2704 <div class="variablelist"><table border="0">
2705 <col align="left" valign="top">
2706 <tbody>
2707 <tr>
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>
2710 </td>
2711 </tr>
2712 <tr>
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.
2715
2716 </td>
2717 </tr>
2718 </tbody>
2719 </table></div>
2720 <p class="since">Since 1.16</p>
2721 </div>
2722 <hr>
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>
2726 <p>
2727 Gets the current line.
2728 </p>
2729 <p>
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>
2732 <p>
2733 </p>
2734 <div class="variablelist"><table border="0">
2735 <col align="left" valign="top">
2736 <tbody>
2737 <tr>
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>
2740 </td>
2741 </tr>
2742 <tr>
2743 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2744 <td> the current line.
2745 </td>
2746 </tr>
2747 </tbody>
2748 </table></div>
2749 </div>
2750 <hr>
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>
2754 <p>
2755 Gets the current line for read-only access.
2756 </p>
2757 <p>
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>
2761 <p>
2762 </p>
2763 <div class="variablelist"><table border="0">
2764 <col align="left" valign="top">
2765 <tbody>
2766 <tr>
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>
2769 </td>
2770 </tr>
2771 <tr>
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.
2774
2775 </td>
2776 </tr>
2777 </tbody>
2778 </table></div>
2779 <p class="since">Since 1.16</p>
2780 </div>
2781 <hr>
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>
2785 <p>
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>
2787 <p>
2788 </p>
2789 <div class="variablelist"><table border="0">
2790 <col align="left" valign="top">
2791 <tbody>
2792 <tr>
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>
2795 </td>
2796 </tr>
2797 <tr>
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>.
2800
2801 </td>
2802 </tr>
2803 </tbody>
2804 </table></div>
2805 <p class="since">Since 1.20</p>
2806 </div>
2807 <hr>
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>
2812 <p>
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>
2817 <p>
2818 </p>
2819 <div class="variablelist"><table border="0">
2820 <col align="left" valign="top">
2821 <tbody>
2822 <tr>
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>
2825 </td>
2826 </tr>
2827 <tr>
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
2830 </td>
2831 </tr>
2832 </tbody>
2833 </table></div>
2834 </div>
2835 <hr>
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>
2842 <p>
2843 Gets the extents of the current cluster, in layout coordinates
2844 (origin is the top left of the entire layout).</p>
2845 <p>
2846 </p>
2847 <div class="variablelist"><table border="0">
2848 <col align="left" valign="top">
2849 <tbody>
2850 <tr>
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>
2853 </td>
2854 </tr>
2855 <tr>
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>
2860 </td>
2861 </tr>
2862 <tr>
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>
2867 </td>
2868 </tr>
2869 </tbody>
2870 </table></div>
2871 </div>
2872 <hr>
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>
2878 <p>
2879 Gets the extents of the current run in layout coordinates
2880 (origin is the top left of the entire layout).</p>
2881 <p>
2882 </p>
2883 <div class="variablelist"><table border="0">
2884 <col align="left" valign="top">
2885 <tbody>
2886 <tr>
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>
2889 </td>
2890 </tr>
2891 <tr>
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>
2896 </td>
2897 </tr>
2898 <tr>
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>
2903 </td>
2904 </tr>
2905 </tbody>
2906 </table></div>
2907 </div>
2908 <hr>
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,
2912                                                          int *y0_,
2913                                                          int *y1_);</pre>
2914 <p>
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
2921 entire layout).</p>
2922 <p>
2923 </p>
2924 <div class="variablelist"><table border="0">
2925 <col align="left" valign="top">
2926 <tbody>
2927 <tr>
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>
2930 </td>
2931 </tr>
2932 <tr>
2933 <td><p><span class="term"><em class="parameter"><code>y0_</code></em> :</span></p></td>
2934 <td> start of line
2935 </td>
2936 </tr>
2937 <tr>
2938 <td><p><span class="term"><em class="parameter"><code>y1_</code></em> :</span></p></td>
2939 <td> end of line
2940 </td>
2941 </tr>
2942 </tbody>
2943 </table></div>
2944 </div>
2945 <hr>
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>
2951 <p>
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>
2953 can be <a
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>
2960 <p>
2961 </p>
2962 <div class="variablelist"><table border="0">
2963 <col align="left" valign="top">
2964 <tbody>
2965 <tr>
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>
2968 </td>
2969 </tr>
2970 <tr>
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>
2975 </td>
2976 </tr>
2977 <tr>
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>
2982 </td>
2983 </tr>
2984 </tbody>
2985 </table></div>
2986 </div>
2987 <hr>
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>
2994 <p>
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>
3000 <p>
3001 </p>
3002 <div class="variablelist"><table border="0">
3003 <col align="left" valign="top">
3004 <tbody>
3005 <tr>
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>
3008 </td>
3009 </tr>
3010 <tr>
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>
3015 </td>
3016 </tr>
3017 <tr>
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>
3022 </td>
3023 </tr>
3024 </tbody>
3025 </table></div>
3026 </div>
3027 <hr>
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-&gt;text */
3033   gint         length;          /* length of line in bytes */
3034   GSList      *runs;
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 */
3037 } PangoLayoutLine;
3038 </pre>
3039 <p>
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.
3045 </p>
3046 <p>
3047 Routines for rendering PangoLayout objects are provided in
3048 code specific to each rendering system.
3049 </p>
3050 <div class="variablelist"><table border="0">
3051 <col align="left" valign="top">
3052 <tbody>
3053 <tr>
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
3056 </td>
3057 </tr>
3058 <tr>
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-&gt;text</code></em>
3063 </td>
3064 </tr>
3065 <tr>
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
3070 </td>
3071 </tr>
3072 <tr>
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
3077 </td>
3078 </tr>
3079 <tr>
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
3084 </td>
3085 </tr>
3086 <tr>
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
3091 </td>
3092 </tr>
3093 </tbody>
3094 </table></div>
3095 </div>
3096 <hr>
3097 <div class="refsect2" lang="en">
3098 <a name="PangoLayoutRun"></a><h3>PangoLayoutRun</h3>
3099 <pre class="programlisting">typedef PangoGlyphItem PangoLayoutRun;
3100 </pre>
3101 <p>
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.
3106 </p>
3107 </div>
3108 <hr>
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>
3112 <p>
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>
3114 <p>
3115 </p>
3116 <div class="variablelist"><table border="0">
3117 <col align="left" valign="top">
3118 <tbody>
3119 <tr>
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>
3124 </td>
3125 </tr>
3126 <tr>
3127 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3128 <td> the line passed in.
3129
3130 </td>
3131 </tr>
3132 </tbody>
3133 </table></div>
3134 <p class="since">Since 1.10</p>
3135 </div>
3136 <hr>
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>
3140 <p>
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
3143 will be freed.</p>
3144 <p>
3145 </p>
3146 <div class="variablelist"><table border="0">
3147 <col align="left" valign="top">
3148 <tbody><tr>
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>
3151 </td>
3152 </tr></tbody>
3153 </table></div>
3154 </div>
3155 <hr>
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>
3161 <p>
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>
3165 <p>
3166 </p>
3167 <div class="variablelist"><table border="0">
3168 <col align="left" valign="top">
3169 <tbody>
3170 <tr>
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>
3173 </td>
3174 </tr>
3175 <tr>
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
3178            as drawn, or <a
3179 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
3180 ><code class="literal">NULL</code></a>
3181 </td>
3182 </tr>
3183 <tr>
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
3186            string, or <a
3187 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
3188 ><code class="literal">NULL</code></a>
3189 </td>
3190 </tr>
3191 </tbody>
3192 </table></div>
3193 </div>
3194 <hr>
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>
3200 <p>
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>
3206 <p>
3207 </p>
3208 <div class="variablelist"><table border="0">
3209 <col align="left" valign="top">
3210 <tbody>
3211 <tr>
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>
3214 </td>
3215 </tr>
3216 <tr>
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
3219               as drawn, or <a
3220 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
3221 ><code class="literal">NULL</code></a>
3222 </td>
3223 </tr>
3224 <tr>
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
3227               string, or <a
3228 href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL--CAPS"
3229 ><code class="literal">NULL</code></a>
3230 </td>
3231 </tr>
3232 </tbody>
3233 </table></div>
3234 </div>
3235 <hr>
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,
3239                                                          int index_,
3240                                                          <a
3241 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"
3242 >gboolean</a> trailing,
3243                                                          int *x_pos);</pre>
3244 <p>
3245 Converts an index within a line to a X position.</p>
3246 <p>
3247 </p>
3248 <div class="variablelist"><table border="0">
3249 <col align="left" valign="top">
3250 <tbody>
3251 <tr>
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>
3254 </td>
3255 </tr>
3256 <tr>
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
3259 </td>
3260 </tr>
3261 <tr>
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 &gt; 0, the trailing edge of the grapheme,
3265            if 0, the leading of the grapheme.
3266 </td>
3267 </tr>
3268 <tr>
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)
3271 </td>
3272 </tr>
3273 </tbody>
3274 </table></div>
3275 </div>
3276 <hr>
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,
3282                                                          int x_pos,
3283                                                          int *index_,
3284                                                          int *trailing);</pre>
3285 <p>
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>
3296 <p>
3297 </p>
3298 <div class="variablelist"><table border="0">
3299 <col align="left" valign="top">
3300 <tbody>
3301 <tr>
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>
3304 </td>
3305 </tr>
3306 <tr>
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.
3310 </td>
3311 </tr>
3312 <tr>
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.
3316 </td>
3317 </tr>
3318 <tr>
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.
3324 </td>
3325 </tr>
3326 <tr>
3327 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3328 <td> <a
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
3333 </td>
3334 </tr>
3335 </tbody>
3336 </table></div>
3337 </div>
3338 <hr>
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,
3342                                                          int start_index,
3343                                                          int end_index,
3344                                                          int **ranges,
3345                                                          int *n_ranges);</pre>
3346 <p>
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>
3352 <p>
3353 </p>
3354 <div class="variablelist"><table border="0">
3355 <col align="left" valign="top">
3356 <tbody>
3357 <tr>
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>
3360 </td>
3361 </tr>
3362 <tr>
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.
3369 </td>
3370 </tr>
3371 <tr>
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.
3378 </td>
3379 </tr>
3380 <tr>
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>
3383 </tr>
3384 <tr>
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>.
3387 </td>
3388 </tr>
3389 </tbody>
3390 </table></div>
3391 </div>
3392 </div>
3393 </div>
3394 <div class="footer">
3395 <hr>
3396           Generated by GTK-Doc V1.11</div>
3397 </body>
3398 </html>