Git init
[external/pango1.0.git] / docs / xml / fonts.xml
1 <refentry id="pango-Fonts">
2 <refmeta>
3 <refentrytitle role="top_of_page" id="pango-Fonts.top_of_page">Fonts</refentrytitle>
4 <manvolnum>3</manvolnum>
5 <refmiscinfo>PANGO Library</refmiscinfo>
6 </refmeta>
7
8 <refnamediv>
9 <refname>Fonts</refname>
10 <refpurpose>Structures representing abstract fonts</refpurpose>
11 </refnamediv>
12
13 <refsynopsisdiv id="pango-Fonts.synopsis" role="synopsis">
14 <title role="synopsis.title">Synopsis</title>
15 <anchor id="PangoFont"/><anchor id="PangoFontFamily"/><anchor id="PangoFontFace"/><anchor id="PangoFontMap"/><anchor id="PangoFontset"/><anchor id="PangoFontsetSimple"/>
16 <synopsis>
17                     <link linkend="PangoFontDescription">PangoFontDescription</link>;
18 #define             <link linkend="PANGO-TYPE-FONT-DESCRIPTION--CAPS">PANGO_TYPE_FONT_DESCRIPTION</link>
19 enum                <link linkend="PangoStyle">PangoStyle</link>;
20 #define             <link linkend="PANGO-TYPE-STYLE--CAPS">PANGO_TYPE_STYLE</link>
21 enum                <link linkend="PangoWeight">PangoWeight</link>;
22 #define             <link linkend="PANGO-TYPE-WEIGHT--CAPS">PANGO_TYPE_WEIGHT</link>
23 enum                <link linkend="PangoVariant">PangoVariant</link>;
24 #define             <link linkend="PANGO-TYPE-VARIANT--CAPS">PANGO_TYPE_VARIANT</link>
25 enum                <link linkend="PangoStretch">PangoStretch</link>;
26 #define             <link linkend="PANGO-TYPE-STRETCH--CAPS">PANGO_TYPE_STRETCH</link>
27 enum                <link linkend="PangoFontMask">PangoFontMask</link>;
28 #define             <link linkend="PANGO-TYPE-FONT-MASK--CAPS">PANGO_TYPE_FONT_MASK</link>
29 <link linkend="PangoFontDescription">PangoFontDescription</link> * <link linkend="pango-font-description-new">pango_font_description_new</link>       (void);
30 <link linkend="PangoFontDescription">PangoFontDescription</link> * <link linkend="pango-font-description-copy">pango_font_description_copy</link>      (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);
31 <link linkend="PangoFontDescription">PangoFontDescription</link> * <link linkend="pango-font-description-copy-static">pango_font_description_copy_static</link>
32                                                         (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);
33 <link linkend="guint">guint</link>               <link linkend="pango-font-description-hash">pango_font_description_hash</link>         (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);
34 <link linkend="gboolean">gboolean</link>            <link linkend="pango-font-description-equal">pango_font_description_equal</link>        (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc1,
35                                                          const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc2);
36 <link linkend="void">void</link>                <link linkend="pango-font-description-free">pango_font_description_free</link>         (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc);
37 <link linkend="void">void</link>                <link linkend="pango-font-descriptions-free">pango_font_descriptions_free</link>        (<link linkend="PangoFontDescription">PangoFontDescription</link> **descs,
38                                                          <link linkend="int">int</link> n_descs);
39 <link linkend="void">void</link>                <link linkend="pango-font-description-set-family">pango_font_description_set_family</link>   (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
40                                                          const <link linkend="char">char</link> *family);
41 <link linkend="void">void</link>                <link linkend="pango-font-description-set-family-static">pango_font_description_set_family_static</link>
42                                                         (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
43                                                          const <link linkend="char">char</link> *family);
44 const <link linkend="char">char</link> *        <link linkend="pango-font-description-get-family">pango_font_description_get_family</link>   (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);
45 <link linkend="void">void</link>                <link linkend="pango-font-description-set-style">pango_font_description_set_style</link>    (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
46                                                          <link linkend="PangoStyle">PangoStyle</link> style);
47 <link linkend="PangoStyle">PangoStyle</link>          <link linkend="pango-font-description-get-style">pango_font_description_get_style</link>    (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);
48 <link linkend="void">void</link>                <link linkend="pango-font-description-set-variant">pango_font_description_set_variant</link>  (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
49                                                          <link linkend="PangoVariant">PangoVariant</link> variant);
50 <link linkend="PangoVariant">PangoVariant</link>        <link linkend="pango-font-description-get-variant">pango_font_description_get_variant</link>  (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);
51 <link linkend="void">void</link>                <link linkend="pango-font-description-set-weight">pango_font_description_set_weight</link>   (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
52                                                          <link linkend="PangoWeight">PangoWeight</link> weight);
53 <link linkend="PangoWeight">PangoWeight</link>         <link linkend="pango-font-description-get-weight">pango_font_description_get_weight</link>   (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);
54 <link linkend="void">void</link>                <link linkend="pango-font-description-set-stretch">pango_font_description_set_stretch</link>  (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
55                                                          <link linkend="PangoStretch">PangoStretch</link> stretch);
56 <link linkend="PangoStretch">PangoStretch</link>        <link linkend="pango-font-description-get-stretch">pango_font_description_get_stretch</link>  (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);
57 <link linkend="void">void</link>                <link linkend="pango-font-description-set-size">pango_font_description_set_size</link>     (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
58                                                          <link linkend="gint">gint</link> size);
59 <link linkend="gint">gint</link>                <link linkend="pango-font-description-get-size">pango_font_description_get_size</link>     (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);
60 <link linkend="void">void</link>                <link linkend="pango-font-description-set-absolute-size">pango_font_description_set_absolute_size</link>
61                                                         (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
62                                                          <link linkend="double">double</link> size);
63 <link linkend="gboolean">gboolean</link>            <link linkend="pango-font-description-get-size-is-absolute">pango_font_description_get_size_is_absolute</link>
64                                                         (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);
65 <link linkend="void">void</link>                <link linkend="pango-font-description-set-gravity">pango_font_description_set_gravity</link>  (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
66                                                          <link linkend="PangoGravity">PangoGravity</link> gravity);
67 <link linkend="PangoGravity">PangoGravity</link>        <link linkend="pango-font-description-get-gravity">pango_font_description_get_gravity</link>  (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);
68 <link linkend="PangoFontMask">PangoFontMask</link>       <link linkend="pango-font-description-get-set-fields">pango_font_description_get_set_fields</link>
69                                                         (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);
70 <link linkend="void">void</link>                <link linkend="pango-font-description-unset-fields">pango_font_description_unset_fields</link> (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
71                                                          <link linkend="PangoFontMask">PangoFontMask</link> to_unset);
72 <link linkend="void">void</link>                <link linkend="pango-font-description-merge">pango_font_description_merge</link>        (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
73                                                          const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc_to_merge,
74                                                          <link linkend="gboolean">gboolean</link> replace_existing);
75 <link linkend="void">void</link>                <link linkend="pango-font-description-merge-static">pango_font_description_merge_static</link> (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
76                                                          const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc_to_merge,
77                                                          <link linkend="gboolean">gboolean</link> replace_existing);
78 <link linkend="gboolean">gboolean</link>            <link linkend="pango-font-description-better-match">pango_font_description_better_match</link> (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
79                                                          const <link linkend="PangoFontDescription">PangoFontDescription</link> *old_match,
80                                                          const <link linkend="PangoFontDescription">PangoFontDescription</link> *new_match);
81 <link linkend="PangoFontDescription">PangoFontDescription</link> * <link linkend="pango-font-description-from-string">pango_font_description_from_string</link>
82                                                         (const <link linkend="char">char</link> *str);
83 <link linkend="char">char</link> *              <link linkend="pango-font-description-to-string">pango_font_description_to_string</link>    (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);
84 <link linkend="char">char</link> *              <link linkend="pango-font-description-to-filename">pango_font_description_to_filename</link>  (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);
85
86                     <link linkend="PangoFontMetrics">PangoFontMetrics</link>;
87 #define             <link linkend="PANGO-TYPE-FONT-METRICS--CAPS">PANGO_TYPE_FONT_METRICS</link>
88 <link linkend="PangoFontMetrics">PangoFontMetrics</link> *  <link linkend="pango-font-metrics-ref">pango_font_metrics_ref</link>              (<link linkend="PangoFontMetrics">PangoFontMetrics</link> *metrics);
89 <link linkend="void">void</link>                <link linkend="pango-font-metrics-unref">pango_font_metrics_unref</link>            (<link linkend="PangoFontMetrics">PangoFontMetrics</link> *metrics);
90 <link linkend="int">int</link>                 <link linkend="pango-font-metrics-get-ascent">pango_font_metrics_get_ascent</link>       (<link linkend="PangoFontMetrics">PangoFontMetrics</link> *metrics);
91 <link linkend="int">int</link>                 <link linkend="pango-font-metrics-get-descent">pango_font_metrics_get_descent</link>      (<link linkend="PangoFontMetrics">PangoFontMetrics</link> *metrics);
92 <link linkend="int">int</link>                 <link linkend="pango-font-metrics-get-approximate-char-width">pango_font_metrics_get_approximate_char_width</link>
93                                                         (<link linkend="PangoFontMetrics">PangoFontMetrics</link> *metrics);
94 <link linkend="int">int</link>                 <link linkend="pango-font-metrics-get-approximate-digit-width">pango_font_metrics_get_approximate_digit_width</link>
95                                                         (<link linkend="PangoFontMetrics">PangoFontMetrics</link> *metrics);
96 <link linkend="int">int</link>                 <link linkend="pango-font-metrics-get-underline-thickness">pango_font_metrics_get_underline_thickness</link>
97                                                         (<link linkend="PangoFontMetrics">PangoFontMetrics</link> *metrics);
98 <link linkend="int">int</link>                 <link linkend="pango-font-metrics-get-underline-position">pango_font_metrics_get_underline_position</link>
99                                                         (<link linkend="PangoFontMetrics">PangoFontMetrics</link> *metrics);
100 <link linkend="int">int</link>                 <link linkend="pango-font-metrics-get-strikethrough-thickness">pango_font_metrics_get_strikethrough_thickness</link>
101                                                         (<link linkend="PangoFontMetrics">PangoFontMetrics</link> *metrics);
102 <link linkend="int">int</link>                 <link linkend="pango-font-metrics-get-strikethrough-position">pango_font_metrics_get_strikethrough_position</link>
103                                                         (<link linkend="PangoFontMetrics">PangoFontMetrics</link> *metrics);
104
105                     <link linkend="PangoFont-struct">PangoFont</link>;
106 #define             <link linkend="PANGO-TYPE-FONT--CAPS">PANGO_TYPE_FONT</link>
107 #define             <link linkend="PANGO-FONT--CAPS">PANGO_FONT</link>                          (object)
108 #define             <link linkend="PANGO-IS-FONT--CAPS">PANGO_IS_FONT</link>                       (object)
109 <link linkend="PangoEngineShape">PangoEngineShape</link> *  <link linkend="pango-font-find-shaper">pango_font_find_shaper</link>              (<link linkend="PangoFont">PangoFont</link> *font,
110                                                          <link linkend="PangoLanguage">PangoLanguage</link> *language,
111                                                          <link linkend="guint32">guint32</link> ch);
112 <link linkend="PangoFontDescription">PangoFontDescription</link> * <link linkend="pango-font-describe">pango_font_describe</link>              (<link linkend="PangoFont">PangoFont</link> *font);
113 <link linkend="PangoFontDescription">PangoFontDescription</link> * <link linkend="pango-font-describe-with-absolute-size">pango_font_describe_with_absolute_size</link>
114                                                         (<link linkend="PangoFont">PangoFont</link> *font);
115 <link linkend="PangoCoverage">PangoCoverage</link> *     <link linkend="pango-font-get-coverage">pango_font_get_coverage</link>             (<link linkend="PangoFont">PangoFont</link> *font,
116                                                          <link linkend="PangoLanguage">PangoLanguage</link> *language);
117 <link linkend="void">void</link>                <link linkend="pango-font-get-glyph-extents">pango_font_get_glyph_extents</link>        (<link linkend="PangoFont">PangoFont</link> *font,
118                                                          <link linkend="PangoGlyph">PangoGlyph</link> glyph,
119                                                          <link linkend="PangoRectangle">PangoRectangle</link> *ink_rect,
120                                                          <link linkend="PangoRectangle">PangoRectangle</link> *logical_rect);
121 <link linkend="PangoFontMetrics">PangoFontMetrics</link> *  <link linkend="pango-font-get-metrics">pango_font_get_metrics</link>              (<link linkend="PangoFont">PangoFont</link> *font,
122                                                          <link linkend="PangoLanguage">PangoLanguage</link> *language);
123 <link linkend="PangoFontMap">PangoFontMap</link> *      <link linkend="pango-font-get-font-map">pango_font_get_font_map</link>             (<link linkend="PangoFont">PangoFont</link> *font);
124
125                     <link linkend="PangoFontFamily-struct">PangoFontFamily</link>;
126 #define             <link linkend="PANGO-TYPE-FONT-FAMILY--CAPS">PANGO_TYPE_FONT_FAMILY</link>
127 #define             <link linkend="PANGO-FONT-FAMILY--CAPS">PANGO_FONT_FAMILY</link>                   (object)
128 #define             <link linkend="PANGO-IS-FONT-FAMILY--CAPS">PANGO_IS_FONT_FAMILY</link>                (object)
129 const <link linkend="char">char</link> *        <link linkend="pango-font-family-get-name">pango_font_family_get_name</link>          (<link linkend="PangoFontFamily">PangoFontFamily</link> *family);
130 <link linkend="gboolean">gboolean</link>            <link linkend="pango-font-family-is-monospace">pango_font_family_is_monospace</link>      (<link linkend="PangoFontFamily">PangoFontFamily</link> *family);
131 <link linkend="void">void</link>                <link linkend="pango-font-family-list-faces">pango_font_family_list_faces</link>        (<link linkend="PangoFontFamily">PangoFontFamily</link> *family,
132                                                          <link linkend="PangoFontFace">PangoFontFace</link> ***faces,
133                                                          <link linkend="int">int</link> *n_faces);
134
135                     <link linkend="PangoFontFace-struct">PangoFontFace</link>;
136 #define             <link linkend="PANGO-TYPE-FONT-FACE--CAPS">PANGO_TYPE_FONT_FACE</link>
137 #define             <link linkend="PANGO-FONT-FACE--CAPS">PANGO_FONT_FACE</link>                     (object)
138 #define             <link linkend="PANGO-IS-FONT-FACE--CAPS">PANGO_IS_FONT_FACE</link>                  (object)
139 const <link linkend="char">char</link> *        <link linkend="pango-font-face-get-face-name">pango_font_face_get_face_name</link>       (<link linkend="PangoFontFace">PangoFontFace</link> *face);
140 <link linkend="void">void</link>                <link linkend="pango-font-face-list-sizes">pango_font_face_list_sizes</link>          (<link linkend="PangoFontFace">PangoFontFace</link> *face,
141                                                          <link linkend="int">int</link> **sizes,
142                                                          <link linkend="int">int</link> *n_sizes);
143 <link linkend="PangoFontDescription">PangoFontDescription</link> * <link linkend="pango-font-face-describe">pango_font_face_describe</link>         (<link linkend="PangoFontFace">PangoFontFace</link> *face);
144 <link linkend="gboolean">gboolean</link>            <link linkend="pango-font-face-is-synthesized">pango_font_face_is_synthesized</link>      (<link linkend="PangoFontFace">PangoFontFace</link> *face);
145
146                     <link linkend="PangoFontMap-struct">PangoFontMap</link>;
147 #define             <link linkend="PANGO-TYPE-FONT-MAP--CAPS">PANGO_TYPE_FONT_MAP</link>
148 #define             <link linkend="PANGO-FONT-MAP--CAPS">PANGO_FONT_MAP</link>                      (object)
149 #define             <link linkend="PANGO-IS-FONT-MAP--CAPS">PANGO_IS_FONT_MAP</link>                   (object)
150                     <link linkend="PangoFontMapClass">PangoFontMapClass</link>;
151 #define             <link linkend="PANGO-FONT-MAP-CLASS--CAPS">PANGO_FONT_MAP_CLASS</link>                (klass)
152 #define             <link linkend="PANGO-IS-FONT-MAP-CLASS--CAPS">PANGO_IS_FONT_MAP_CLASS</link>             (klass)
153 #define             <link linkend="PANGO-FONT-MAP-GET-CLASS--CAPS">PANGO_FONT_MAP_GET_CLASS</link>            (obj)
154 <link linkend="PangoContext">PangoContext</link> *      <link linkend="pango-font-map-create-context">pango_font_map_create_context</link>       (<link linkend="PangoFontMap">PangoFontMap</link> *fontmap);
155 <link linkend="PangoFont">PangoFont</link> *         <link linkend="pango-font-map-load-font">pango_font_map_load_font</link>            (<link linkend="PangoFontMap">PangoFontMap</link> *fontmap,
156                                                          <link linkend="PangoContext">PangoContext</link> *context,
157                                                          const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);
158 <link linkend="PangoFontset">PangoFontset</link> *      <link linkend="pango-font-map-load-fontset">pango_font_map_load_fontset</link>         (<link linkend="PangoFontMap">PangoFontMap</link> *fontmap,
159                                                          <link linkend="PangoContext">PangoContext</link> *context,
160                                                          const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
161                                                          <link linkend="PangoLanguage">PangoLanguage</link> *language);
162 <link linkend="void">void</link>                <link linkend="pango-font-map-list-families">pango_font_map_list_families</link>        (<link linkend="PangoFontMap">PangoFontMap</link> *fontmap,
163                                                          <link linkend="PangoFontFamily">PangoFontFamily</link> ***families,
164                                                          <link linkend="int">int</link> *n_families);
165 const <link linkend="char">char</link> *        <link linkend="pango-font-map-get-shape-engine-type">pango_font_map_get_shape_engine_type</link>
166                                                         (<link linkend="PangoFontMap">PangoFontMap</link> *fontmap);
167
168                     <link linkend="PangoFontset-struct">PangoFontset</link>;
169 #define             <link linkend="PANGO-TYPE-FONTSET--CAPS">PANGO_TYPE_FONTSET</link>
170                     <link linkend="PangoFontsetClass">PangoFontsetClass</link>;
171 <link linkend="PangoFont">PangoFont</link> *         <link linkend="pango-fontset-get-font">pango_fontset_get_font</link>              (<link linkend="PangoFontset">PangoFontset</link> *fontset,
172                                                          <link linkend="guint">guint</link> wc);
173 <link linkend="PangoFontMetrics">PangoFontMetrics</link> *  <link linkend="pango-fontset-get-metrics">pango_fontset_get_metrics</link>           (<link linkend="PangoFontset">PangoFontset</link> *fontset);
174 <link linkend="gboolean">gboolean</link>            (<link linkend="PangoFontsetForeachFunc">*PangoFontsetForeachFunc</link>)          (<link linkend="PangoFontset">PangoFontset</link> *fontset,
175                                                          <link linkend="PangoFont">PangoFont</link> *font,
176                                                          <link linkend="gpointer">gpointer</link> data);
177 <link linkend="void">void</link>                <link linkend="pango-fontset-foreach">pango_fontset_foreach</link>               (<link linkend="PangoFontset">PangoFontset</link> *fontset,
178                                                          <link linkend="PangoFontsetForeachFunc">PangoFontsetForeachFunc</link> func,
179                                                          <link linkend="gpointer">gpointer</link> data);
180                     <link linkend="PangoFontsetSimple-struct">PangoFontsetSimple</link>;
181 #define             <link linkend="PANGO-TYPE-FONTSET-SIMPLE--CAPS">PANGO_TYPE_FONTSET_SIMPLE</link>
182 <link linkend="PangoFontsetSimple">PangoFontsetSimple</link> * <link linkend="pango-fontset-simple-new">pango_fontset_simple_new</link>           (<link linkend="PangoLanguage">PangoLanguage</link> *language);
183 <link linkend="void">void</link>                <link linkend="pango-fontset-simple-append">pango_fontset_simple_append</link>         (<link linkend="PangoFontsetSimple">PangoFontsetSimple</link> *fontset,
184                                                          <link linkend="PangoFont">PangoFont</link> *font);
185 <link linkend="int">int</link>                 <link linkend="pango-fontset-simple-size">pango_fontset_simple_size</link>           (<link linkend="PangoFontsetSimple">PangoFontsetSimple</link> *fontset);
186 </synopsis>
187 </refsynopsisdiv>
188
189 <refsect1 id="pango-Fonts.object-hierarchy" role="object_hierarchy">
190 <title role="object_hierarchy.title">Object Hierarchy</title>
191 <synopsis>
192   <link linkend="GObject">GObject</link>
193    +----PangoFont
194          +----<link linkend="PangoFcFont">PangoFcFont</link>
195 </synopsis>
196 <synopsis>
197   <link linkend="GObject">GObject</link>
198    +----PangoFontFamily
199 </synopsis>
200 <synopsis>
201   <link linkend="GObject">GObject</link>
202    +----PangoFontFace
203 </synopsis>
204 <synopsis>
205   <link linkend="GObject">GObject</link>
206    +----PangoFontMap
207          +----<link linkend="PangoFcFontMap">PangoFcFontMap</link>
208 </synopsis>
209 <synopsis>
210   <link linkend="GObject">GObject</link>
211    +----PangoFontset
212          +----<link linkend="PangoFontsetSimple">PangoFontsetSimple</link>
213 </synopsis>
214 <synopsis>
215   <link linkend="GObject">GObject</link>
216    +----<link linkend="PangoFontset">PangoFontset</link>
217          +----PangoFontsetSimple
218 </synopsis>
219 </refsect1>
220
221
222 <refsect1 id="pango-Fonts.derived-interfaces" role="derived_interfaces">
223 <title role="derived_interfaces.title">Known Derived Interfaces</title>
224 <para>
225 PangoFont is required by
226  <link linkend="PangoCairoFont">PangoCairoFont</link>.</para>
227 <para>
228 PangoFontMap is required by
229  <link linkend="PangoCairoFontMap">PangoCairoFontMap</link>.</para>
230 </refsect1>
231
232
233
234
235
236
237 <refsect1 id="pango-Fonts.description" role="desc">
238 <title role="desc.title">Description</title>
239 <para>
240 Pango supports a flexible architecture where a
241 particular rendering architecture can supply an
242 implementation of fonts. The <link linkend="PangoFont"><type>PangoFont</type></link> structure
243 represents an abstract rendering-system-independent font.
244 Pango provides routines to list available fonts, and
245 to load a font of a given description.
246 </para>
247 </refsect1>
248
249 <refsect1 id="pango-Fonts.details" role="details">
250 <title role="details.title">Details</title>
251 <refsect2 id="PangoFontDescription" role="struct">
252 <title>PangoFontDescription</title>
253 <indexterm zone="PangoFontDescription"><primary sortas="PangoFontDescription">PangoFontDescription</primary></indexterm><programlisting>typedef struct _PangoFontDescription PangoFontDescription;</programlisting>
254 <para>
255 The <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link> structure represents the description
256 of an ideal font. These structures are used both to list
257 what fonts are available on the system and also for specifying
258 the characteristics of a font to load.
259 </para></refsect2>
260 <refsect2 id="PANGO-TYPE-FONT-DESCRIPTION--CAPS" role="macro">
261 <title>PANGO_TYPE_FONT_DESCRIPTION</title>
262 <indexterm zone="PANGO-TYPE-FONT-DESCRIPTION--CAPS"><primary sortas="PANGO_TYPE_FONT_DESCRIPTION">PANGO_TYPE_FONT_DESCRIPTION</primary></indexterm><programlisting>#define PANGO_TYPE_FONT_DESCRIPTION (pango_font_description_get_type ())
263 </programlisting>
264 <para>
265 The <link linkend="GObject"><type>GObject</type></link> type for <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>.
266 </para></refsect2>
267 <refsect2 id="PangoStyle" role="enum">
268 <title>enum PangoStyle</title>
269 <indexterm zone="PangoStyle"><primary sortas="PangoStyle">PangoStyle</primary></indexterm><programlisting>typedef enum {
270   PANGO_STYLE_NORMAL,
271   PANGO_STYLE_OBLIQUE,
272   PANGO_STYLE_ITALIC
273 } PangoStyle;
274 </programlisting>
275 <para>
276 An enumeration specifying the various slant styles possible for a font.</para>
277 <para>
278 </para><variablelist role="enum">
279 <varlistentry id="PANGO-STYLE-NORMAL--CAPS" role="constant">
280 <term><literal>PANGO_STYLE_NORMAL</literal></term>
281 <listitem><simpara> the font is upright.
282 </simpara></listitem>
283 </varlistentry>
284 <varlistentry id="PANGO-STYLE-OBLIQUE--CAPS" role="constant">
285 <term><literal>PANGO_STYLE_OBLIQUE</literal></term>
286 <listitem><simpara> the font is slanted, but in a roman style.
287 </simpara></listitem>
288 </varlistentry>
289 <varlistentry id="PANGO-STYLE-ITALIC--CAPS" role="constant">
290 <term><literal>PANGO_STYLE_ITALIC</literal></term>
291 <listitem><simpara> the font is slanted in an italic style.
292 </simpara></listitem>
293 </varlistentry>
294 </variablelist></refsect2>
295 <refsect2 id="PANGO-TYPE-STYLE--CAPS" role="macro">
296 <title>PANGO_TYPE_STYLE</title>
297 <indexterm zone="PANGO-TYPE-STYLE--CAPS"><primary sortas="PANGO_TYPE_STYLE">PANGO_TYPE_STYLE</primary></indexterm><programlisting>#define PANGO_TYPE_STYLE (pango_style_get_type())
298 </programlisting>
299 <para>
300 The <link linkend="GObject"><type>GObject</type></link> type for <link linkend="PangoStyle"><type>PangoStyle</type></link>.
301 </para></refsect2>
302 <refsect2 id="PangoWeight" role="enum">
303 <title>enum PangoWeight</title>
304 <indexterm zone="PangoWeight"><primary sortas="PangoWeight">PangoWeight</primary></indexterm><programlisting>typedef enum {
305   PANGO_WEIGHT_THIN = 100,
306   PANGO_WEIGHT_ULTRALIGHT = 200,
307   PANGO_WEIGHT_LIGHT = 300,
308   PANGO_WEIGHT_BOOK = 380,
309   PANGO_WEIGHT_NORMAL = 400,
310   PANGO_WEIGHT_MEDIUM = 500,
311   PANGO_WEIGHT_SEMIBOLD = 600,
312   PANGO_WEIGHT_BOLD = 700,
313   PANGO_WEIGHT_ULTRABOLD = 800,
314   PANGO_WEIGHT_HEAVY = 900,
315   PANGO_WEIGHT_ULTRAHEAVY = 1000
316 } PangoWeight;
317 </programlisting>
318 <para>
319 An enumeration specifying the weight (boldness) of a font. This is a numerical
320 value ranging from 100 to 900, but there are some predefined values:
321 </para><variablelist role="enum">
322 <varlistentry id="PANGO-WEIGHT-THIN--CAPS" role="constant">
323 <term><literal>PANGO_WEIGHT_THIN</literal></term>
324 <listitem><simpara>the thin weight (= 100; Since: 1.24)
325 </simpara></listitem>
326 </varlistentry>
327 <varlistentry id="PANGO-WEIGHT-ULTRALIGHT--CAPS" role="constant">
328 <term><literal>PANGO_WEIGHT_ULTRALIGHT</literal></term>
329 <listitem><simpara>the ultralight weight (= 200)
330 </simpara></listitem>
331 </varlistentry>
332 <varlistentry id="PANGO-WEIGHT-LIGHT--CAPS" role="constant">
333 <term><literal>PANGO_WEIGHT_LIGHT</literal></term>
334 <listitem><simpara>the light weight (= 300)
335 </simpara></listitem>
336 </varlistentry>
337 <varlistentry id="PANGO-WEIGHT-BOOK--CAPS" role="constant">
338 <term><literal>PANGO_WEIGHT_BOOK</literal></term>
339 <listitem><simpara>the book weight (= 380; Since: 1.24)
340 </simpara></listitem>
341 </varlistentry>
342 <varlistentry id="PANGO-WEIGHT-NORMAL--CAPS" role="constant">
343 <term><literal>PANGO_WEIGHT_NORMAL</literal></term>
344 <listitem><simpara>the default weight (= 400)
345 </simpara></listitem>
346 </varlistentry>
347 <varlistentry id="PANGO-WEIGHT-MEDIUM--CAPS" role="constant">
348 <term><literal>PANGO_WEIGHT_MEDIUM</literal></term>
349 <listitem><simpara>the normal weight (= 500; Since: 1.24)
350 </simpara></listitem>
351 </varlistentry>
352 <varlistentry id="PANGO-WEIGHT-SEMIBOLD--CAPS" role="constant">
353 <term><literal>PANGO_WEIGHT_SEMIBOLD</literal></term>
354 <listitem><simpara>the semibold weight (= 600)
355 </simpara></listitem>
356 </varlistentry>
357 <varlistentry id="PANGO-WEIGHT-BOLD--CAPS" role="constant">
358 <term><literal>PANGO_WEIGHT_BOLD</literal></term>
359 <listitem><simpara>the bold weight (= 700)
360 </simpara></listitem>
361 </varlistentry>
362 <varlistentry id="PANGO-WEIGHT-ULTRABOLD--CAPS" role="constant">
363 <term><literal>PANGO_WEIGHT_ULTRABOLD</literal></term>
364 <listitem><simpara>the ultrabold weight (= 800)
365 </simpara></listitem>
366 </varlistentry>
367 <varlistentry id="PANGO-WEIGHT-HEAVY--CAPS" role="constant">
368 <term><literal>PANGO_WEIGHT_HEAVY</literal></term>
369 <listitem><simpara>the heavy weight (= 900)
370 </simpara></listitem>
371 </varlistentry>
372 <varlistentry id="PANGO-WEIGHT-ULTRAHEAVY--CAPS" role="constant">
373 <term><literal>PANGO_WEIGHT_ULTRAHEAVY</literal></term>
374 <listitem><simpara>the ultraheavy weight (= 1000; Since: 1.24)
375 </simpara></listitem>
376 </varlistentry>
377 </variablelist></refsect2>
378 <refsect2 id="PANGO-TYPE-WEIGHT--CAPS" role="macro">
379 <title>PANGO_TYPE_WEIGHT</title>
380 <indexterm zone="PANGO-TYPE-WEIGHT--CAPS"><primary sortas="PANGO_TYPE_WEIGHT">PANGO_TYPE_WEIGHT</primary></indexterm><programlisting>#define PANGO_TYPE_WEIGHT (pango_weight_get_type())
381 </programlisting>
382 <para>
383 The <link linkend="GObject"><type>GObject</type></link> type for <link linkend="PangoWeight"><type>PangoWeight</type></link>.
384 </para></refsect2>
385 <refsect2 id="PangoVariant" role="enum">
386 <title>enum PangoVariant</title>
387 <indexterm zone="PangoVariant"><primary sortas="PangoVariant">PangoVariant</primary></indexterm><programlisting>typedef enum {
388   PANGO_VARIANT_NORMAL,
389   PANGO_VARIANT_SMALL_CAPS
390 } PangoVariant;
391 </programlisting>
392 <para>
393 An enumeration specifying capitalization variant of the font.
394 </para><variablelist role="enum">
395 <varlistentry id="PANGO-VARIANT-NORMAL--CAPS" role="constant">
396 <term><literal>PANGO_VARIANT_NORMAL</literal></term>
397 <listitem><simpara>A normal font.
398 </simpara></listitem>
399 </varlistentry>
400 <varlistentry id="PANGO-VARIANT-SMALL-CAPS--CAPS" role="constant">
401 <term><literal>PANGO_VARIANT_SMALL_CAPS</literal></term>
402 <listitem><simpara>A font with the lower case characters
403   replaced by smaller variants of the capital characters.
404 </simpara></listitem>
405 </varlistentry>
406 </variablelist></refsect2>
407 <refsect2 id="PANGO-TYPE-VARIANT--CAPS" role="macro">
408 <title>PANGO_TYPE_VARIANT</title>
409 <indexterm zone="PANGO-TYPE-VARIANT--CAPS"><primary sortas="PANGO_TYPE_VARIANT">PANGO_TYPE_VARIANT</primary></indexterm><programlisting>#define PANGO_TYPE_VARIANT (pango_variant_get_type())
410 </programlisting>
411 <para>
412 The <link linkend="GObject"><type>GObject</type></link> type for <link linkend="PangoVariant"><type>PangoVariant</type></link>.
413 </para></refsect2>
414 <refsect2 id="PangoStretch" role="enum">
415 <title>enum PangoStretch</title>
416 <indexterm zone="PangoStretch"><primary sortas="PangoStretch">PangoStretch</primary></indexterm><programlisting>typedef enum {
417   PANGO_STRETCH_ULTRA_CONDENSED,
418   PANGO_STRETCH_EXTRA_CONDENSED,
419   PANGO_STRETCH_CONDENSED,
420   PANGO_STRETCH_SEMI_CONDENSED,
421   PANGO_STRETCH_NORMAL,
422   PANGO_STRETCH_SEMI_EXPANDED,
423   PANGO_STRETCH_EXPANDED,
424   PANGO_STRETCH_EXTRA_EXPANDED,
425   PANGO_STRETCH_ULTRA_EXPANDED
426 } PangoStretch;
427 </programlisting>
428 <para>
429 An enumeration specifying the width of the font relative to other designs
430 within a family.
431 </para><variablelist role="enum">
432 <varlistentry id="PANGO-STRETCH-ULTRA-CONDENSED--CAPS" role="constant">
433 <term><literal>PANGO_STRETCH_ULTRA_CONDENSED</literal></term>
434 <listitem><simpara>ultra condensed width
435 </simpara></listitem>
436 </varlistentry>
437 <varlistentry id="PANGO-STRETCH-EXTRA-CONDENSED--CAPS" role="constant">
438 <term><literal>PANGO_STRETCH_EXTRA_CONDENSED</literal></term>
439 <listitem><simpara>extra condensed width
440 </simpara></listitem>
441 </varlistentry>
442 <varlistentry id="PANGO-STRETCH-CONDENSED--CAPS" role="constant">
443 <term><literal>PANGO_STRETCH_CONDENSED</literal></term>
444 <listitem><simpara>condensed width
445 </simpara></listitem>
446 </varlistentry>
447 <varlistentry id="PANGO-STRETCH-SEMI-CONDENSED--CAPS" role="constant">
448 <term><literal>PANGO_STRETCH_SEMI_CONDENSED</literal></term>
449 <listitem><simpara>semi condensed width
450 </simpara></listitem>
451 </varlistentry>
452 <varlistentry id="PANGO-STRETCH-NORMAL--CAPS" role="constant">
453 <term><literal>PANGO_STRETCH_NORMAL</literal></term>
454 <listitem><simpara>the normal width
455 </simpara></listitem>
456 </varlistentry>
457 <varlistentry id="PANGO-STRETCH-SEMI-EXPANDED--CAPS" role="constant">
458 <term><literal>PANGO_STRETCH_SEMI_EXPANDED</literal></term>
459 <listitem><simpara>semi expanded width
460 </simpara></listitem>
461 </varlistentry>
462 <varlistentry id="PANGO-STRETCH-EXPANDED--CAPS" role="constant">
463 <term><literal>PANGO_STRETCH_EXPANDED</literal></term>
464 <listitem><simpara>expanded width
465 </simpara></listitem>
466 </varlistentry>
467 <varlistentry id="PANGO-STRETCH-EXTRA-EXPANDED--CAPS" role="constant">
468 <term><literal>PANGO_STRETCH_EXTRA_EXPANDED</literal></term>
469 <listitem><simpara>extra expanded width
470 </simpara></listitem>
471 </varlistentry>
472 <varlistentry id="PANGO-STRETCH-ULTRA-EXPANDED--CAPS" role="constant">
473 <term><literal>PANGO_STRETCH_ULTRA_EXPANDED</literal></term>
474 <listitem><simpara>ultra expanded width
475 </simpara></listitem>
476 </varlistentry>
477 </variablelist></refsect2>
478 <refsect2 id="PANGO-TYPE-STRETCH--CAPS" role="macro">
479 <title>PANGO_TYPE_STRETCH</title>
480 <indexterm zone="PANGO-TYPE-STRETCH--CAPS"><primary sortas="PANGO_TYPE_STRETCH">PANGO_TYPE_STRETCH</primary></indexterm><programlisting>#define PANGO_TYPE_STRETCH (pango_stretch_get_type())
481 </programlisting>
482 <para>
483 The <link linkend="GObject"><type>GObject</type></link> type for <link linkend="PangoStretch"><type>PangoStretch</type></link>.
484 </para></refsect2>
485 <refsect2 id="PangoFontMask" role="enum">
486 <title>enum PangoFontMask</title>
487 <indexterm zone="PangoFontMask"><primary sortas="PangoFontMask">PangoFontMask</primary></indexterm><programlisting>typedef enum {
488   PANGO_FONT_MASK_FAMILY  = 1 &lt;&lt; 0,
489   PANGO_FONT_MASK_STYLE   = 1 &lt;&lt; 1,
490   PANGO_FONT_MASK_VARIANT = 1 &lt;&lt; 2,
491   PANGO_FONT_MASK_WEIGHT  = 1 &lt;&lt; 3,
492   PANGO_FONT_MASK_STRETCH = 1 &lt;&lt; 4,
493   PANGO_FONT_MASK_SIZE    = 1 &lt;&lt; 5,
494   PANGO_FONT_MASK_GRAVITY = 1 &lt;&lt; 6
495 } PangoFontMask;
496 </programlisting>
497 <para>
498 The bits in a <link linkend="PangoFontMask"><type>PangoFontMask</type></link> correspond to fields in a
499 <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link> that have been set.
500 </para><variablelist role="enum">
501 <varlistentry id="PANGO-FONT-MASK-FAMILY--CAPS" role="constant">
502 <term><literal>PANGO_FONT_MASK_FAMILY</literal></term>
503 <listitem><simpara>the font family is specified.
504 </simpara></listitem>
505 </varlistentry>
506 <varlistentry id="PANGO-FONT-MASK-STYLE--CAPS" role="constant">
507 <term><literal>PANGO_FONT_MASK_STYLE</literal></term>
508 <listitem><simpara>the font style is specified.
509 </simpara></listitem>
510 </varlistentry>
511 <varlistentry id="PANGO-FONT-MASK-VARIANT--CAPS" role="constant">
512 <term><literal>PANGO_FONT_MASK_VARIANT</literal></term>
513 <listitem><simpara>the font variant is specified.
514 </simpara></listitem>
515 </varlistentry>
516 <varlistentry id="PANGO-FONT-MASK-WEIGHT--CAPS" role="constant">
517 <term><literal>PANGO_FONT_MASK_WEIGHT</literal></term>
518 <listitem><simpara>the font weight is specified.
519 </simpara></listitem>
520 </varlistentry>
521 <varlistentry id="PANGO-FONT-MASK-STRETCH--CAPS" role="constant">
522 <term><literal>PANGO_FONT_MASK_STRETCH</literal></term>
523 <listitem><simpara>the font stretch is specified.
524 </simpara></listitem>
525 </varlistentry>
526 <varlistentry id="PANGO-FONT-MASK-SIZE--CAPS" role="constant">
527 <term><literal>PANGO_FONT_MASK_SIZE</literal></term>
528 <listitem><simpara>the font size is specified.
529 </simpara></listitem>
530 </varlistentry>
531 <varlistentry id="PANGO-FONT-MASK-GRAVITY--CAPS" role="constant">
532 <term><literal>PANGO_FONT_MASK_GRAVITY</literal></term>
533 <listitem><simpara>the font gravity is specified (Since: 1.16.)
534 </simpara></listitem>
535 </varlistentry>
536 </variablelist></refsect2>
537 <refsect2 id="PANGO-TYPE-FONT-MASK--CAPS" role="macro">
538 <title>PANGO_TYPE_FONT_MASK</title>
539 <indexterm zone="PANGO-TYPE-FONT-MASK--CAPS"><primary sortas="PANGO_TYPE_FONT_MASK">PANGO_TYPE_FONT_MASK</primary></indexterm><programlisting>#define PANGO_TYPE_FONT_MASK (pango_font_mask_get_type())
540 </programlisting>
541 <para>
542 The <link linkend="GObject"><type>GObject</type></link> type for <link linkend="PangoFontMask"><type>PangoFontMask</type></link>.
543 </para></refsect2>
544 <refsect2 id="pango-font-description-new" role="function">
545 <title>pango_font_description_new ()</title>
546 <indexterm zone="pango-font-description-new"><primary sortas="pango_font_description_new">pango_font_description_new</primary></indexterm><programlisting><link linkend="PangoFontDescription">PangoFontDescription</link> * pango_font_description_new       (void);</programlisting>
547 <para>
548 Creates a new font description structure with all fields unset.</para>
549 <para>
550 </para><variablelist role="params">
551 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the newly allocated <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>, which
552               should be freed using <link linkend="pango-font-description-free"><function>pango_font_description_free()</function></link>.
553 </simpara></listitem></varlistentry>
554 </variablelist></refsect2>
555 <refsect2 id="pango-font-description-copy" role="function">
556 <title>pango_font_description_copy ()</title>
557 <indexterm zone="pango-font-description-copy"><primary sortas="pango_font_description_copy">pango_font_description_copy</primary></indexterm><programlisting><link linkend="PangoFontDescription">PangoFontDescription</link> * pango_font_description_copy      (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);</programlisting>
558 <para>
559 Make a copy of a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>.</para>
560 <para>
561 </para><variablelist role="params">
562 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
563 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>, may be <link linkend="NULL--CAPS"><literal>NULL</literal></link>
564 </simpara></listitem></varlistentry>
565 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the newly allocated <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>, which should
566               be freed with <link linkend="pango-font-description-free"><function>pango_font_description_free()</function></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
567               if <parameter>desc</parameter> was <link linkend="NULL--CAPS"><literal>NULL</literal></link>.
568 </simpara></listitem></varlistentry>
569 </variablelist></refsect2>
570 <refsect2 id="pango-font-description-copy-static" role="function">
571 <title>pango_font_description_copy_static ()</title>
572 <indexterm zone="pango-font-description-copy-static"><primary sortas="pango_font_description_copy_static">pango_font_description_copy_static</primary></indexterm><programlisting><link linkend="PangoFontDescription">PangoFontDescription</link> * pango_font_description_copy_static
573                                                         (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);</programlisting>
574 <para>
575 Like <link linkend="pango-font-description-copy"><function>pango_font_description_copy()</function></link>, but only a shallow copy is made
576 of the family name and other allocated fields. The result can only
577 be used until <parameter>desc</parameter> is modified or freed. This is meant to be used
578 when the copy is only needed temporarily.</para>
579 <para>
580 </para><variablelist role="params">
581 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
582 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>, may be <link linkend="NULL--CAPS"><literal>NULL</literal></link>
583 </simpara></listitem></varlistentry>
584 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the newly allocated <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>, which should
585               be freed with <link linkend="pango-font-description-free"><function>pango_font_description_free()</function></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
586               if <parameter>desc</parameter> was <link linkend="NULL--CAPS"><literal>NULL</literal></link>.
587 </simpara></listitem></varlistentry>
588 </variablelist></refsect2>
589 <refsect2 id="pango-font-description-hash" role="function">
590 <title>pango_font_description_hash ()</title>
591 <indexterm zone="pango-font-description-hash"><primary sortas="pango_font_description_hash">pango_font_description_hash</primary></indexterm><programlisting><link linkend="guint">guint</link>               pango_font_description_hash         (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);</programlisting>
592 <para>
593 Computes a hash of a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link> structure suitable
594 to be used, for example, as an argument to <link linkend="g-hash-table-new"><function>g_hash_table_new()</function></link>.
595 The hash value is independent of <parameter>desc->mask</parameter>.</para>
596 <para>
597 </para><variablelist role="params">
598 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
599 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
600 </simpara></listitem></varlistentry>
601 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the hash value.
602 </simpara></listitem></varlistentry>
603 </variablelist></refsect2>
604 <refsect2 id="pango-font-description-equal" role="function">
605 <title>pango_font_description_equal ()</title>
606 <indexterm zone="pango-font-description-equal"><primary sortas="pango_font_description_equal">pango_font_description_equal</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            pango_font_description_equal        (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc1,
607                                                          const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc2);</programlisting>
608 <para>
609 Compares two font descriptions for equality. Two font descriptions
610 are considered equal if the fonts they describe are provably identical.
611 This means that their masks do not have to match, as long as other fields
612 are all the same. (Two font descriptions may result in identical fonts
613 being loaded, but still compare <link linkend="FALSE--CAPS"><literal>FALSE</literal></link>.)</para>
614 <para>
615 </para><variablelist role="params">
616 <varlistentry><term><parameter>desc1</parameter>&#160;:</term>
617 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
618 </simpara></listitem></varlistentry>
619 <varlistentry><term><parameter>desc2</parameter>&#160;:</term>
620 <listitem><simpara> another <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
621 </simpara></listitem></varlistentry>
622 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the two font descriptions are identical,
623          <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise.
624 </simpara></listitem></varlistentry>
625 </variablelist></refsect2>
626 <refsect2 id="pango-font-description-free" role="function">
627 <title>pango_font_description_free ()</title>
628 <indexterm zone="pango-font-description-free"><primary sortas="pango_font_description_free">pango_font_description_free</primary></indexterm><programlisting><link linkend="void">void</link>                pango_font_description_free         (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc);</programlisting>
629 <para>
630 Frees a font description.</para>
631 <para>
632 </para><variablelist role="params">
633 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
634 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>, may be <link linkend="NULL--CAPS"><literal>NULL</literal></link>
635 </simpara></listitem></varlistentry>
636 </variablelist></refsect2>
637 <refsect2 id="pango-font-descriptions-free" role="function">
638 <title>pango_font_descriptions_free ()</title>
639 <indexterm zone="pango-font-descriptions-free"><primary sortas="pango_font_descriptions_free">pango_font_descriptions_free</primary></indexterm><programlisting><link linkend="void">void</link>                pango_font_descriptions_free        (<link linkend="PangoFontDescription">PangoFontDescription</link> **descs,
640                                                          <link linkend="int">int</link> n_descs);</programlisting>
641 <para>
642 Frees an array of font descriptions.</para>
643 <para>
644 </para><variablelist role="params">
645 <varlistentry><term><parameter>descs</parameter>&#160;:</term>
646 <listitem><simpara> a pointer to an array of <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>, may be <link linkend="NULL--CAPS"><literal>NULL</literal></link>
647 </simpara></listitem></varlistentry>
648 <varlistentry><term><parameter>n_descs</parameter>&#160;:</term>
649 <listitem><simpara> number of font descriptions in <parameter>descs</parameter>
650 </simpara></listitem></varlistentry>
651 </variablelist></refsect2>
652 <refsect2 id="pango-font-description-set-family" role="function">
653 <title>pango_font_description_set_family ()</title>
654 <indexterm zone="pango-font-description-set-family"><primary sortas="pango_font_description_set_family">pango_font_description_set_family</primary></indexterm><programlisting><link linkend="void">void</link>                pango_font_description_set_family   (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
655                                                          const <link linkend="char">char</link> *family);</programlisting>
656 <para>
657 Sets the family name field of a font description. The family
658 name represents a family of related font styles, and will
659 resolve to a particular <link linkend="PangoFontFamily"><type>PangoFontFamily</type></link>. In some uses of
660 <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>, it is also possible to use a comma
661 separated list of family names for this field.</para>
662 <para>
663 </para><variablelist role="params">
664 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
665 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>.
666 </simpara></listitem></varlistentry>
667 <varlistentry><term><parameter>family</parameter>&#160;:</term>
668 <listitem><simpara> a string representing the family name.
669 </simpara></listitem></varlistentry>
670 </variablelist></refsect2>
671 <refsect2 id="pango-font-description-set-family-static" role="function">
672 <title>pango_font_description_set_family_static ()</title>
673 <indexterm zone="pango-font-description-set-family-static"><primary sortas="pango_font_description_set_family_static">pango_font_description_set_family_static</primary></indexterm><programlisting><link linkend="void">void</link>                pango_font_description_set_family_static
674                                                         (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
675                                                          const <link linkend="char">char</link> *family);</programlisting>
676 <para>
677 Like <link linkend="pango-font-description-set-family"><function>pango_font_description_set_family()</function></link>, except that no
678 copy of <parameter>family</parameter> is made. The caller must make sure that the
679 string passed in stays around until <parameter>desc</parameter> has been freed
680 or the name is set again. This function can be used if
681 <parameter>family</parameter> is a static string such as a C string literal, or
682 if <parameter>desc</parameter> is only needed temporarily.</para>
683 <para>
684 </para><variablelist role="params">
685 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
686 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
687 </simpara></listitem></varlistentry>
688 <varlistentry><term><parameter>family</parameter>&#160;:</term>
689 <listitem><simpara> a string representing the family name.
690 </simpara></listitem></varlistentry>
691 </variablelist></refsect2>
692 <refsect2 id="pango-font-description-get-family" role="function">
693 <title>pango_font_description_get_family ()</title>
694 <indexterm zone="pango-font-description-get-family"><primary sortas="pango_font_description_get_family">pango_font_description_get_family</primary></indexterm><programlisting>const <link linkend="char">char</link> *        pango_font_description_get_family   (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);</programlisting>
695 <para>
696 Gets the family name field of a font description. See
697 <link linkend="pango-font-description-set-family"><function>pango_font_description_set_family()</function></link>.</para>
698 <para>
699 </para><variablelist role="params">
700 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
701 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>.
702 </simpara></listitem></varlistentry>
703 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the family name field for the font description, or
704               <link linkend="NULL--CAPS"><literal>NULL</literal></link> if not previously set.  This has the same life-time
705               as the font description itself and should not be freed.
706 </simpara></listitem></varlistentry>
707 </variablelist></refsect2>
708 <refsect2 id="pango-font-description-set-style" role="function">
709 <title>pango_font_description_set_style ()</title>
710 <indexterm zone="pango-font-description-set-style"><primary sortas="pango_font_description_set_style">pango_font_description_set_style</primary></indexterm><programlisting><link linkend="void">void</link>                pango_font_description_set_style    (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
711                                                          <link linkend="PangoStyle">PangoStyle</link> style);</programlisting>
712 <para>
713 Sets the style field of a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>. The
714 <link linkend="PangoStyle"><type>PangoStyle</type></link> enumeration describes whether the font is slanted and
715 the manner in which it is slanted; it can be either
716 <link linkend="PANGO-STYLE-NORMAL--CAPS"><type>PANGO_STYLE_NORMAL</type></link>, <link linkend="PANGO-STYLE-ITALIC--CAPS"><type>PANGO_STYLE_ITALIC</type></link>, or <link linkend="PANGO-STYLE-OBLIQUE--CAPS"><type>PANGO_STYLE_OBLIQUE</type></link>.
717 Most fonts will either have a italic style or an oblique
718 style, but not both, and font matching in Pango will
719 match italic specifications with oblique fonts and vice-versa
720 if an exact match is not found.</para>
721 <para>
722 </para><variablelist role="params">
723 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
724 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
725 </simpara></listitem></varlistentry>
726 <varlistentry><term><parameter>style</parameter>&#160;:</term>
727 <listitem><simpara> the style for the font description
728 </simpara></listitem></varlistentry>
729 </variablelist></refsect2>
730 <refsect2 id="pango-font-description-get-style" role="function">
731 <title>pango_font_description_get_style ()</title>
732 <indexterm zone="pango-font-description-get-style"><primary sortas="pango_font_description_get_style">pango_font_description_get_style</primary></indexterm><programlisting><link linkend="PangoStyle">PangoStyle</link>          pango_font_description_get_style    (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);</programlisting>
733 <para>
734 Gets the style field of a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>. See
735 <link linkend="pango-font-description-set-style"><function>pango_font_description_set_style()</function></link>.</para>
736 <para>
737 </para><variablelist role="params">
738 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
739 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
740 </simpara></listitem></varlistentry>
741 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the style field for the font description.
742   Use <link linkend="pango-font-description-get-set-fields"><function>pango_font_description_get_set_fields()</function></link> to find out if
743   the field was explicitly set or not.
744 </simpara></listitem></varlistentry>
745 </variablelist></refsect2>
746 <refsect2 id="pango-font-description-set-variant" role="function">
747 <title>pango_font_description_set_variant ()</title>
748 <indexterm zone="pango-font-description-set-variant"><primary sortas="pango_font_description_set_variant">pango_font_description_set_variant</primary></indexterm><programlisting><link linkend="void">void</link>                pango_font_description_set_variant  (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
749                                                          <link linkend="PangoVariant">PangoVariant</link> variant);</programlisting>
750 <para>
751 Sets the variant field of a font description. The <link linkend="PangoVariant"><type>PangoVariant</type></link>
752 can either be <link linkend="PANGO-VARIANT-NORMAL--CAPS"><literal>PANGO_VARIANT_NORMAL</literal></link> or <link linkend="PANGO-VARIANT-SMALL-CAPS--CAPS"><literal>PANGO_VARIANT_SMALL_CAPS</literal></link>.</para>
753 <para>
754 </para><variablelist role="params">
755 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
756 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
757 </simpara></listitem></varlistentry>
758 <varlistentry><term><parameter>variant</parameter>&#160;:</term>
759 <listitem><simpara> the variant type for the font description.
760 </simpara></listitem></varlistentry>
761 </variablelist></refsect2>
762 <refsect2 id="pango-font-description-get-variant" role="function">
763 <title>pango_font_description_get_variant ()</title>
764 <indexterm zone="pango-font-description-get-variant"><primary sortas="pango_font_description_get_variant">pango_font_description_get_variant</primary></indexterm><programlisting><link linkend="PangoVariant">PangoVariant</link>        pango_font_description_get_variant  (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);</programlisting>
765 <para>
766 Gets the variant field of a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>. See
767 <link linkend="pango-font-description-set-variant"><function>pango_font_description_set_variant()</function></link>.</para>
768 <para>
769 </para><variablelist role="params">
770 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
771 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>.
772 </simpara></listitem></varlistentry>
773 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the variant field for the font description. Use
774   <link linkend="pango-font-description-get-set-fields"><function>pango_font_description_get_set_fields()</function></link> to find out if
775   the field was explicitly set or not.
776 </simpara></listitem></varlistentry>
777 </variablelist></refsect2>
778 <refsect2 id="pango-font-description-set-weight" role="function">
779 <title>pango_font_description_set_weight ()</title>
780 <indexterm zone="pango-font-description-set-weight"><primary sortas="pango_font_description_set_weight">pango_font_description_set_weight</primary></indexterm><programlisting><link linkend="void">void</link>                pango_font_description_set_weight   (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
781                                                          <link linkend="PangoWeight">PangoWeight</link> weight);</programlisting>
782 <para>
783 Sets the weight field of a font description. The weight field
784 specifies how bold or light the font should be. In addition
785 to the values of the <link linkend="PangoWeight"><type>PangoWeight</type></link> enumeration, other intermediate
786 numeric values are possible.</para>
787 <para>
788 </para><variablelist role="params">
789 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
790 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
791 </simpara></listitem></varlistentry>
792 <varlistentry><term><parameter>weight</parameter>&#160;:</term>
793 <listitem><simpara> the weight for the font description.
794 </simpara></listitem></varlistentry>
795 </variablelist></refsect2>
796 <refsect2 id="pango-font-description-get-weight" role="function">
797 <title>pango_font_description_get_weight ()</title>
798 <indexterm zone="pango-font-description-get-weight"><primary sortas="pango_font_description_get_weight">pango_font_description_get_weight</primary></indexterm><programlisting><link linkend="PangoWeight">PangoWeight</link>         pango_font_description_get_weight   (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);</programlisting>
799 <para>
800 Gets the weight field of a font description. See
801 <link linkend="pango-font-description-set-weight"><function>pango_font_description_set_weight()</function></link>.</para>
802 <para>
803 </para><variablelist role="params">
804 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
805 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
806 </simpara></listitem></varlistentry>
807 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the weight field for the font description. Use
808   <link linkend="pango-font-description-get-set-fields"><function>pango_font_description_get_set_fields()</function></link> to find out if
809   the field was explicitly set or not.
810 </simpara></listitem></varlistentry>
811 </variablelist></refsect2>
812 <refsect2 id="pango-font-description-set-stretch" role="function">
813 <title>pango_font_description_set_stretch ()</title>
814 <indexterm zone="pango-font-description-set-stretch"><primary sortas="pango_font_description_set_stretch">pango_font_description_set_stretch</primary></indexterm><programlisting><link linkend="void">void</link>                pango_font_description_set_stretch  (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
815                                                          <link linkend="PangoStretch">PangoStretch</link> stretch);</programlisting>
816 <para>
817 Sets the stretch field of a font description. The stretch field
818 specifies how narrow or wide the font should be.</para>
819 <para>
820 </para><variablelist role="params">
821 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
822 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
823 </simpara></listitem></varlistentry>
824 <varlistentry><term><parameter>stretch</parameter>&#160;:</term>
825 <listitem><simpara> the stretch for the font description
826 </simpara></listitem></varlistentry>
827 </variablelist></refsect2>
828 <refsect2 id="pango-font-description-get-stretch" role="function">
829 <title>pango_font_description_get_stretch ()</title>
830 <indexterm zone="pango-font-description-get-stretch"><primary sortas="pango_font_description_get_stretch">pango_font_description_get_stretch</primary></indexterm><programlisting><link linkend="PangoStretch">PangoStretch</link>        pango_font_description_get_stretch  (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);</programlisting>
831 <para>
832 Gets the stretch field of a font description.
833 See <link linkend="pango-font-description-set-stretch"><function>pango_font_description_set_stretch()</function></link>.</para>
834 <para>
835 </para><variablelist role="params">
836 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
837 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>.
838 </simpara></listitem></varlistentry>
839 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the stretch field for the font description. Use
840   <link linkend="pango-font-description-get-set-fields"><function>pango_font_description_get_set_fields()</function></link> to find out if
841   the field was explicitly set or not.
842 </simpara></listitem></varlistentry>
843 </variablelist></refsect2>
844 <refsect2 id="pango-font-description-set-size" role="function">
845 <title>pango_font_description_set_size ()</title>
846 <indexterm zone="pango-font-description-set-size"><primary sortas="pango_font_description_set_size">pango_font_description_set_size</primary></indexterm><programlisting><link linkend="void">void</link>                pango_font_description_set_size     (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
847                                                          <link linkend="gint">gint</link> size);</programlisting>
848 <para>
849 Sets the size field of a font description in fractional points. This is mutually
850 exclusive with <link linkend="pango-font-description-set-absolute-size"><function>pango_font_description_set_absolute_size()</function></link>.</para>
851 <para>
852 </para><variablelist role="params">
853 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
854 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
855 </simpara></listitem></varlistentry>
856 <varlistentry><term><parameter>size</parameter>&#160;:</term>
857 <listitem><simpara> the size of the font in points, scaled by PANGO_SCALE. (That is,
858        a <parameter>size</parameter> value of 10 * PANGO_SCALE is a 10 point font. The conversion
859        factor between points and device units depends on system configuration
860        and the output device. For screen display, a logical DPI of 96 is
861        common, in which case a 10 point font corresponds to a 10 * (96 / 72) = 13.3
862        pixel font. Use <link linkend="pango-font-description-set-absolute-size"><function>pango_font_description_set_absolute_size()</function></link> if you need
863        a particular size in device units.
864 </simpara></listitem></varlistentry>
865 </variablelist></refsect2>
866 <refsect2 id="pango-font-description-get-size" role="function">
867 <title>pango_font_description_get_size ()</title>
868 <indexterm zone="pango-font-description-get-size"><primary sortas="pango_font_description_get_size">pango_font_description_get_size</primary></indexterm><programlisting><link linkend="gint">gint</link>                pango_font_description_get_size     (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);</programlisting>
869 <para>
870 Gets the size field of a font description.
871 See <link linkend="pango-font-description-set-size"><function>pango_font_description_set_size()</function></link>.</para>
872 <para>
873 </para><variablelist role="params">
874 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
875 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
876 </simpara></listitem></varlistentry>
877 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the size field for the font description in points or device units.
878   You must call <link linkend="pango-font-description-get-size-is-absolute"><function>pango_font_description_get_size_is_absolute()</function></link>
879   to find out which is the case. Returns 0 if the size field has not
880   previously been set or it has been set to 0 explicitly.
881   Use <link linkend="pango-font-description-get-set-fields"><function>pango_font_description_get_set_fields()</function></link> to
882   find out if the field was explicitly set or not.
883 </simpara></listitem></varlistentry>
884 </variablelist></refsect2>
885 <refsect2 id="pango-font-description-set-absolute-size" role="function" condition="since:1.8">
886 <title>pango_font_description_set_absolute_size ()</title>
887 <indexterm zone="pango-font-description-set-absolute-size" role="1.8"><primary sortas="pango_font_description_set_absolute_size">pango_font_description_set_absolute_size</primary></indexterm><programlisting><link linkend="void">void</link>                pango_font_description_set_absolute_size
888                                                         (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
889                                                          <link linkend="double">double</link> size);</programlisting>
890 <para>
891 Sets the size field of a font description, in device units. This is mutually
892 exclusive with <link linkend="pango-font-description-set-size"><function>pango_font_description_set_size()</function></link> which sets the font size
893 in points.</para>
894 <para>
895 </para><variablelist role="params">
896 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
897 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
898 </simpara></listitem></varlistentry>
899 <varlistentry><term><parameter>size</parameter>&#160;:</term>
900 <listitem><simpara> the new size, in Pango units. There are <link linkend="PANGO-SCALE--CAPS"><literal>PANGO_SCALE</literal></link> Pango units in one
901   device unit. For an output backend where a device unit is a pixel, a <parameter>size</parameter>
902   value of 10 * PANGO_SCALE gives a 10 pixel font.
903 </simpara></listitem></varlistentry>
904 </variablelist><para role="since">Since 1.8</para></refsect2>
905 <refsect2 id="pango-font-description-get-size-is-absolute" role="function" condition="since:1.8">
906 <title>pango_font_description_get_size_is_absolute ()</title>
907 <indexterm zone="pango-font-description-get-size-is-absolute" role="1.8"><primary sortas="pango_font_description_get_size_is_absolute">pango_font_description_get_size_is_absolute</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            pango_font_description_get_size_is_absolute
908                                                         (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);</programlisting>
909 <para>
910 Determines whether the size of the font is in points (not absolute) or device units (absolute).
911 See <link linkend="pango-font-description-set-size"><function>pango_font_description_set_size()</function></link> and <link linkend="pango-font-description-set-absolute-size"><function>pango_font_description_set_absolute_size()</function></link>.</para>
912 <para>
913 </para><variablelist role="params">
914 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
915 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
916 </simpara></listitem></varlistentry>
917 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> whether the size for the font description is in
918   points or device units.  Use <link linkend="pango-font-description-get-set-fields"><function>pango_font_description_get_set_fields()</function></link> to
919   find out if the size field of the font description was explicitly set or not.
920
921 </simpara></listitem></varlistentry>
922 </variablelist><para role="since">Since 1.8</para></refsect2>
923 <refsect2 id="pango-font-description-set-gravity" role="function" condition="since:1.16">
924 <title>pango_font_description_set_gravity ()</title>
925 <indexterm zone="pango-font-description-set-gravity" role="1.16"><primary sortas="pango_font_description_set_gravity">pango_font_description_set_gravity</primary></indexterm><programlisting><link linkend="void">void</link>                pango_font_description_set_gravity  (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
926                                                          <link linkend="PangoGravity">PangoGravity</link> gravity);</programlisting>
927 <para>
928 Sets the gravity field of a font description. The gravity field
929 specifies how the glyphs should be rotated.  If <parameter>gravity</parameter> is
930 <link linkend="PANGO-GRAVITY-AUTO--CAPS"><literal>PANGO_GRAVITY_AUTO</literal></link>, this actually unsets the gravity mask on
931 the font description.
932 </para>
933 <para>
934 This function is seldom useful to the user.  Gravity should normally
935 be set on a <link linkend="PangoContext"><type>PangoContext</type></link>.</para>
936 <para>
937 </para><variablelist role="params">
938 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
939 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
940 </simpara></listitem></varlistentry>
941 <varlistentry><term><parameter>gravity</parameter>&#160;:</term>
942 <listitem><simpara> the gravity for the font description.
943 </simpara></listitem></varlistentry>
944 </variablelist><para role="since">Since 1.16</para></refsect2>
945 <refsect2 id="pango-font-description-get-gravity" role="function" condition="since:1.16">
946 <title>pango_font_description_get_gravity ()</title>
947 <indexterm zone="pango-font-description-get-gravity" role="1.16"><primary sortas="pango_font_description_get_gravity">pango_font_description_get_gravity</primary></indexterm><programlisting><link linkend="PangoGravity">PangoGravity</link>        pango_font_description_get_gravity  (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);</programlisting>
948 <para>
949 Gets the gravity field of a font description. See
950 <link linkend="pango-font-description-set-gravity"><function>pango_font_description_set_gravity()</function></link>.</para>
951 <para>
952 </para><variablelist role="params">
953 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
954 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
955 </simpara></listitem></varlistentry>
956 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the gravity field for the font description. Use
957   <link linkend="pango-font-description-get-set-fields"><function>pango_font_description_get_set_fields()</function></link> to find out if
958   the field was explicitly set or not.
959
960 </simpara></listitem></varlistentry>
961 </variablelist><para role="since">Since 1.16</para></refsect2>
962 <refsect2 id="pango-font-description-get-set-fields" role="function">
963 <title>pango_font_description_get_set_fields ()</title>
964 <indexterm zone="pango-font-description-get-set-fields"><primary sortas="pango_font_description_get_set_fields">pango_font_description_get_set_fields</primary></indexterm><programlisting><link linkend="PangoFontMask">PangoFontMask</link>       pango_font_description_get_set_fields
965                                                         (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);</programlisting>
966 <para>
967 Determines which fields in a font description have been set.</para>
968 <para>
969 </para><variablelist role="params">
970 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
971 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
972 </simpara></listitem></varlistentry>
973 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a bitmask with bits set corresponding to the
974   fields in <parameter>desc</parameter> that have been set.
975 </simpara></listitem></varlistentry>
976 </variablelist></refsect2>
977 <refsect2 id="pango-font-description-unset-fields" role="function">
978 <title>pango_font_description_unset_fields ()</title>
979 <indexterm zone="pango-font-description-unset-fields"><primary sortas="pango_font_description_unset_fields">pango_font_description_unset_fields</primary></indexterm><programlisting><link linkend="void">void</link>                pango_font_description_unset_fields (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
980                                                          <link linkend="PangoFontMask">PangoFontMask</link> to_unset);</programlisting>
981 <para>
982 Unsets some of the fields in a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>.  The unset
983 fields will get back to their default values.</para>
984 <para>
985 </para><variablelist role="params">
986 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
987 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
988 </simpara></listitem></varlistentry>
989 <varlistentry><term><parameter>to_unset</parameter>&#160;:</term>
990 <listitem><simpara> bitmask of fields in the <parameter>desc</parameter> to unset.
991 </simpara></listitem></varlistentry>
992 </variablelist></refsect2>
993 <refsect2 id="pango-font-description-merge" role="function">
994 <title>pango_font_description_merge ()</title>
995 <indexterm zone="pango-font-description-merge"><primary sortas="pango_font_description_merge">pango_font_description_merge</primary></indexterm><programlisting><link linkend="void">void</link>                pango_font_description_merge        (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
996                                                          const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc_to_merge,
997                                                          <link linkend="gboolean">gboolean</link> replace_existing);</programlisting>
998 <para>
999 Merges the fields that are set in <parameter>desc_to_merge</parameter> into the fields in
1000 <parameter>desc</parameter>.  If <parameter>replace_existing</parameter> is <link linkend="FALSE--CAPS"><literal>FALSE</literal></link>, only fields in <parameter>desc</parameter> that
1001 are not already set are affected. If <link linkend="TRUE--CAPS"><literal>TRUE</literal></link>, then fields that are
1002 already set will be replaced as well.
1003 </para>
1004 <para>
1005 If <parameter>desc_to_merge</parameter> is <link linkend="NULL--CAPS"><literal>NULL</literal></link>, this function performs nothing.</para>
1006 <para>
1007 </para><variablelist role="params">
1008 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
1009 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
1010 </simpara></listitem></varlistentry>
1011 <varlistentry><term><parameter>desc_to_merge</parameter>&#160;:</term>
1012 <listitem><simpara> the <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link> to merge from, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
1013 </simpara></listitem></varlistentry>
1014 <varlistentry><term><parameter>replace_existing</parameter>&#160;:</term>
1015 <listitem><simpara> if <link linkend="TRUE--CAPS"><literal>TRUE</literal></link>, replace fields in <parameter>desc</parameter> with the
1016   corresponding values from <parameter>desc_to_merge</parameter>, even if they
1017   are already exist.
1018 </simpara></listitem></varlistentry>
1019 </variablelist></refsect2>
1020 <refsect2 id="pango-font-description-merge-static" role="function">
1021 <title>pango_font_description_merge_static ()</title>
1022 <indexterm zone="pango-font-description-merge-static"><primary sortas="pango_font_description_merge_static">pango_font_description_merge_static</primary></indexterm><programlisting><link linkend="void">void</link>                pango_font_description_merge_static (<link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
1023                                                          const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc_to_merge,
1024                                                          <link linkend="gboolean">gboolean</link> replace_existing);</programlisting>
1025 <para>
1026 Like <link linkend="pango-font-description-merge"><function>pango_font_description_merge()</function></link>, but only a shallow copy is made
1027 of the family name and other allocated fields. <parameter>desc</parameter> can only be
1028 used until <parameter>desc_to_merge</parameter> is modified or freed. This is meant
1029 to be used when the merged font description is only needed temporarily.</para>
1030 <para>
1031 </para><variablelist role="params">
1032 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
1033 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
1034 </simpara></listitem></varlistentry>
1035 <varlistentry><term><parameter>desc_to_merge</parameter>&#160;:</term>
1036 <listitem><simpara> the <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link> to merge from
1037 </simpara></listitem></varlistentry>
1038 <varlistentry><term><parameter>replace_existing</parameter>&#160;:</term>
1039 <listitem><simpara> if <link linkend="TRUE--CAPS"><literal>TRUE</literal></link>, replace fields in <parameter>desc</parameter> with the
1040   corresponding values from <parameter>desc_to_merge</parameter>, even if they
1041   are already exist.
1042 </simpara></listitem></varlistentry>
1043 </variablelist></refsect2>
1044 <refsect2 id="pango-font-description-better-match" role="function">
1045 <title>pango_font_description_better_match ()</title>
1046 <indexterm zone="pango-font-description-better-match"><primary sortas="pango_font_description_better_match">pango_font_description_better_match</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            pango_font_description_better_match (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
1047                                                          const <link linkend="PangoFontDescription">PangoFontDescription</link> *old_match,
1048                                                          const <link linkend="PangoFontDescription">PangoFontDescription</link> *new_match);</programlisting>
1049 <para>
1050 Determines if the style attributes of <parameter>new_match</parameter> are a closer match
1051 for <parameter>desc</parameter> than those of <parameter>old_match</parameter> are, or if <parameter>old_match</parameter> is <link linkend="NULL--CAPS"><literal>NULL</literal></link>,
1052 determines if <parameter>new_match</parameter> is a match at all.
1053 Approximate matching is done for
1054 weight and style; other style attributes must match exactly.
1055 Style attributes are all attributes other than family and size-related
1056 attributes.  Approximate matching for style considers PANGO_STYLE_OBLIQUE
1057 and PANGO_STYLE_ITALIC as matches, but not as good a match as when the
1058 styles are equal.
1059 </para>
1060 <para>
1061 Note that <parameter>old_match</parameter> must match <parameter>desc</parameter>.</para>
1062 <para>
1063 </para><variablelist role="params">
1064 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
1065 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
1066 </simpara></listitem></varlistentry>
1067 <varlistentry><term><parameter>old_match</parameter>&#160;:</term>
1068 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
1069 </simpara></listitem></varlistentry>
1070 <varlistentry><term><parameter>new_match</parameter>&#160;:</term>
1071 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
1072 </simpara></listitem></varlistentry>
1073 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if <parameter>new_match</parameter> is a better match
1074 </simpara></listitem></varlistentry>
1075 </variablelist></refsect2>
1076 <refsect2 id="pango-font-description-from-string" role="function">
1077 <title>pango_font_description_from_string ()</title>
1078 <indexterm zone="pango-font-description-from-string"><primary sortas="pango_font_description_from_string">pango_font_description_from_string</primary></indexterm><programlisting><link linkend="PangoFontDescription">PangoFontDescription</link> * pango_font_description_from_string
1079                                                         (const <link linkend="char">char</link> *str);</programlisting>
1080 <para>
1081 Creates a new font description from a string representation in the
1082 form "[FAMILY-LIST] [STYLE-OPTIONS] [SIZE]", where FAMILY-LIST is a
1083 comma separated list of families optionally terminated by a comma,
1084 STYLE_OPTIONS is a whitespace separated list of words where each WORD
1085 describes one of style, variant, weight, stretch, or gravity, and SIZE
1086 is a decimal number (size in points) or optionally followed by the
1087 unit modifier "px" for absolute size. Any one of the options may
1088 be absent.  If FAMILY-LIST is absent, then the family_name field of
1089 the resulting font description will be initialized to <link linkend="NULL--CAPS"><literal>NULL</literal></link>.  If
1090 STYLE-OPTIONS is missing, then all style options will be set to the
1091 default values. If SIZE is missing, the size in the resulting font
1092 description will be set to 0.</para>
1093 <para>
1094 </para><variablelist role="params">
1095 <varlistentry><term><parameter>str</parameter>&#160;:</term>
1096 <listitem><simpara> string representation of a font description.
1097 </simpara></listitem></varlistentry>
1098 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a new <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>.
1099 </simpara></listitem></varlistentry>
1100 </variablelist></refsect2>
1101 <refsect2 id="pango-font-description-to-string" role="function">
1102 <title>pango_font_description_to_string ()</title>
1103 <indexterm zone="pango-font-description-to-string"><primary sortas="pango_font_description_to_string">pango_font_description_to_string</primary></indexterm><programlisting><link linkend="char">char</link> *              pango_font_description_to_string    (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);</programlisting>
1104 <para>
1105 Creates a string representation of a font description. See
1106 <link linkend="pango-font-description-from-string"><function>pango_font_description_from_string()</function></link> for a description of the
1107 format of the string representation. The family list in the
1108 string description will only have a terminating comma if the
1109 last word of the list is a valid style option.</para>
1110 <para>
1111 </para><variablelist role="params">
1112 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
1113 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
1114 </simpara></listitem></varlistentry>
1115 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a new string that must be freed with <link linkend="g-free"><function>g_free()</function></link>.
1116 </simpara></listitem></varlistentry>
1117 </variablelist></refsect2>
1118 <refsect2 id="pango-font-description-to-filename" role="function">
1119 <title>pango_font_description_to_filename ()</title>
1120 <indexterm zone="pango-font-description-to-filename"><primary sortas="pango_font_description_to_filename">pango_font_description_to_filename</primary></indexterm><programlisting><link linkend="char">char</link> *              pango_font_description_to_filename  (const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);</programlisting>
1121 <para>
1122 Creates a filename representation of a font description. The
1123 filename is identical to the result from calling
1124 <link linkend="pango-font-description-to-string"><function>pango_font_description_to_string()</function></link>, but with underscores instead of
1125 characters that are untypical in filenames, and in lower case only.</para>
1126 <para>
1127 </para><variablelist role="params">
1128 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
1129 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
1130 </simpara></listitem></varlistentry>
1131 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a new string that must be freed with <link linkend="g-free"><function>g_free()</function></link>.
1132 </simpara></listitem></varlistentry>
1133 </variablelist></refsect2>
1134 <refsect2 id="PangoFontMetrics" role="struct">
1135 <title>PangoFontMetrics</title>
1136 <indexterm zone="PangoFontMetrics"><primary sortas="PangoFontMetrics">PangoFontMetrics</primary></indexterm><programlisting>typedef struct {
1137   guint ref_count;
1138
1139   int ascent;
1140   int descent;
1141   int approximate_char_width;
1142   int approximate_digit_width;
1143   int underline_position;
1144   int underline_thickness;
1145   int strikethrough_position;
1146   int strikethrough_thickness;
1147 } PangoFontMetrics;
1148 </programlisting>
1149 <para>
1150 A <link linkend="PangoFontMetrics"><type>PangoFontMetrics</type></link> structure holds the overall metric information
1151 for a font (possibly restricted to a script). The fields of this
1152 structure are private to implementations of a font backend. See
1153 the documentation of the corresponding getters for documentation
1154 of their meaning.
1155 </para><variablelist role="struct">
1156 <varlistentry>
1157 <term><link linkend="guint">guint</link>&#160;<structfield>ref_count</structfield>;</term>
1158 <listitem><simpara>reference count.  Used internally.  See <link linkend="pango-font-metrics-ref"><function>pango_font_metrics_ref()</function></link>
1159             and <link linkend="pango-font-metrics-unref"><function>pango_font_metrics_unref()</function></link>.
1160 </simpara></listitem>
1161 </varlistentry>
1162 <varlistentry>
1163 <term><link linkend="int">int</link>&#160;<structfield>ascent</structfield>;</term>
1164 <listitem><simpara>the distance from the baseline to the highest point of the glyphs of
1165          the font. This is positive in practically all fonts.
1166 </simpara></listitem>
1167 </varlistentry>
1168 <varlistentry>
1169 <term><link linkend="int">int</link>&#160;<structfield>descent</structfield>;</term>
1170 <listitem><simpara>the distance from the baseline to the lowest point of the glyphs of
1171          the font. This is positive in practically all fonts.
1172 </simpara></listitem>
1173 </varlistentry>
1174 <varlistentry>
1175 <term><link linkend="int">int</link>&#160;<structfield>approximate_char_width</structfield>;</term>
1176 <listitem><simpara>approximate average width of the regular glyphs of
1177          the font.  Note that for this calculation, East Asian characters
1178          (those passing <link linkend="g-unichar-iswide"><function>g_unichar_iswide()</function></link>) are counted as double-width.
1179          This produces a more uniform value for this measure across languages
1180          and results in more uniform and more expected UI sizes.
1181 </simpara></listitem>
1182 </varlistentry>
1183 <varlistentry>
1184 <term><link linkend="int">int</link>&#160;<structfield>approximate_digit_width</structfield>;</term>
1185 <listitem><simpara>approximate average width of the glyphs for digits
1186          of the font.
1187 </simpara></listitem>
1188 </varlistentry>
1189 <varlistentry>
1190 <term><link linkend="int">int</link>&#160;<structfield>underline_position</structfield>;</term>
1191 <listitem><simpara>position of the underline. This is normally negative.
1192 </simpara></listitem>
1193 </varlistentry>
1194 <varlistentry>
1195 <term><link linkend="int">int</link>&#160;<structfield>underline_thickness</structfield>;</term>
1196 <listitem><simpara>thickness of the underline.
1197 </simpara></listitem>
1198 </varlistentry>
1199 <varlistentry>
1200 <term><link linkend="int">int</link>&#160;<structfield>strikethrough_position</structfield>;</term>
1201 <listitem><simpara>position of the strikethrough line. This is
1202          normally positive.
1203 </simpara></listitem>
1204 </varlistentry>
1205 <varlistentry>
1206 <term><link linkend="int">int</link>&#160;<structfield>strikethrough_thickness</structfield>;</term>
1207 <listitem><simpara>thickness of the strikethrough line.
1208 </simpara></listitem>
1209 </varlistentry>
1210 </variablelist></refsect2>
1211 <refsect2 id="PANGO-TYPE-FONT-METRICS--CAPS" role="macro">
1212 <title>PANGO_TYPE_FONT_METRICS</title>
1213 <indexterm zone="PANGO-TYPE-FONT-METRICS--CAPS"><primary sortas="PANGO_TYPE_FONT_METRICS">PANGO_TYPE_FONT_METRICS</primary></indexterm><programlisting>#define PANGO_TYPE_FONT_METRICS  (pango_font_metrics_get_type ())
1214 </programlisting>
1215 <para>
1216 The <link linkend="GObject"><type>GObject</type></link> type for <link linkend="PangoFontMetrics"><type>PangoFontMetrics</type></link>.
1217 </para></refsect2>
1218 <refsect2 id="pango-font-metrics-ref" role="function">
1219 <title>pango_font_metrics_ref ()</title>
1220 <indexterm zone="pango-font-metrics-ref"><primary sortas="pango_font_metrics_ref">pango_font_metrics_ref</primary></indexterm><programlisting><link linkend="PangoFontMetrics">PangoFontMetrics</link> *  pango_font_metrics_ref              (<link linkend="PangoFontMetrics">PangoFontMetrics</link> *metrics);</programlisting>
1221 <para>
1222 Increase the reference count of a font metrics structure by one.</para>
1223 <para>
1224 </para><variablelist role="params">
1225 <varlistentry><term><parameter>metrics</parameter>&#160;:</term>
1226 <listitem><simpara> a <link linkend="PangoFontMetrics"><type>PangoFontMetrics</type></link> structure, may be <link linkend="NULL--CAPS"><literal>NULL</literal></link>
1227 </simpara></listitem></varlistentry>
1228 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <parameter>metrics</parameter>
1229 </simpara></listitem></varlistentry>
1230 </variablelist></refsect2>
1231 <refsect2 id="pango-font-metrics-unref" role="function">
1232 <title>pango_font_metrics_unref ()</title>
1233 <indexterm zone="pango-font-metrics-unref"><primary sortas="pango_font_metrics_unref">pango_font_metrics_unref</primary></indexterm><programlisting><link linkend="void">void</link>                pango_font_metrics_unref            (<link linkend="PangoFontMetrics">PangoFontMetrics</link> *metrics);</programlisting>
1234 <para>
1235 Decrease the reference count of a font metrics structure by one. If
1236 the result is zero, frees the structure and any associated
1237 memory.</para>
1238 <para>
1239 </para><variablelist role="params">
1240 <varlistentry><term><parameter>metrics</parameter>&#160;:</term>
1241 <listitem><simpara> a <link linkend="PangoFontMetrics"><type>PangoFontMetrics</type></link> structure, may be <link linkend="NULL--CAPS"><literal>NULL</literal></link>
1242 </simpara></listitem></varlistentry>
1243 </variablelist></refsect2>
1244 <refsect2 id="pango-font-metrics-get-ascent" role="function">
1245 <title>pango_font_metrics_get_ascent ()</title>
1246 <indexterm zone="pango-font-metrics-get-ascent"><primary sortas="pango_font_metrics_get_ascent">pango_font_metrics_get_ascent</primary></indexterm><programlisting><link linkend="int">int</link>                 pango_font_metrics_get_ascent       (<link linkend="PangoFontMetrics">PangoFontMetrics</link> *metrics);</programlisting>
1247 <para>
1248 Gets the ascent from a font metrics structure. The ascent is
1249 the distance from the baseline to the logical top of a line
1250 of text. (The logical top may be above or below the top of the
1251 actual drawn ink. It is necessary to lay out the text to figure
1252 where the ink will be.)</para>
1253 <para>
1254 </para><variablelist role="params">
1255 <varlistentry><term><parameter>metrics</parameter>&#160;:</term>
1256 <listitem><simpara> a <link linkend="PangoFontMetrics"><type>PangoFontMetrics</type></link> structure
1257 </simpara></listitem></varlistentry>
1258 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the ascent, in Pango units.
1259 </simpara></listitem></varlistentry>
1260 </variablelist></refsect2>
1261 <refsect2 id="pango-font-metrics-get-descent" role="function">
1262 <title>pango_font_metrics_get_descent ()</title>
1263 <indexterm zone="pango-font-metrics-get-descent"><primary sortas="pango_font_metrics_get_descent">pango_font_metrics_get_descent</primary></indexterm><programlisting><link linkend="int">int</link>                 pango_font_metrics_get_descent      (<link linkend="PangoFontMetrics">PangoFontMetrics</link> *metrics);</programlisting>
1264 <para>
1265 Gets the descent from a font metrics structure. The descent is
1266 the distance from the baseline to the logical bottom of a line
1267 of text. (The logical bottom may be above or below the bottom of the
1268 actual drawn ink. It is necessary to lay out the text to figure
1269 where the ink will be.)</para>
1270 <para>
1271 </para><variablelist role="params">
1272 <varlistentry><term><parameter>metrics</parameter>&#160;:</term>
1273 <listitem><simpara> a <link linkend="PangoFontMetrics"><type>PangoFontMetrics</type></link> structure
1274 </simpara></listitem></varlistentry>
1275 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the descent, in Pango units.
1276 </simpara></listitem></varlistentry>
1277 </variablelist></refsect2>
1278 <refsect2 id="pango-font-metrics-get-approximate-char-width" role="function">
1279 <title>pango_font_metrics_get_approximate_char_width ()</title>
1280 <indexterm zone="pango-font-metrics-get-approximate-char-width"><primary sortas="pango_font_metrics_get_approximate_char_width">pango_font_metrics_get_approximate_char_width</primary></indexterm><programlisting><link linkend="int">int</link>                 pango_font_metrics_get_approximate_char_width
1281                                                         (<link linkend="PangoFontMetrics">PangoFontMetrics</link> *metrics);</programlisting>
1282 <para>
1283 Gets the approximate character width for a font metrics structure.
1284 This is merely a representative value useful, for example, for
1285 determining the initial size for a window. Actual characters in
1286 text will be wider and narrower than this.</para>
1287 <para>
1288 </para><variablelist role="params">
1289 <varlistentry><term><parameter>metrics</parameter>&#160;:</term>
1290 <listitem><simpara> a <link linkend="PangoFontMetrics"><type>PangoFontMetrics</type></link> structure
1291 </simpara></listitem></varlistentry>
1292 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the character width, in Pango units.
1293 </simpara></listitem></varlistentry>
1294 </variablelist></refsect2>
1295 <refsect2 id="pango-font-metrics-get-approximate-digit-width" role="function">
1296 <title>pango_font_metrics_get_approximate_digit_width ()</title>
1297 <indexterm zone="pango-font-metrics-get-approximate-digit-width"><primary sortas="pango_font_metrics_get_approximate_digit_width">pango_font_metrics_get_approximate_digit_width</primary></indexterm><programlisting><link linkend="int">int</link>                 pango_font_metrics_get_approximate_digit_width
1298                                                         (<link linkend="PangoFontMetrics">PangoFontMetrics</link> *metrics);</programlisting>
1299 <para>
1300 Gets the approximate digit width for a font metrics structure.
1301 This is merely a representative value useful, for example, for
1302 determining the initial size for a window. Actual digits in
1303 text can be wider or narrower than this, though this value
1304 is generally somewhat more accurate than the result of
1305 <link linkend="pango-font-metrics-get-approximate-char-width"><function>pango_font_metrics_get_approximate_char_width()</function></link> for digits.</para>
1306 <para>
1307 </para><variablelist role="params">
1308 <varlistentry><term><parameter>metrics</parameter>&#160;:</term>
1309 <listitem><simpara> a <link linkend="PangoFontMetrics"><type>PangoFontMetrics</type></link> structure
1310 </simpara></listitem></varlistentry>
1311 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the digit width, in Pango units.
1312 </simpara></listitem></varlistentry>
1313 </variablelist></refsect2>
1314 <refsect2 id="pango-font-metrics-get-underline-thickness" role="function" condition="since:1.6">
1315 <title>pango_font_metrics_get_underline_thickness ()</title>
1316 <indexterm zone="pango-font-metrics-get-underline-thickness" role="1.6"><primary sortas="pango_font_metrics_get_underline_thickness">pango_font_metrics_get_underline_thickness</primary></indexterm><programlisting><link linkend="int">int</link>                 pango_font_metrics_get_underline_thickness
1317                                                         (<link linkend="PangoFontMetrics">PangoFontMetrics</link> *metrics);</programlisting>
1318 <para>
1319 Gets the suggested thickness to draw for the underline.</para>
1320 <para>
1321 </para><variablelist role="params">
1322 <varlistentry><term><parameter>metrics</parameter>&#160;:</term>
1323 <listitem><simpara> a <link linkend="PangoFontMetrics"><type>PangoFontMetrics</type></link> structure
1324 </simpara></listitem></varlistentry>
1325 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the suggested underline thickness, in Pango units.
1326
1327 </simpara></listitem></varlistentry>
1328 </variablelist><para role="since">Since 1.6</para></refsect2>
1329 <refsect2 id="pango-font-metrics-get-underline-position" role="function" condition="since:1.6">
1330 <title>pango_font_metrics_get_underline_position ()</title>
1331 <indexterm zone="pango-font-metrics-get-underline-position" role="1.6"><primary sortas="pango_font_metrics_get_underline_position">pango_font_metrics_get_underline_position</primary></indexterm><programlisting><link linkend="int">int</link>                 pango_font_metrics_get_underline_position
1332                                                         (<link linkend="PangoFontMetrics">PangoFontMetrics</link> *metrics);</programlisting>
1333 <para>
1334 Gets the suggested position to draw the underline.
1335 The value returned is the distance <emphasis>above</emphasis> the
1336 baseline of the top of the underline. Since most fonts have
1337 underline positions beneath the baseline, this value is typically
1338 negative.</para>
1339 <para>
1340 </para><variablelist role="params">
1341 <varlistentry><term><parameter>metrics</parameter>&#160;:</term>
1342 <listitem><simpara> a <link linkend="PangoFontMetrics"><type>PangoFontMetrics</type></link> structure
1343 </simpara></listitem></varlistentry>
1344 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the suggested underline position, in Pango units.
1345
1346 </simpara></listitem></varlistentry>
1347 </variablelist><para role="since">Since 1.6</para></refsect2>
1348 <refsect2 id="pango-font-metrics-get-strikethrough-thickness" role="function" condition="since:1.6">
1349 <title>pango_font_metrics_get_strikethrough_thickness ()</title>
1350 <indexterm zone="pango-font-metrics-get-strikethrough-thickness" role="1.6"><primary sortas="pango_font_metrics_get_strikethrough_thickness">pango_font_metrics_get_strikethrough_thickness</primary></indexterm><programlisting><link linkend="int">int</link>                 pango_font_metrics_get_strikethrough_thickness
1351                                                         (<link linkend="PangoFontMetrics">PangoFontMetrics</link> *metrics);</programlisting>
1352 <para>
1353 Gets the suggested thickness to draw for the strikethrough.</para>
1354 <para>
1355 </para><variablelist role="params">
1356 <varlistentry><term><parameter>metrics</parameter>&#160;:</term>
1357 <listitem><simpara> a <link linkend="PangoFontMetrics"><type>PangoFontMetrics</type></link> structure
1358 </simpara></listitem></varlistentry>
1359 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the suggested strikethrough thickness, in Pango units.
1360
1361 </simpara></listitem></varlistentry>
1362 </variablelist><para role="since">Since 1.6</para></refsect2>
1363 <refsect2 id="pango-font-metrics-get-strikethrough-position" role="function" condition="since:1.6">
1364 <title>pango_font_metrics_get_strikethrough_position ()</title>
1365 <indexterm zone="pango-font-metrics-get-strikethrough-position" role="1.6"><primary sortas="pango_font_metrics_get_strikethrough_position">pango_font_metrics_get_strikethrough_position</primary></indexterm><programlisting><link linkend="int">int</link>                 pango_font_metrics_get_strikethrough_position
1366                                                         (<link linkend="PangoFontMetrics">PangoFontMetrics</link> *metrics);</programlisting>
1367 <para>
1368 Gets the suggested position to draw the strikethrough.
1369 The value returned is the distance <emphasis>above</emphasis> the
1370 baseline of the top of the strikethrough.</para>
1371 <para>
1372 </para><variablelist role="params">
1373 <varlistentry><term><parameter>metrics</parameter>&#160;:</term>
1374 <listitem><simpara> a <link linkend="PangoFontMetrics"><type>PangoFontMetrics</type></link> structure
1375 </simpara></listitem></varlistentry>
1376 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the suggested strikethrough position, in Pango units.
1377
1378 </simpara></listitem></varlistentry>
1379 </variablelist><para role="since">Since 1.6</para></refsect2>
1380 <refsect2 id="PangoFont-struct" role="struct">
1381 <title>PangoFont</title>
1382 <indexterm zone="PangoFont-struct"><primary sortas="PangoFont">PangoFont</primary></indexterm><programlisting>typedef struct _PangoFont PangoFont;</programlisting>
1383 <para>
1384 The <link linkend="PangoFont"><type>PangoFont</type></link> structure is used to represent
1385 a font in a rendering-system-independent matter.
1386 To create an implementation of a <link linkend="PangoFont"><type>PangoFont</type></link>,
1387 the rendering-system specific code should allocate
1388 a larger structure that contains a nested
1389 <link linkend="PangoFont"><type>PangoFont</type></link>, fill in the <structfield>klass</structfield> member of
1390 the nested <link linkend="PangoFont"><type>PangoFont</type></link> with a pointer to
1391 a appropriate <link linkend="PangoFontClass"><type>PangoFontClass</type></link>, then call
1392 <link linkend="pango-font-init"><function>pango_font_init()</function></link> on the structure.
1393 </para>
1394 <para>
1395 The <link linkend="PangoFont"><type>PangoFont</type></link> structure contains one member
1396 which the implementation fills in.
1397 </para></refsect2>
1398 <refsect2 id="PANGO-TYPE-FONT--CAPS" role="macro">
1399 <title>PANGO_TYPE_FONT</title>
1400 <indexterm zone="PANGO-TYPE-FONT--CAPS"><primary sortas="PANGO_TYPE_FONT">PANGO_TYPE_FONT</primary></indexterm><programlisting>#define PANGO_TYPE_FONT              (pango_font_get_type ())
1401 </programlisting>
1402 <para>
1403 The <link linkend="GObject"><type>GObject</type></link> type for <link linkend="PangoFont"><type>PangoFont</type></link>.
1404 </para></refsect2>
1405 <refsect2 id="PANGO-FONT--CAPS" role="macro">
1406 <title>PANGO_FONT()</title>
1407 <indexterm zone="PANGO-FONT--CAPS"><primary sortas="PANGO_FONT">PANGO_FONT</primary></indexterm><programlisting>#define PANGO_FONT(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONT, PangoFont))
1408 </programlisting>
1409 <para>
1410 Casts a <link linkend="GObject"><type>GObject</type></link> to a <link linkend="PangoFont"><type>PangoFont</type></link>.
1411 </para><variablelist role="params">
1412 <varlistentry><term><parameter>object</parameter>&#160;:</term>
1413 <listitem><simpara>a <link linkend="GObject"><type>GObject</type></link>.
1414 </simpara></listitem></varlistentry>
1415 </variablelist></refsect2>
1416 <refsect2 id="PANGO-IS-FONT--CAPS" role="macro">
1417 <title>PANGO_IS_FONT()</title>
1418 <indexterm zone="PANGO-IS-FONT--CAPS"><primary sortas="PANGO_IS_FONT">PANGO_IS_FONT</primary></indexterm><programlisting>#define PANGO_IS_FONT(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONT))
1419 </programlisting>
1420 <para>
1421 Returns <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if <parameter>object</parameter> is a <link linkend="PangoFont"><type>PangoFont</type></link>.
1422 </para><variablelist role="params">
1423 <varlistentry><term><parameter>object</parameter>&#160;:</term>
1424 <listitem><simpara>a <link linkend="GObject"><type>GObject</type></link>.
1425 </simpara></listitem></varlistentry>
1426 </variablelist></refsect2>
1427 <refsect2 id="pango-font-find-shaper" role="function">
1428 <title>pango_font_find_shaper ()</title>
1429 <indexterm zone="pango-font-find-shaper"><primary sortas="pango_font_find_shaper">pango_font_find_shaper</primary></indexterm><programlisting><link linkend="PangoEngineShape">PangoEngineShape</link> *  pango_font_find_shaper              (<link linkend="PangoFont">PangoFont</link> *font,
1430                                                          <link linkend="PangoLanguage">PangoLanguage</link> *language,
1431                                                          <link linkend="guint32">guint32</link> ch);</programlisting>
1432 <para>
1433 Finds the best matching shaper for a font for a particular
1434 language tag and character point.</para>
1435 <para>
1436 </para><variablelist role="params">
1437 <varlistentry><term><parameter>font</parameter>&#160;:</term>
1438 <listitem><simpara> a <link linkend="PangoFont"><type>PangoFont</type></link>
1439 </simpara></listitem></varlistentry>
1440 <varlistentry><term><parameter>language</parameter>&#160;:</term>
1441 <listitem><simpara> the language tag
1442 </simpara></listitem></varlistentry>
1443 <varlistentry><term><parameter>ch</parameter>&#160;:</term>
1444 <listitem><simpara> a Unicode character.
1445 </simpara></listitem></varlistentry>
1446 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the best matching shaper.
1447 </simpara></listitem></varlistentry>
1448 </variablelist></refsect2>
1449 <refsect2 id="pango-font-describe" role="function">
1450 <title>pango_font_describe ()</title>
1451 <indexterm zone="pango-font-describe"><primary sortas="pango_font_describe">pango_font_describe</primary></indexterm><programlisting><link linkend="PangoFontDescription">PangoFontDescription</link> * pango_font_describe              (<link linkend="PangoFont">PangoFont</link> *font);</programlisting>
1452 <para>
1453 Returns a description of the font, with font size set in points.
1454 Use <link linkend="pango-font-describe-with-absolute-size"><function>pango_font_describe_with_absolute_size()</function></link> if you want the font
1455 size in device units.</para>
1456 <para>
1457 </para><variablelist role="params">
1458 <varlistentry><term><parameter>font</parameter>&#160;:</term>
1459 <listitem><simpara> a <link linkend="PangoFont"><type>PangoFont</type></link>
1460 </simpara></listitem></varlistentry>
1461 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly-allocated <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link> object.
1462 </simpara></listitem></varlistentry>
1463 </variablelist></refsect2>
1464 <refsect2 id="pango-font-describe-with-absolute-size" role="function" condition="since:1.14">
1465 <title>pango_font_describe_with_absolute_size ()</title>
1466 <indexterm zone="pango-font-describe-with-absolute-size" role="1.14"><primary sortas="pango_font_describe_with_absolute_size">pango_font_describe_with_absolute_size</primary></indexterm><programlisting><link linkend="PangoFontDescription">PangoFontDescription</link> * pango_font_describe_with_absolute_size
1467                                                         (<link linkend="PangoFont">PangoFont</link> *font);</programlisting>
1468 <para>
1469 Returns a description of the font, with absolute font size set
1470 (in device units). Use <link linkend="pango-font-describe"><function>pango_font_describe()</function></link> if you want the font
1471 size in points.</para>
1472 <para>
1473 </para><variablelist role="params">
1474 <varlistentry><term><parameter>font</parameter>&#160;:</term>
1475 <listitem><simpara> a <link linkend="PangoFont"><type>PangoFont</type></link>
1476 </simpara></listitem></varlistentry>
1477 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly-allocated <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link> object.
1478
1479 </simpara></listitem></varlistentry>
1480 </variablelist><para role="since">Since 1.14</para></refsect2>
1481 <refsect2 id="pango-font-get-coverage" role="function">
1482 <title>pango_font_get_coverage ()</title>
1483 <indexterm zone="pango-font-get-coverage"><primary sortas="pango_font_get_coverage">pango_font_get_coverage</primary></indexterm><programlisting><link linkend="PangoCoverage">PangoCoverage</link> *     pango_font_get_coverage             (<link linkend="PangoFont">PangoFont</link> *font,
1484                                                          <link linkend="PangoLanguage">PangoLanguage</link> *language);</programlisting>
1485 <para>
1486 Computes the coverage map for a given font and language tag.</para>
1487 <para>
1488 </para><variablelist role="params">
1489 <varlistentry><term><parameter>font</parameter>&#160;:</term>
1490 <listitem><simpara> a <link linkend="PangoFont"><type>PangoFont</type></link>
1491 </simpara></listitem></varlistentry>
1492 <varlistentry><term><parameter>language</parameter>&#160;:</term>
1493 <listitem><simpara> the language tag
1494 </simpara></listitem></varlistentry>
1495 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly-allocated <link linkend="PangoCoverage"><type>PangoCoverage</type></link> object.
1496 </simpara></listitem></varlistentry>
1497 </variablelist></refsect2>
1498 <refsect2 id="pango-font-get-glyph-extents" role="function">
1499 <title>pango_font_get_glyph_extents ()</title>
1500 <indexterm zone="pango-font-get-glyph-extents"><primary sortas="pango_font_get_glyph_extents">pango_font_get_glyph_extents</primary></indexterm><programlisting><link linkend="void">void</link>                pango_font_get_glyph_extents        (<link linkend="PangoFont">PangoFont</link> *font,
1501                                                          <link linkend="PangoGlyph">PangoGlyph</link> glyph,
1502                                                          <link linkend="PangoRectangle">PangoRectangle</link> *ink_rect,
1503                                                          <link linkend="PangoRectangle">PangoRectangle</link> *logical_rect);</programlisting>
1504 <para>
1505 Gets the logical and ink extents of a glyph within a font. The
1506 coordinate system for each rectangle has its origin at the
1507 base line and horizontal origin of the character with increasing
1508 coordinates extending to the right and down. The macros <link linkend="PANGO-ASCENT--CAPS"><function>PANGO_ASCENT()</function></link>,
1509 <link linkend="PANGO-DESCENT--CAPS"><function>PANGO_DESCENT()</function></link>, <link linkend="PANGO-LBEARING--CAPS"><function>PANGO_LBEARING()</function></link>, and <link linkend="PANGO-RBEARING--CAPS"><function>PANGO_RBEARING()</function></link> can be used to convert
1510 from the extents rectangle to more traditional font metrics. The units
1511 of the rectangles are in 1/PANGO_SCALE of a device unit.
1512 </para>
1513 <para>
1514 If <parameter>font</parameter> is <link linkend="NULL--CAPS"><literal>NULL</literal></link>, this function gracefully sets some sane values in the
1515 output variables and returns.</para>
1516 <para>
1517 </para><variablelist role="params">
1518 <varlistentry><term><parameter>font</parameter>&#160;:</term>
1519 <listitem><simpara> a <link linkend="PangoFont"><type>PangoFont</type></link>
1520 </simpara></listitem></varlistentry>
1521 <varlistentry><term><parameter>glyph</parameter>&#160;:</term>
1522 <listitem><simpara> the glyph index
1523 </simpara></listitem></varlistentry>
1524 <varlistentry><term><parameter>ink_rect</parameter>&#160;:</term>
1525 <listitem><simpara> rectangle used to store the extents of the glyph as drawn
1526            or <link linkend="NULL--CAPS"><literal>NULL</literal></link> to indicate that the result is not needed.
1527 </simpara></listitem></varlistentry>
1528 <varlistentry><term><parameter>logical_rect</parameter>&#160;:</term>
1529 <listitem><simpara> rectangle used to store the logical extents of the glyph
1530            or <link linkend="NULL--CAPS"><literal>NULL</literal></link> to indicate that the result is not needed.
1531 </simpara></listitem></varlistentry>
1532 </variablelist></refsect2>
1533 <refsect2 id="pango-font-get-metrics" role="function">
1534 <title>pango_font_get_metrics ()</title>
1535 <indexterm zone="pango-font-get-metrics"><primary sortas="pango_font_get_metrics">pango_font_get_metrics</primary></indexterm><programlisting><link linkend="PangoFontMetrics">PangoFontMetrics</link> *  pango_font_get_metrics              (<link linkend="PangoFont">PangoFont</link> *font,
1536                                                          <link linkend="PangoLanguage">PangoLanguage</link> *language);</programlisting>
1537 <para>
1538 Gets overall metric information for a font. Since the metrics may be
1539 substantially different for different scripts, a language tag can
1540 be provided to indicate that the metrics should be retrieved that
1541 correspond to the script(s) used by that language.
1542 </para>
1543 <para>
1544 If <parameter>font</parameter> is <link linkend="NULL--CAPS"><literal>NULL</literal></link>, this function gracefully sets some sane values in the
1545 output variables and returns.</para>
1546 <para>
1547 </para><variablelist role="params">
1548 <varlistentry><term><parameter>font</parameter>&#160;:</term>
1549 <listitem><simpara> a <link linkend="PangoFont"><type>PangoFont</type></link>
1550 </simpara></listitem></varlistentry>
1551 <varlistentry><term><parameter>language</parameter>&#160;:</term>
1552 <listitem><simpara> language tag used to determine which script to get the metrics
1553            for, or <link linkend="NULL--CAPS"><literal>NULL</literal></link> to indicate to get the metrics for the entire
1554            font.
1555 </simpara></listitem></varlistentry>
1556 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a <link linkend="PangoFontMetrics"><type>PangoFontMetrics</type></link> object. The caller must call <link linkend="pango-font-metrics-unref"><function>pango_font_metrics_unref()</function></link>
1557   when finished using the object.
1558 </simpara></listitem></varlistentry>
1559 </variablelist></refsect2>
1560 <refsect2 id="pango-font-get-font-map" role="function" condition="since:1.10">
1561 <title>pango_font_get_font_map ()</title>
1562 <indexterm zone="pango-font-get-font-map" role="1.10"><primary sortas="pango_font_get_font_map">pango_font_get_font_map</primary></indexterm><programlisting><link linkend="PangoFontMap">PangoFontMap</link> *      pango_font_get_font_map             (<link linkend="PangoFont">PangoFont</link> *font);</programlisting>
1563 <para>
1564 Gets the font map for which the font was created.
1565 </para>
1566 <para>
1567 Note that the font maintains a <firstterm>weak</firstterm> reference
1568 to the font map, so if all references to font map are dropped, the font
1569 map will be finalized even if there are fonts created with the font
1570 map that are still alive.  In that case this function will return <link linkend="NULL--CAPS"><literal>NULL</literal></link>.
1571 It is the responsibility of the user to ensure that the font map is kept
1572 alive.  In most uses this is not an issue as a <link linkend="PangoContext"><type>PangoContext</type></link> holds
1573 a reference to the font map.</para>
1574 <para>
1575 </para><variablelist role="params">
1576 <varlistentry><term><parameter>font</parameter>&#160;:</term>
1577 <listitem><simpara> a <link linkend="PangoFont"><type>PangoFont</type></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
1578 </simpara></listitem></varlistentry>
1579 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the <link linkend="PangoFontMap"><type>PangoFontMap</type></link> for the font, or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if <parameter>font</parameter> is <link linkend="NULL--CAPS"><literal>NULL</literal></link>.
1580
1581 </simpara></listitem></varlistentry>
1582 </variablelist><para role="since">Since 1.10</para></refsect2>
1583 <refsect2 id="PangoFontFamily-struct" role="struct">
1584 <title>PangoFontFamily</title>
1585 <indexterm zone="PangoFontFamily-struct"><primary sortas="PangoFontFamily">PangoFontFamily</primary></indexterm><programlisting>typedef struct _PangoFontFamily PangoFontFamily;</programlisting>
1586 <para>
1587 The <link linkend="PangoFontFamily"><type>PangoFontFamily</type></link> structure is used to represent a family of related
1588 font faces. The faces in a family share a common design, but differ in
1589 slant, weight, width and other aspects.
1590 </para></refsect2>
1591 <refsect2 id="PANGO-TYPE-FONT-FAMILY--CAPS" role="macro">
1592 <title>PANGO_TYPE_FONT_FAMILY</title>
1593 <indexterm zone="PANGO-TYPE-FONT-FAMILY--CAPS"><primary sortas="PANGO_TYPE_FONT_FAMILY">PANGO_TYPE_FONT_FAMILY</primary></indexterm><programlisting>#define PANGO_TYPE_FONT_FAMILY              (pango_font_family_get_type ())
1594 </programlisting>
1595 <para>
1596 The <link linkend="GObject"><type>GObject</type></link> type for <link linkend="PangoFontFamily"><type>PangoFontFamily</type></link>.
1597 </para></refsect2>
1598 <refsect2 id="PANGO-FONT-FAMILY--CAPS" role="macro">
1599 <title>PANGO_FONT_FAMILY()</title>
1600 <indexterm zone="PANGO-FONT-FAMILY--CAPS"><primary sortas="PANGO_FONT_FAMILY">PANGO_FONT_FAMILY</primary></indexterm><programlisting>#define PANGO_FONT_FAMILY(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONT_FAMILY, PangoFontFamily))
1601 </programlisting>
1602 <para>
1603 Casts a <link linkend="GObject"><type>GObject</type></link> to a <link linkend="PangoFontFamily"><type>PangoFontFamily</type></link>.
1604 </para><variablelist role="params">
1605 <varlistentry><term><parameter>object</parameter>&#160;:</term>
1606 <listitem><simpara>a <link linkend="GObject"><type>GObject</type></link>.
1607 </simpara></listitem></varlistentry>
1608 </variablelist></refsect2>
1609 <refsect2 id="PANGO-IS-FONT-FAMILY--CAPS" role="macro">
1610 <title>PANGO_IS_FONT_FAMILY()</title>
1611 <indexterm zone="PANGO-IS-FONT-FAMILY--CAPS"><primary sortas="PANGO_IS_FONT_FAMILY">PANGO_IS_FONT_FAMILY</primary></indexterm><programlisting>#define PANGO_IS_FONT_FAMILY(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONT_FAMILY))
1612 </programlisting>
1613 <para>
1614 Returns <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if <parameter>object</parameter> is a <link linkend="PangoFontFamily"><type>PangoFontFamily</type></link>.
1615 </para><variablelist role="params">
1616 <varlistentry><term><parameter>object</parameter>&#160;:</term>
1617 <listitem><simpara>a <link linkend="GObject"><type>GObject</type></link>.
1618 </simpara></listitem></varlistentry>
1619 </variablelist></refsect2>
1620 <refsect2 id="pango-font-family-get-name" role="function">
1621 <title>pango_font_family_get_name ()</title>
1622 <indexterm zone="pango-font-family-get-name"><primary sortas="pango_font_family_get_name">pango_font_family_get_name</primary></indexterm><programlisting>const <link linkend="char">char</link> *        pango_font_family_get_name          (<link linkend="PangoFontFamily">PangoFontFamily</link> *family);</programlisting>
1623 <para>
1624 Gets the name of the family. The name is unique among all
1625 fonts for the font backend and can be used in a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link>
1626 to specify that a face from this family is desired.</para>
1627 <para>
1628 </para><variablelist role="params">
1629 <varlistentry><term><parameter>family</parameter>&#160;:</term>
1630 <listitem><simpara> a <link linkend="PangoFontFamily"><type>PangoFontFamily</type></link>
1631 </simpara></listitem></varlistentry>
1632 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the name of the family. This string is owned
1633   by the family object and must not be modified or freed.
1634 </simpara></listitem></varlistentry>
1635 </variablelist></refsect2>
1636 <refsect2 id="pango-font-family-is-monospace" role="function" condition="since:1.4">
1637 <title>pango_font_family_is_monospace ()</title>
1638 <indexterm zone="pango-font-family-is-monospace" role="1.4"><primary sortas="pango_font_family_is_monospace">pango_font_family_is_monospace</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            pango_font_family_is_monospace      (<link linkend="PangoFontFamily">PangoFontFamily</link> *family);</programlisting>
1639 <para>
1640 A monospace font is a font designed for text display where the the
1641 characters form a regular grid. For Western languages this would
1642 mean that the advance width of all characters are the same, but
1643 this categorization also includes Asian fonts which include
1644 double-width characters: characters that occupy two grid cells.
1645 <link linkend="g-unichar-iswide"><function>g_unichar_iswide()</function></link> returns a result that indicates whether a
1646 character is typically double-width in a monospace font.
1647 </para>
1648 <para>
1649 The best way to find out the grid-cell size is to call
1650 <link linkend="pango-font-metrics-get-approximate-digit-width"><function>pango_font_metrics_get_approximate_digit_width()</function></link>, since the results
1651 of <link linkend="pango-font-metrics-get-approximate-char-width"><function>pango_font_metrics_get_approximate_char_width()</function></link> may be affected
1652 by double-width characters.</para>
1653 <para>
1654 </para><variablelist role="params">
1655 <varlistentry><term><parameter>family</parameter>&#160;:</term>
1656 <listitem><simpara> a <link linkend="PangoFontFamily"><type>PangoFontFamily</type></link>
1657 </simpara></listitem></varlistentry>
1658 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the family is monospace.
1659
1660 </simpara></listitem></varlistentry>
1661 </variablelist><para role="since">Since 1.4</para></refsect2>
1662 <refsect2 id="pango-font-family-list-faces" role="function">
1663 <title>pango_font_family_list_faces ()</title>
1664 <indexterm zone="pango-font-family-list-faces"><primary sortas="pango_font_family_list_faces">pango_font_family_list_faces</primary></indexterm><programlisting><link linkend="void">void</link>                pango_font_family_list_faces        (<link linkend="PangoFontFamily">PangoFontFamily</link> *family,
1665                                                          <link linkend="PangoFontFace">PangoFontFace</link> ***faces,
1666                                                          <link linkend="int">int</link> *n_faces);</programlisting>
1667 <para>
1668 Lists the different font faces that make up <parameter>family</parameter>. The faces
1669 in a family share a common design, but differ in slant, weight,
1670 width and other aspects.</para>
1671 <para>
1672 </para><variablelist role="params">
1673 <varlistentry><term><parameter>family</parameter>&#160;:</term>
1674 <listitem><simpara> a <link linkend="PangoFontFamily"><type>PangoFontFamily</type></link>
1675 </simpara></listitem></varlistentry>
1676 <varlistentry><term><parameter>faces</parameter>&#160;:</term>
1677 <listitem><simpara> location to store an array of pointers to <link linkend="PangoFontFace"><type>PangoFontFace</type></link>
1678   objects, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>. This array should be freed with <link linkend="g-free"><function>g_free()</function></link>
1679   when it is no longer needed.
1680 </simpara></listitem></varlistentry>
1681 <varlistentry><term><parameter>n_faces</parameter>&#160;:</term>
1682 <listitem><simpara> location to store number of elements in <parameter>faces</parameter>.
1683 </simpara></listitem></varlistentry>
1684 </variablelist></refsect2>
1685 <refsect2 id="PangoFontFace-struct" role="struct">
1686 <title>PangoFontFace</title>
1687 <indexterm zone="PangoFontFace-struct"><primary sortas="PangoFontFace">PangoFontFace</primary></indexterm><programlisting>typedef struct _PangoFontFace PangoFontFace;</programlisting>
1688 <para>
1689 The <link linkend="PangoFontFace"><type>PangoFontFace</type></link> structure is used to represent a group of fonts with
1690 the same family, slant, weight, width, but varying sizes.
1691 </para></refsect2>
1692 <refsect2 id="PANGO-TYPE-FONT-FACE--CAPS" role="macro">
1693 <title>PANGO_TYPE_FONT_FACE</title>
1694 <indexterm zone="PANGO-TYPE-FONT-FACE--CAPS"><primary sortas="PANGO_TYPE_FONT_FACE">PANGO_TYPE_FONT_FACE</primary></indexterm><programlisting>#define PANGO_TYPE_FONT_FACE              (pango_font_face_get_type ())
1695 </programlisting>
1696 <para>
1697 The <link linkend="GObject"><type>GObject</type></link> type for <link linkend="PangoFontFace"><type>PangoFontFace</type></link>.
1698 </para></refsect2>
1699 <refsect2 id="PANGO-FONT-FACE--CAPS" role="macro">
1700 <title>PANGO_FONT_FACE()</title>
1701 <indexterm zone="PANGO-FONT-FACE--CAPS"><primary sortas="PANGO_FONT_FACE">PANGO_FONT_FACE</primary></indexterm><programlisting>#define PANGO_FONT_FACE(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONT_FACE, PangoFontFace))
1702 </programlisting>
1703 <para>
1704 Casts a <link linkend="GObject"><type>GObject</type></link> to a <link linkend="PangoFontFace"><type>PangoFontFace</type></link>.
1705 </para><variablelist role="params">
1706 <varlistentry><term><parameter>object</parameter>&#160;:</term>
1707 <listitem><simpara>a <link linkend="GObject"><type>GObject</type></link>.
1708 </simpara></listitem></varlistentry>
1709 </variablelist></refsect2>
1710 <refsect2 id="PANGO-IS-FONT-FACE--CAPS" role="macro">
1711 <title>PANGO_IS_FONT_FACE()</title>
1712 <indexterm zone="PANGO-IS-FONT-FACE--CAPS"><primary sortas="PANGO_IS_FONT_FACE">PANGO_IS_FONT_FACE</primary></indexterm><programlisting>#define PANGO_IS_FONT_FACE(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONT_FACE))
1713 </programlisting>
1714 <para>
1715 Returns <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if <parameter>object</parameter> is a <link linkend="PangoFontFace"><type>PangoFontFace</type></link>.
1716 </para><variablelist role="params">
1717 <varlistentry><term><parameter>object</parameter>&#160;:</term>
1718 <listitem><simpara>a <link linkend="GObject"><type>GObject</type></link>.
1719 </simpara></listitem></varlistentry>
1720 </variablelist></refsect2>
1721 <refsect2 id="pango-font-face-get-face-name" role="function">
1722 <title>pango_font_face_get_face_name ()</title>
1723 <indexterm zone="pango-font-face-get-face-name"><primary sortas="pango_font_face_get_face_name">pango_font_face_get_face_name</primary></indexterm><programlisting>const <link linkend="char">char</link> *        pango_font_face_get_face_name       (<link linkend="PangoFontFace">PangoFontFace</link> *face);</programlisting>
1724 <para>
1725 Gets a name representing the style of this face among the
1726 different faces in the <link linkend="PangoFontFamily"><type>PangoFontFamily</type></link> for the face. This
1727 name is unique among all faces in the family and is suitable
1728 for displaying to users.</para>
1729 <para>
1730 </para><variablelist role="params">
1731 <varlistentry><term><parameter>face</parameter>&#160;:</term>
1732 <listitem><simpara> a <link linkend="PangoFontFace"><type>PangoFontFace</type></link>.
1733 </simpara></listitem></varlistentry>
1734 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the face name for the face. This string is
1735   owned by the face object and must not be modified or freed.
1736 </simpara></listitem></varlistentry>
1737 </variablelist></refsect2>
1738 <refsect2 id="pango-font-face-list-sizes" role="function" condition="since:1.4">
1739 <title>pango_font_face_list_sizes ()</title>
1740 <indexterm zone="pango-font-face-list-sizes" role="1.4"><primary sortas="pango_font_face_list_sizes">pango_font_face_list_sizes</primary></indexterm><programlisting><link linkend="void">void</link>                pango_font_face_list_sizes          (<link linkend="PangoFontFace">PangoFontFace</link> *face,
1741                                                          <link linkend="int">int</link> **sizes,
1742                                                          <link linkend="int">int</link> *n_sizes);</programlisting>
1743 <para>
1744 List the available sizes for a font. This is only applicable to bitmap
1745 fonts. For scalable fonts, stores <link linkend="NULL--CAPS"><literal>NULL</literal></link> at the location pointed to by
1746 <parameter>sizes</parameter> and 0 at the location pointed to by <parameter>n_sizes</parameter>. The sizes returned
1747 are in Pango units and are sorted in ascending order.</para>
1748 <para>
1749 </para><variablelist role="params">
1750 <varlistentry><term><parameter>face</parameter>&#160;:</term>
1751 <listitem><simpara> a <link linkend="PangoFontFace"><type>PangoFontFace</type></link>.
1752 </simpara></listitem></varlistentry>
1753 <varlistentry><term><parameter>sizes</parameter>&#160;:</term>
1754 <listitem><simpara> location to store a pointer to an array of int. This array
1755         should be freed with <link linkend="g-free"><function>g_free()</function></link>.
1756 </simpara></listitem></varlistentry>
1757 <varlistentry><term><parameter>n_sizes</parameter>&#160;:</term>
1758 <listitem><simpara> location to store the number of elements in <parameter>sizes</parameter>
1759 </simpara></listitem></varlistentry>
1760 </variablelist><para role="since">Since 1.4</para></refsect2>
1761 <refsect2 id="pango-font-face-describe" role="function">
1762 <title>pango_font_face_describe ()</title>
1763 <indexterm zone="pango-font-face-describe"><primary sortas="pango_font_face_describe">pango_font_face_describe</primary></indexterm><programlisting><link linkend="PangoFontDescription">PangoFontDescription</link> * pango_font_face_describe         (<link linkend="PangoFontFace">PangoFontFace</link> *face);</programlisting>
1764 <para>
1765 Returns the family, style, variant, weight and stretch of
1766 a <link linkend="PangoFontFace"><type>PangoFontFace</type></link>. The size field of the resulting font description
1767 will be unset.</para>
1768 <para>
1769 </para><variablelist role="params">
1770 <varlistentry><term><parameter>face</parameter>&#160;:</term>
1771 <listitem><simpara> a <link linkend="PangoFontFace"><type>PangoFontFace</type></link>
1772 </simpara></listitem></varlistentry>
1773 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly-created <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link> structure
1774  holding the description of the face. Use <link linkend="pango-font-description-free"><function>pango_font_description_free()</function></link>
1775  to free the result.
1776 </simpara></listitem></varlistentry>
1777 </variablelist></refsect2>
1778 <refsect2 id="pango-font-face-is-synthesized" role="function" condition="since:1.18">
1779 <title>pango_font_face_is_synthesized ()</title>
1780 <indexterm zone="pango-font-face-is-synthesized" role="1.18"><primary sortas="pango_font_face_is_synthesized">pango_font_face_is_synthesized</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            pango_font_face_is_synthesized      (<link linkend="PangoFontFace">PangoFontFace</link> *face);</programlisting>
1781 <para>
1782 Returns whether a <link linkend="PangoFontFace"><type>PangoFontFace</type></link> is synthesized by the underlying
1783 font rendering engine from another face, perhaps by shearing, emboldening,
1784 or lightening it.</para>
1785 <para>
1786 </para><variablelist role="params">
1787 <varlistentry><term><parameter>face</parameter>&#160;:</term>
1788 <listitem><simpara> a <link linkend="PangoFontFace"><type>PangoFontFace</type></link>
1789 </simpara></listitem></varlistentry>
1790 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> whether <parameter>face</parameter> is synthesized.
1791
1792 </simpara></listitem></varlistentry>
1793 </variablelist><para role="since">Since 1.18</para></refsect2>
1794 <refsect2 id="PangoFontMap-struct" role="struct">
1795 <title>PangoFontMap</title>
1796 <indexterm zone="PangoFontMap-struct"><primary sortas="PangoFontMap">PangoFontMap</primary></indexterm><programlisting>typedef struct _PangoFontMap PangoFontMap;</programlisting>
1797 <para>
1798 The <link linkend="PangoFontMap"><type>PangoFontMap</type></link> represents the set of fonts available for a
1799 particular rendering system. This is a virtual object with
1800 implementations being specific to particular rendering systems.  To
1801 create an implementation of a <link linkend="PangoFontMap"><type>PangoFontMap</type></link>, the rendering-system
1802 specific code should allocate a larger structure that contains a nested
1803 <link linkend="PangoFontMap"><type>PangoFontMap</type></link>, fill in the <structfield>klass</structfield> member of the nested <link linkend="PangoFontMap"><type>PangoFontMap</type></link> with a
1804 pointer to a appropriate <link linkend="PangoFontMapClass"><type>PangoFontMapClass</type></link>, then call
1805 <link linkend="pango-font-map-init"><function>pango_font_map_init()</function></link> on the structure.
1806 </para>
1807 <para>
1808 The <link linkend="PangoFontMap"><type>PangoFontMap</type></link> structure contains one member which the implementation
1809 fills in.
1810 </para></refsect2>
1811 <refsect2 id="PANGO-TYPE-FONT-MAP--CAPS" role="macro">
1812 <title>PANGO_TYPE_FONT_MAP</title>
1813 <indexterm zone="PANGO-TYPE-FONT-MAP--CAPS"><primary sortas="PANGO_TYPE_FONT_MAP">PANGO_TYPE_FONT_MAP</primary></indexterm><programlisting>#define PANGO_TYPE_FONT_MAP              (pango_font_map_get_type ())
1814 </programlisting>
1815 <para>
1816 The <link linkend="GObject"><type>GObject</type></link> type for <link linkend="PangoFontMap"><type>PangoFontMap</type></link>.
1817 </para></refsect2>
1818 <refsect2 id="PANGO-FONT-MAP--CAPS" role="macro">
1819 <title>PANGO_FONT_MAP()</title>
1820 <indexterm zone="PANGO-FONT-MAP--CAPS"><primary sortas="PANGO_FONT_MAP">PANGO_FONT_MAP</primary></indexterm><programlisting>#define PANGO_FONT_MAP(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONT_MAP, PangoFontMap))
1821 </programlisting>
1822 <para>
1823 Casts a <link linkend="GObject"><type>GObject</type></link> to a <link linkend="PangoFontMap"><type>PangoFontMap</type></link>.
1824 </para><variablelist role="params">
1825 <varlistentry><term><parameter>object</parameter>&#160;:</term>
1826 <listitem><simpara>a <link linkend="GObject"><type>GObject</type></link>.
1827 </simpara></listitem></varlistentry>
1828 </variablelist></refsect2>
1829 <refsect2 id="PANGO-IS-FONT-MAP--CAPS" role="macro">
1830 <title>PANGO_IS_FONT_MAP()</title>
1831 <indexterm zone="PANGO-IS-FONT-MAP--CAPS"><primary sortas="PANGO_IS_FONT_MAP">PANGO_IS_FONT_MAP</primary></indexterm><programlisting>#define PANGO_IS_FONT_MAP(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONT_MAP))
1832 </programlisting>
1833 <para>
1834 Returns <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if <parameter>object</parameter> is a <link linkend="PangoFontMap"><type>PangoFontMap</type></link>.
1835 </para><variablelist role="params">
1836 <varlistentry><term><parameter>object</parameter>&#160;:</term>
1837 <listitem><simpara>a <link linkend="GObject"><type>GObject</type></link>.
1838 </simpara></listitem></varlistentry>
1839 </variablelist></refsect2>
1840 <refsect2 id="PangoFontMapClass" role="struct">
1841 <title>PangoFontMapClass</title>
1842 <indexterm zone="PangoFontMapClass"><primary sortas="PangoFontMapClass">PangoFontMapClass</primary></indexterm><programlisting>typedef struct {
1843   GObjectClass parent_class;
1844
1845
1846   PangoFont *   (*load_font)     (PangoFontMap               *fontmap,
1847                                   PangoContext               *context,
1848                                   const PangoFontDescription *desc);
1849   void          (*list_families) (PangoFontMap               *fontmap,
1850                                   PangoFontFamily          ***families,
1851                                   int                        *n_families);
1852   PangoFontset *(*load_fontset)  (PangoFontMap               *fontmap,
1853                                   PangoContext               *context,
1854                                   const PangoFontDescription *desc,
1855                                   PangoLanguage              *language);
1856
1857   const char *shape_engine_type;
1858 } PangoFontMapClass;
1859 </programlisting>
1860 <para>
1861 The <link linkend="PangoFontMapClass"><type>PangoFontMapClass</type></link> structure holds the virtual functions for
1862 a particular <link linkend="PangoFontMap"><type>PangoFontMap</type></link> implementation.
1863 </para><variablelist role="struct">
1864 <varlistentry>
1865 <term><link linkend="GObjectClass">GObjectClass</link>&#160;<structfield>parent_class</structfield>;</term>
1866 <listitem><simpara>parent <link linkend="GObjectClass"><type>GObjectClass</type></link>.
1867 </simpara></listitem>
1868 </varlistentry>
1869 <varlistentry>
1870 <term><structfield>load_font</structfield>&#160;()</term>
1871 <listitem><simpara>a function to load a font with a given description. See
1872             <link linkend="pango-font-map-load-font"><function>pango_font_map_load_font()</function></link>.
1873 </simpara></listitem>
1874 </varlistentry>
1875 <varlistentry>
1876 <term><structfield>list_families</structfield>&#160;()</term>
1877 <listitem><simpara>A function to list available font families. See
1878                 <link linkend="pango-font-map-list-families"><function>pango_font_map_list_families()</function></link>.
1879 </simpara></listitem>
1880 </varlistentry>
1881 <varlistentry>
1882 <term><structfield>load_fontset</structfield>&#160;()</term>
1883 <listitem><simpara>a function to load a fontset with a given given description
1884              suitable for a particular language. See
1885              <link linkend="pango-font-map-load-fontset"><function>pango_font_map_load_fontset()</function></link>.
1886 </simpara></listitem>
1887 </varlistentry>
1888 <varlistentry>
1889 <term>const&#160;<link linkend="char">char</link>&#160;*<structfield>shape_engine_type</structfield>;</term>
1890 <listitem><simpara>the type of rendering-system-dependent engines that
1891              can handle fonts of this fonts loaded with this fontmap.
1892 </simpara></listitem>
1893 </varlistentry>
1894 </variablelist></refsect2>
1895 <refsect2 id="PANGO-FONT-MAP-CLASS--CAPS" role="macro">
1896 <title>PANGO_FONT_MAP_CLASS()</title>
1897 <indexterm zone="PANGO-FONT-MAP-CLASS--CAPS"><primary sortas="PANGO_FONT_MAP_CLASS">PANGO_FONT_MAP_CLASS</primary></indexterm><programlisting>#define PANGO_FONT_MAP_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_FONT_MAP, PangoFontMapClass))
1898 </programlisting>
1899 <para>
1900 Casts a <link linkend="GObject"><type>GObject</type></link> to a <link linkend="PangoFontMapClass"><type>PangoFontMapClass</type></link>.
1901 </para><variablelist role="params">
1902 <varlistentry><term><parameter>klass</parameter>&#160;:</term>
1903 <listitem><simpara>a <link linkend="GObject"><type>GObject</type></link>.
1904 </simpara></listitem></varlistentry>
1905 </variablelist></refsect2>
1906 <refsect2 id="PANGO-IS-FONT-MAP-CLASS--CAPS" role="macro">
1907 <title>PANGO_IS_FONT_MAP_CLASS()</title>
1908 <indexterm zone="PANGO-IS-FONT-MAP-CLASS--CAPS"><primary sortas="PANGO_IS_FONT_MAP_CLASS">PANGO_IS_FONT_MAP_CLASS</primary></indexterm><programlisting>#define PANGO_IS_FONT_MAP_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_FONT_MAP))
1909 </programlisting>
1910 <para>
1911 Returns <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if <parameter>klass</parameter> is a subtype of <link linkend="PangoFontMapClass"><type>PangoFontMapClass</type></link>.
1912 </para><variablelist role="params">
1913 <varlistentry><term><parameter>klass</parameter>&#160;:</term>
1914 <listitem><simpara>a <link linkend="GObject"><type>GObject</type></link>.
1915 </simpara></listitem></varlistentry>
1916 </variablelist></refsect2>
1917 <refsect2 id="PANGO-FONT-MAP-GET-CLASS--CAPS" role="macro">
1918 <title>PANGO_FONT_MAP_GET_CLASS()</title>
1919 <indexterm zone="PANGO-FONT-MAP-GET-CLASS--CAPS"><primary sortas="PANGO_FONT_MAP_GET_CLASS">PANGO_FONT_MAP_GET_CLASS</primary></indexterm><programlisting>#define PANGO_FONT_MAP_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_FONT_MAP, PangoFontMapClass))
1920 </programlisting>
1921 <para>
1922 Returns the type of a <link linkend="PangoFontMap"><type>PangoFontMap</type></link>.
1923 </para><variablelist role="params">
1924 <varlistentry><term><parameter>obj</parameter>&#160;:</term>
1925 <listitem><simpara>a <link linkend="PangoFontMap"><type>PangoFontMap</type></link>.
1926 </simpara></listitem></varlistentry>
1927 </variablelist></refsect2>
1928 <refsect2 id="pango-font-map-create-context" role="function" condition="since:1.22">
1929 <title>pango_font_map_create_context ()</title>
1930 <indexterm zone="pango-font-map-create-context" role="1.22"><primary sortas="pango_font_map_create_context">pango_font_map_create_context</primary></indexterm><programlisting><link linkend="PangoContext">PangoContext</link> *      pango_font_map_create_context       (<link linkend="PangoFontMap">PangoFontMap</link> *fontmap);</programlisting>
1931 <para>
1932 Creates a <link linkend="PangoContext"><type>PangoContext</type></link> connected to <parameter>fontmap</parameter>.  This is equivalent
1933 to <link linkend="pango-context-new"><function>pango_context_new()</function></link> followed by <link linkend="pango-context-set-font-map"><function>pango_context_set_font_map()</function></link>.
1934 </para>
1935 <para>
1936 If you are using Pango as part of a higher-level system,
1937 that system may have it's own way of create a <link linkend="PangoContext"><type>PangoContext</type></link>.
1938 For instance, the GTK+ toolkit has, among others,
1939 <link linkend="gdk-pango-context-get-for-screen"><function>gdk_pango_context_get_for_screen()</function></link>, and
1940 <link linkend="gtk-widget-get-pango-context"><function>gtk_widget_get_pango_context()</function></link>.  Use those instead.</para>
1941 <para>
1942 </para><variablelist role="params">
1943 <varlistentry><term><parameter>fontmap</parameter>&#160;:</term>
1944 <listitem><simpara> a <link linkend="PangoFontMap"><type>PangoFontMap</type></link>
1945 </simpara></listitem></varlistentry>
1946 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the newly allocated <link linkend="PangoContext"><type>PangoContext</type></link>, which should
1947               be freed with <link linkend="g-object-unref"><function>g_object_unref()</function></link>.
1948
1949 </simpara></listitem></varlistentry>
1950 </variablelist><para role="since">Since 1.22</para></refsect2>
1951 <refsect2 id="pango-font-map-load-font" role="function">
1952 <title>pango_font_map_load_font ()</title>
1953 <indexterm zone="pango-font-map-load-font"><primary sortas="pango_font_map_load_font">pango_font_map_load_font</primary></indexterm><programlisting><link linkend="PangoFont">PangoFont</link> *         pango_font_map_load_font            (<link linkend="PangoFontMap">PangoFontMap</link> *fontmap,
1954                                                          <link linkend="PangoContext">PangoContext</link> *context,
1955                                                          const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc);</programlisting>
1956 <para>
1957 Load the font in the fontmap that is the closest match for <parameter>desc</parameter>.</para>
1958 <para>
1959 </para><variablelist role="params">
1960 <varlistentry><term><parameter>fontmap</parameter>&#160;:</term>
1961 <listitem><simpara> a <link linkend="PangoFontMap"><type>PangoFontMap</type></link>
1962 </simpara></listitem></varlistentry>
1963 <varlistentry><term><parameter>context</parameter>&#160;:</term>
1964 <listitem><simpara> the <link linkend="PangoContext"><type>PangoContext</type></link> the font will be used with
1965 </simpara></listitem></varlistentry>
1966 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
1967 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link> describing the font to load
1968 </simpara></listitem></varlistentry>
1969 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the font loaded, or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if no font matched.
1970 </simpara></listitem></varlistentry>
1971 </variablelist></refsect2>
1972 <refsect2 id="pango-font-map-load-fontset" role="function">
1973 <title>pango_font_map_load_fontset ()</title>
1974 <indexterm zone="pango-font-map-load-fontset"><primary sortas="pango_font_map_load_fontset">pango_font_map_load_fontset</primary></indexterm><programlisting><link linkend="PangoFontset">PangoFontset</link> *      pango_font_map_load_fontset         (<link linkend="PangoFontMap">PangoFontMap</link> *fontmap,
1975                                                          <link linkend="PangoContext">PangoContext</link> *context,
1976                                                          const <link linkend="PangoFontDescription">PangoFontDescription</link> *desc,
1977                                                          <link linkend="PangoLanguage">PangoLanguage</link> *language);</programlisting>
1978 <para>
1979 Load a set of fonts in the fontmap that can be used to render
1980 a font matching <parameter>desc</parameter>.</para>
1981 <para>
1982 </para><variablelist role="params">
1983 <varlistentry><term><parameter>fontmap</parameter>&#160;:</term>
1984 <listitem><simpara> a <link linkend="PangoFontMap"><type>PangoFontMap</type></link>
1985 </simpara></listitem></varlistentry>
1986 <varlistentry><term><parameter>context</parameter>&#160;:</term>
1987 <listitem><simpara> the <link linkend="PangoContext"><type>PangoContext</type></link> the font will be used with
1988 </simpara></listitem></varlistentry>
1989 <varlistentry><term><parameter>desc</parameter>&#160;:</term>
1990 <listitem><simpara> a <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link> describing the font to load
1991 </simpara></listitem></varlistentry>
1992 <varlistentry><term><parameter>language</parameter>&#160;:</term>
1993 <listitem><simpara> a <link linkend="PangoLanguage"><type>PangoLanguage</type></link> the fonts will be used for
1994 </simpara></listitem></varlistentry>
1995 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the fontset, or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if no font matched.
1996 </simpara></listitem></varlistentry>
1997 </variablelist></refsect2>
1998 <refsect2 id="pango-font-map-list-families" role="function">
1999 <title>pango_font_map_list_families ()</title>
2000 <indexterm zone="pango-font-map-list-families"><primary sortas="pango_font_map_list_families">pango_font_map_list_families</primary></indexterm><programlisting><link linkend="void">void</link>                pango_font_map_list_families        (<link linkend="PangoFontMap">PangoFontMap</link> *fontmap,
2001                                                          <link linkend="PangoFontFamily">PangoFontFamily</link> ***families,
2002                                                          <link linkend="int">int</link> *n_families);</programlisting>
2003 <para>
2004 List all families for a fontmap.</para>
2005 <para>
2006 </para><variablelist role="params">
2007 <varlistentry><term><parameter>fontmap</parameter>&#160;:</term>
2008 <listitem><simpara> a <link linkend="PangoFontMap"><type>PangoFontMap</type></link>
2009 </simpara></listitem></varlistentry>
2010 <varlistentry><term><parameter>families</parameter>&#160;:</term>
2011 <listitem><simpara> location to store a pointer to an array of <link linkend="PangoFontFamily"><type>PangoFontFamily</type></link> *.
2012            This array should be freed with <link linkend="g-free"><function>g_free()</function></link>.
2013 </simpara></listitem></varlistentry>
2014 <varlistentry><term><parameter>n_families</parameter>&#160;:</term>
2015 <listitem><simpara> location to store the number of elements in <parameter>families</parameter>
2016 </simpara></listitem></varlistentry>
2017 </variablelist></refsect2>
2018 <refsect2 id="pango-font-map-get-shape-engine-type" role="function" condition="since:1.4">
2019 <title>pango_font_map_get_shape_engine_type ()</title>
2020 <indexterm zone="pango-font-map-get-shape-engine-type" role="1.4"><primary sortas="pango_font_map_get_shape_engine_type">pango_font_map_get_shape_engine_type</primary></indexterm><programlisting>const <link linkend="char">char</link> *        pango_font_map_get_shape_engine_type
2021                                                         (<link linkend="PangoFontMap">PangoFontMap</link> *fontmap);</programlisting>
2022 <para>
2023 Returns the render ID for shape engines for this fontmap.
2024 See the <structfield>render_type</structfield> field of
2025 <link linkend="PangoEngineInfo"><type>PangoEngineInfo</type></link>.</para>
2026 <para>
2027 </para><variablelist role="params">
2028 <varlistentry><term><parameter>fontmap</parameter>&#160;:</term>
2029 <listitem><simpara> a <link linkend="PangoFontMap"><type>PangoFontMap</type></link>
2030 </simpara></listitem></varlistentry>
2031 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the ID string for shape engines for
2032  this fontmap. Owned by Pango, should not be modified
2033  or freed.
2034
2035 </simpara></listitem></varlistentry>
2036 </variablelist><para role="since">Since 1.4</para></refsect2>
2037 <refsect2 id="PangoFontset-struct" role="struct">
2038 <title>PangoFontset</title>
2039 <indexterm zone="PangoFontset-struct"><primary sortas="PangoFontset">PangoFontset</primary></indexterm><programlisting>typedef struct _PangoFontset PangoFontset;</programlisting>
2040 <para>
2041 A <link linkend="PangoFontset"><type>PangoFontset</type></link> represents a set of <link linkend="PangoFont"><type>PangoFont</type></link> to use
2042 when rendering text. It is the result of resolving a
2043 <link linkend="PangoFontDescription"><type>PangoFontDescription</type></link> against a particular <link linkend="PangoContext"><type>PangoContext</type></link>.
2044 It has operations for finding the component font for
2045 a particular Unicode character, and for finding a composite
2046 set of metrics for the entire fontset.
2047 </para></refsect2>
2048 <refsect2 id="PANGO-TYPE-FONTSET--CAPS" role="macro">
2049 <title>PANGO_TYPE_FONTSET</title>
2050 <indexterm zone="PANGO-TYPE-FONTSET--CAPS"><primary sortas="PANGO_TYPE_FONTSET">PANGO_TYPE_FONTSET</primary></indexterm><programlisting>#define PANGO_TYPE_FONTSET              (pango_fontset_get_type ())
2051 </programlisting>
2052 <para>
2053 The <link linkend="GObject"><type>GObject</type></link> type for <link linkend="PangoFontset"><type>PangoFontset</type></link>.
2054 </para></refsect2>
2055 <refsect2 id="PangoFontsetClass" role="struct">
2056 <title>PangoFontsetClass</title>
2057 <indexterm zone="PangoFontsetClass"><primary sortas="PangoFontsetClass">PangoFontsetClass</primary></indexterm><programlisting>typedef struct {
2058   GObjectClass parent_class;
2059
2060
2061   PangoFont *       (*get_font)     (PangoFontset     *fontset,
2062                                      guint             wc);
2063
2064   PangoFontMetrics *(*get_metrics)  (PangoFontset     *fontset);
2065   PangoLanguage *   (*get_language) (PangoFontset     *fontset);
2066   void              (*foreach)      (PangoFontset           *fontset,
2067                                      PangoFontsetForeachFunc func,
2068                                      gpointer                data);
2069 } PangoFontsetClass;
2070 </programlisting>
2071 <para>
2072 The <link linkend="PangoFontsetClass"><type>PangoFontsetClass</type></link> structure holds the virtual functions for
2073 a particular <link linkend="PangoFontset"><type>PangoFontset</type></link> implementation.
2074 </para><variablelist role="struct">
2075 <varlistentry>
2076 <term><link linkend="GObjectClass">GObjectClass</link>&#160;<structfield>parent_class</structfield>;</term>
2077 <listitem><simpara>parent <link linkend="GObjectClass"><type>GObjectClass</type></link>.
2078 </simpara></listitem>
2079 </varlistentry>
2080 <varlistentry>
2081 <term><structfield>get_font</structfield>&#160;()</term>
2082 <listitem><simpara>a function to get the font in the fontset that contains the 
2083    best glyph for the given Unicode character; see <link linkend="pango-fontset-get-font"><function>pango_fontset_get_font()</function></link>.
2084 </simpara></listitem>
2085 </varlistentry>
2086 <varlistentry>
2087 <term><structfield>get_metrics</structfield>&#160;()</term>
2088 <listitem><simpara>a function to get overall metric information for the fonts 
2089    in the fontset; see <link linkend="pango-fontset-get-metrics"><function>pango_fontset_get_metrics()</function></link>.
2090 </simpara></listitem>
2091 </varlistentry>
2092 <varlistentry>
2093 <term><structfield>get_language</structfield>&#160;()</term>
2094 <listitem><simpara>a function to get the language of the fontset.
2095 </simpara></listitem>
2096 </varlistentry>
2097 <varlistentry>
2098 <term><structfield>foreach</structfield>&#160;()</term>
2099 <listitem><simpara>a function to loop over the fonts in the fontset. See
2100    <link linkend="pango-fontset-foreach"><function>pango_fontset_foreach()</function></link>.
2101 </simpara></listitem>
2102 </varlistentry>
2103 </variablelist></refsect2>
2104 <refsect2 id="pango-fontset-get-font" role="function">
2105 <title>pango_fontset_get_font ()</title>
2106 <indexterm zone="pango-fontset-get-font"><primary sortas="pango_fontset_get_font">pango_fontset_get_font</primary></indexterm><programlisting><link linkend="PangoFont">PangoFont</link> *         pango_fontset_get_font              (<link linkend="PangoFontset">PangoFontset</link> *fontset,
2107                                                          <link linkend="guint">guint</link> wc);</programlisting>
2108 <para>
2109 Returns the font in the fontset that contains the best glyph for the
2110 Unicode character <parameter>wc</parameter>.</para>
2111 <para>
2112 </para><variablelist role="params">
2113 <varlistentry><term><parameter>fontset</parameter>&#160;:</term>
2114 <listitem><simpara> a <link linkend="PangoFontset"><type>PangoFontset</type></link>
2115 </simpara></listitem></varlistentry>
2116 <varlistentry><term><parameter>wc</parameter>&#160;:</term>
2117 <listitem><simpara> a Unicode character
2118 </simpara></listitem></varlistentry>
2119 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a <link linkend="PangoFont"><type>PangoFont</type></link>. The caller must call g_object_unref when finished
2120          with the font.
2121 </simpara></listitem></varlistentry>
2122 </variablelist></refsect2>
2123 <refsect2 id="pango-fontset-get-metrics" role="function">
2124 <title>pango_fontset_get_metrics ()</title>
2125 <indexterm zone="pango-fontset-get-metrics"><primary sortas="pango_fontset_get_metrics">pango_fontset_get_metrics</primary></indexterm><programlisting><link linkend="PangoFontMetrics">PangoFontMetrics</link> *  pango_fontset_get_metrics           (<link linkend="PangoFontset">PangoFontset</link> *fontset);</programlisting>
2126 <para>
2127 Get overall metric information for the fonts in the fontset.</para>
2128 <para>
2129 </para><variablelist role="params">
2130 <varlistentry><term><parameter>fontset</parameter>&#160;:</term>
2131 <listitem><simpara> a <link linkend="PangoFontset"><type>PangoFontset</type></link>
2132 </simpara></listitem></varlistentry>
2133 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a <link linkend="PangoFontMetrics"><type>PangoFontMetrics</type></link> object. The caller must call <link linkend="pango-font-metrics-unref"><function>pango_font_metrics_unref()</function></link>
2134   when finished using the object.
2135 </simpara></listitem></varlistentry>
2136 </variablelist></refsect2>
2137 <refsect2 id="PangoFontsetForeachFunc" role="function" condition="since:1.4">
2138 <title>PangoFontsetForeachFunc ()</title>
2139 <indexterm zone="PangoFontsetForeachFunc" role="1.4"><primary sortas="PangoFontsetForeachFunc">PangoFontsetForeachFunc</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            (*PangoFontsetForeachFunc)          (<link linkend="PangoFontset">PangoFontset</link> *fontset,
2140                                                          <link linkend="PangoFont">PangoFont</link> *font,
2141                                                          <link linkend="gpointer">gpointer</link> data);</programlisting>
2142 <para>
2143 A callback function used by <link linkend="pango-fontset-foreach"><function>pango_fontset_foreach()</function></link> when enumerating
2144 the fonts in a fontset.</para>
2145 <para>
2146 </para><variablelist role="params">
2147 <varlistentry><term><parameter>fontset</parameter>&#160;:</term>
2148 <listitem><simpara> a <link linkend="PangoFontset"><type>PangoFontset</type></link>
2149 </simpara></listitem></varlistentry>
2150 <varlistentry><term><parameter>font</parameter>&#160;:</term>
2151 <listitem><simpara> a font from <parameter>fontset</parameter>
2152 </simpara></listitem></varlistentry>
2153 <varlistentry><term><parameter>data</parameter>&#160;:</term>
2154 <listitem><simpara> callback data
2155 </simpara></listitem></varlistentry>
2156 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> if <link linkend="TRUE--CAPS"><literal>TRUE</literal></link>, stop iteration and return immediately.
2157
2158 </simpara></listitem></varlistentry>
2159 </variablelist><para role="since">Since 1.4</para></refsect2>
2160 <refsect2 id="pango-fontset-foreach" role="function" condition="since:1.4">
2161 <title>pango_fontset_foreach ()</title>
2162 <indexterm zone="pango-fontset-foreach" role="1.4"><primary sortas="pango_fontset_foreach">pango_fontset_foreach</primary></indexterm><programlisting><link linkend="void">void</link>                pango_fontset_foreach               (<link linkend="PangoFontset">PangoFontset</link> *fontset,
2163                                                          <link linkend="PangoFontsetForeachFunc">PangoFontsetForeachFunc</link> func,
2164                                                          <link linkend="gpointer">gpointer</link> data);</programlisting>
2165 <para>
2166 Iterates through all the fonts in a fontset, calling <parameter>func</parameter> for
2167 each one. If <parameter>func</parameter> returns <link linkend="TRUE--CAPS"><literal>TRUE</literal></link>, that stops the iteration.</para>
2168 <para>
2169 </para><variablelist role="params">
2170 <varlistentry><term><parameter>fontset</parameter>&#160;:</term>
2171 <listitem><simpara> a <link linkend="PangoFontset"><type>PangoFontset</type></link>
2172 </simpara></listitem></varlistentry>
2173 <varlistentry><term><parameter>func</parameter>&#160;:</term>
2174 <listitem><simpara> Callback function
2175 </simpara></listitem></varlistentry>
2176 <varlistentry><term><parameter>data</parameter>&#160;:</term>
2177 <listitem><simpara> data to pass to the callback function
2178 </simpara></listitem></varlistentry>
2179 </variablelist><para role="since">Since 1.4</para></refsect2>
2180 <refsect2 id="PangoFontsetSimple-struct" role="struct">
2181 <title>PangoFontsetSimple</title>
2182 <indexterm zone="PangoFontsetSimple-struct"><primary sortas="PangoFontsetSimple">PangoFontsetSimple</primary></indexterm><programlisting>typedef struct _PangoFontsetSimple PangoFontsetSimple;</programlisting>
2183 <para>
2184 <link linkend="PangoFontsetSimple"><type>PangoFontsetSimple</type></link> is a implementation of the abstract
2185 <link linkend="PangoFontset"><type>PangoFontset</type></link> base class in terms of an array of fonts,
2186 which the creator provides when constructing the
2187 <link linkend="PangoFontsetSimple"><type>PangoFontsetSimple</type></link>.
2188 </para></refsect2>
2189 <refsect2 id="PANGO-TYPE-FONTSET-SIMPLE--CAPS" role="macro">
2190 <title>PANGO_TYPE_FONTSET_SIMPLE</title>
2191 <indexterm zone="PANGO-TYPE-FONTSET-SIMPLE--CAPS"><primary sortas="PANGO_TYPE_FONTSET_SIMPLE">PANGO_TYPE_FONTSET_SIMPLE</primary></indexterm><programlisting>#define PANGO_TYPE_FONTSET_SIMPLE       (pango_fontset_simple_get_type ())
2192 </programlisting>
2193 <para>
2194 The <link linkend="GObject"><type>GObject</type></link> type for <link linkend="PangoFontsetSimple"><type>PangoFontsetSimple</type></link>.
2195 </para></refsect2>
2196 <refsect2 id="pango-fontset-simple-new" role="function">
2197 <title>pango_fontset_simple_new ()</title>
2198 <indexterm zone="pango-fontset-simple-new"><primary sortas="pango_fontset_simple_new">pango_fontset_simple_new</primary></indexterm><programlisting><link linkend="PangoFontsetSimple">PangoFontsetSimple</link> * pango_fontset_simple_new           (<link linkend="PangoLanguage">PangoLanguage</link> *language);</programlisting>
2199 <para>
2200 Creates a new <link linkend="PangoFontsetSimple"><type>PangoFontsetSimple</type></link> for the given language.</para>
2201 <para>
2202 </para><variablelist role="params">
2203 <varlistentry><term><parameter>language</parameter>&#160;:</term>
2204 <listitem><simpara> a <link linkend="PangoLanguage"><type>PangoLanguage</type></link> tag
2205 </simpara></listitem></varlistentry>
2206 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the newly allocated <link linkend="PangoFontsetSimple"><type>PangoFontsetSimple</type></link>, which should
2207               be freed with <link linkend="g-object-unref"><function>g_object_unref()</function></link>.
2208 </simpara></listitem></varlistentry>
2209 </variablelist></refsect2>
2210 <refsect2 id="pango-fontset-simple-append" role="function">
2211 <title>pango_fontset_simple_append ()</title>
2212 <indexterm zone="pango-fontset-simple-append"><primary sortas="pango_fontset_simple_append">pango_fontset_simple_append</primary></indexterm><programlisting><link linkend="void">void</link>                pango_fontset_simple_append         (<link linkend="PangoFontsetSimple">PangoFontsetSimple</link> *fontset,
2213                                                          <link linkend="PangoFont">PangoFont</link> *font);</programlisting>
2214 <para>
2215 Adds a font to the fontset.</para>
2216 <para>
2217 </para><variablelist role="params">
2218 <varlistentry><term><parameter>fontset</parameter>&#160;:</term>
2219 <listitem><simpara> a <link linkend="PangoFontsetSimple"><type>PangoFontsetSimple</type></link>.
2220 </simpara></listitem></varlistentry>
2221 <varlistentry><term><parameter>font</parameter>&#160;:</term>
2222 <listitem><simpara> a <link linkend="PangoFont"><type>PangoFont</type></link>.
2223 </simpara></listitem></varlistentry>
2224 </variablelist></refsect2>
2225 <refsect2 id="pango-fontset-simple-size" role="function">
2226 <title>pango_fontset_simple_size ()</title>
2227 <indexterm zone="pango-fontset-simple-size"><primary sortas="pango_fontset_simple_size">pango_fontset_simple_size</primary></indexterm><programlisting><link linkend="int">int</link>                 pango_fontset_simple_size           (<link linkend="PangoFontsetSimple">PangoFontsetSimple</link> *fontset);</programlisting>
2228 <para>
2229 Returns the number of fonts in the fontset.</para>
2230 <para>
2231 </para><variablelist role="params">
2232 <varlistentry><term><parameter>fontset</parameter>&#160;:</term>
2233 <listitem><simpara> a <link linkend="PangoFontsetSimple"><type>PangoFontsetSimple</type></link>.
2234 </simpara></listitem></varlistentry>
2235 <varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the size of <parameter>fontset</parameter>.
2236 </simpara></listitem></varlistentry>
2237 </variablelist></refsect2>
2238
2239 </refsect1>
2240
2241
2242
2243
2244 </refentry>