]> gitweb.factorcode.org Git - factor.git/blob - basis/pango/Pango-1.0.gir
Merge branch 'master' of git://factorcode.org/git/factor
[factor.git] / basis / pango / Pango-1.0.gir
1 <?xml version="1.0"?>
2 <!-- This file was automatically generated from C sources - DO NOT EDIT!
3 To affect the contents of this file, edit the original C definitions,
4 and/or use gtk-doc annotations.  -->
5 <repository version="1.0"
6             xmlns="http://www.gtk.org/introspection/core/1.0"
7             xmlns:c="http://www.gtk.org/introspection/c/1.0"
8             xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
9   <include name="GLib" version="2.0"/>
10   <include name="GObject" version="2.0"/>
11   <include name="cairo" version="1.0"/>
12   <package name="cairo"/>
13   <package name="freetype2"/>
14   <package name="gobject-2.0"/>
15   <namespace name="Pango"
16              version="1.0"
17              shared-library="libpango-1.0.so.0"
18              c:prefix="Pango">
19     <alias name="Glyph" target="uint32" c:type="PangoGlyph"/>
20     <alias name="GlyphUnit" target="int32" c:type="PangoGlyphUnit"/>
21     <alias name="LayoutRun" target="GlyphItem" c:type="PangoLayoutRun"/>
22     <constant name="ANALYSIS_FLAG_CENTERED_BASELINE" value="1">
23       <type name="int"/>
24     </constant>
25     <constant name="ATTR_INDEX_FROM_TEXT_BEGINNING" value="0">
26       <type name="int"/>
27     </constant>
28     <enumeration name="Alignment"
29                  glib:type-name="PangoAlignment"
30                  glib:get-type="pango_alignment_get_type"
31                  c:type="PangoAlignment">
32       <member name="left"
33               value="0"
34               c:identifier="PANGO_ALIGN_LEFT"
35               glib:nick="left"/>
36       <member name="center"
37               value="1"
38               c:identifier="PANGO_ALIGN_CENTER"
39               glib:nick="center"/>
40       <member name="right"
41               value="2"
42               c:identifier="PANGO_ALIGN_RIGHT"
43               glib:nick="right"/>
44     </enumeration>
45     <record name="Analysis" c:type="PangoAnalysis">
46       <field name="shape_engine" writable="1">
47         <type name="EngineShape" c:type="PangoEngineShape*"/>
48       </field>
49       <field name="lang_engine" writable="1">
50         <type name="EngineLang" c:type="PangoEngineLang*"/>
51       </field>
52       <field name="font" writable="1">
53         <type name="Font" c:type="PangoFont*"/>
54       </field>
55       <field name="level" writable="1">
56         <type name="uint8" c:type="guint8"/>
57       </field>
58       <field name="gravity" writable="1">
59         <type name="uint8" c:type="guint8"/>
60       </field>
61       <field name="flags" writable="1">
62         <type name="uint8" c:type="guint8"/>
63       </field>
64       <field name="script" writable="1">
65         <type name="uint8" c:type="guint8"/>
66       </field>
67       <field name="language" writable="1">
68         <type name="Language" c:type="PangoLanguage*"/>
69       </field>
70       <field name="extra_attrs" writable="1">
71         <type name="GLib.SList" c:type="GSList*"/>
72       </field>
73     </record>
74     <record name="AttrClass" c:type="PangoAttrClass">
75       <field name="type" writable="1">
76         <type name="AttrType" c:type="PangoAttrType"/>
77       </field>
78       <field name="copy">
79         <type name="any" c:type="pointer"/>
80       </field>
81       <field name="destroy">
82         <type name="any" c:type="pointer"/>
83       </field>
84       <field name="equal">
85         <type name="any" c:type="pointer"/>
86       </field>
87     </record>
88     <record name="AttrColor" c:type="PangoAttrColor">
89       <field name="attr" writable="1">
90         <type name="Attribute" c:type="PangoAttribute"/>
91       </field>
92       <field name="color" writable="1">
93         <type name="Color" c:type="PangoColor"/>
94       </field>
95     </record>
96     <callback name="AttrDataCopyFunc" c:type="PangoAttrDataCopyFunc">
97       <return-value transfer-ownership="none">
98         <type name="any" c:type="gpointer"/>
99       </return-value>
100       <parameters>
101         <parameter name="data" transfer-ownership="none">
102           <type name="any" c:type="gconstpointer"/>
103         </parameter>
104       </parameters>
105     </callback>
106     <callback name="AttrFilterFunc" c:type="PangoAttrFilterFunc">
107       <return-value transfer-ownership="none">
108         <type name="boolean" c:type="gboolean"/>
109       </return-value>
110       <parameters>
111         <parameter name="attribute" transfer-ownership="none">
112           <type name="Attribute" c:type="PangoAttribute*"/>
113         </parameter>
114         <parameter name="data" transfer-ownership="none">
115           <type name="any" c:type="gpointer"/>
116         </parameter>
117       </parameters>
118     </callback>
119     <record name="AttrFloat" c:type="PangoAttrFloat">
120       <field name="attr" writable="1">
121         <type name="Attribute" c:type="PangoAttribute"/>
122       </field>
123       <field name="value" writable="1">
124         <type name="double" c:type="double"/>
125       </field>
126     </record>
127     <record name="AttrFontDesc" c:type="PangoAttrFontDesc">
128       <field name="attr" writable="1">
129         <type name="Attribute" c:type="PangoAttribute"/>
130       </field>
131       <field name="desc" writable="1">
132         <type name="FontDescription" c:type="PangoFontDescription*"/>
133       </field>
134       <constructor name="new"
135                    c:identifier="pango_attr_font_desc_new"
136                    doc="Create a new font description attribute. This attribute
137 allows setting family, style, weight, variant, stretch,
138 and size simultaneously.
139 freed with pango_attribute_destroy().">
140         <return-value transfer-ownership="full">
141           <type name="AttrFontDesc" c:type="PangoAttribute*"/>
142         </return-value>
143         <parameters>
144           <parameter name="desc" transfer-ownership="none">
145             <type name="FontDescription" c:type="PangoFontDescription*"/>
146           </parameter>
147         </parameters>
148       </constructor>
149     </record>
150     <record name="AttrInt" c:type="PangoAttrInt">
151       <field name="attr" writable="1">
152         <type name="Attribute" c:type="PangoAttribute"/>
153       </field>
154       <field name="value" writable="1">
155         <type name="int" c:type="int"/>
156       </field>
157     </record>
158     <record name="AttrIterator" c:type="PangoAttrIterator">
159       <method name="range"
160               c:identifier="pango_attr_iterator_range"
161               doc="Get the range of the current segment. Note that the
162 stored return values are signed, not unsigned like
163 the values in #PangoAttribute. To deal with this API
164 oversight, stored return values that wouldn&apos;t fit into
165 a signed integer are clamped to %G_MAXINT.">
166         <return-value transfer-ownership="none">
167           <type name="none" c:type="void"/>
168         </return-value>
169         <parameters>
170           <parameter name="start" direction="out" transfer-ownership="full">
171             <type name="int" c:type="gint*"/>
172           </parameter>
173           <parameter name="end" direction="out" transfer-ownership="full">
174             <type name="int" c:type="gint*"/>
175           </parameter>
176         </parameters>
177       </method>
178       <method name="next"
179               c:identifier="pango_attr_iterator_next"
180               doc="Advance the iterator until the next change of style.">
181         <return-value transfer-ownership="none">
182           <type name="boolean" c:type="gboolean"/>
183         </return-value>
184       </method>
185       <method name="copy"
186               c:identifier="pango_attr_iterator_copy"
187               doc="Copy a #PangoAttrIterator
188 be freed with pango_attr_iterator_destroy().">
189         <return-value transfer-ownership="full">
190           <type name="AttrIterator" c:type="PangoAttrIterator*"/>
191         </return-value>
192       </method>
193       <method name="destroy"
194               c:identifier="pango_attr_iterator_destroy"
195               doc="Destroy a #PangoAttrIterator and free all associated memory.">
196         <return-value transfer-ownership="none">
197           <type name="none" c:type="void"/>
198         </return-value>
199       </method>
200       <method name="get"
201               c:identifier="pango_attr_iterator_get"
202               doc="Find the current attribute of a particular type at the iterator
203 location. When multiple attributes of the same type overlap,
204 the attribute whose range starts closest to the current location
205 is used.
206 if no attribute of that type applies to the current
207 location.">
208         <return-value transfer-ownership="full">
209           <type name="Attribute" c:type="PangoAttribute*"/>
210         </return-value>
211         <parameters>
212           <parameter name="type" transfer-ownership="none">
213             <type name="AttrType" c:type="PangoAttrType"/>
214           </parameter>
215         </parameters>
216       </method>
217       <method name="get_font"
218               c:identifier="pango_attr_iterator_get_font"
219               doc="The family name in this structure will be set using
220 pango_font_description_set_family_static() using values from
221 an attribute in the #PangoAttrList associated with the iterator,
222 so if you plan to keep it around, you must call:
223 &lt;literal&gt;pango_font_description_set_family (desc, pango_font_description_get_family (desc))&lt;/literal&gt;.
224 if none is found.
225 location in which to store a list of non-font
226 attributes at the the current position; only the highest priority
227 value of each attribute will be added to this list. In order
228 to free this value, you must call pango_attribute_destroy() on
229 each member.
230 Get the font and other attributes at the current iterator position.">
231         <return-value transfer-ownership="none">
232           <type name="none" c:type="void"/>
233         </return-value>
234         <parameters>
235           <parameter name="desc" transfer-ownership="none">
236             <type name="FontDescription" c:type="PangoFontDescription*"/>
237           </parameter>
238           <parameter name="language" transfer-ownership="none">
239             <type name="Language" c:type="PangoLanguage**"/>
240           </parameter>
241           <parameter name="extra_attrs"
242                      transfer-ownership="full"
243                      doc="if non-%NULL,">
244             <type name="GLib.SList" c:type="GSList**"/>
245           </parameter>
246         </parameters>
247       </method>
248       <method name="get_attrs"
249               c:identifier="pango_attr_iterator_get_attrs"
250               doc="Gets a list of all attributes at the current position of the
251 iterator.
252 all attributes for the current range.
253 To free this value, call pango_attribute_destroy() on
254 each value and g_slist_free() on the list."
255               version="1.2">
256         <return-value transfer-ownership="full" doc="a list of">
257           <type name="GLib.SList" c:type="GSList*">
258             <type name="Pango.Attribute"/>
259           </type>
260         </return-value>
261       </method>
262     </record>
263     <record name="AttrLanguage" c:type="PangoAttrLanguage">
264       <field name="attr" writable="1">
265         <type name="Attribute" c:type="PangoAttribute"/>
266       </field>
267       <field name="value" writable="1">
268         <type name="Language" c:type="PangoLanguage*"/>
269       </field>
270       <constructor name="new"
271                    c:identifier="pango_attr_language_new"
272                    doc="Create a new language tag attribute.
273 freed with pango_attribute_destroy().">
274         <return-value transfer-ownership="full">
275           <type name="AttrLanguage" c:type="PangoAttribute*"/>
276         </return-value>
277         <parameters>
278           <parameter name="language" transfer-ownership="none">
279             <type name="Language" c:type="PangoLanguage*"/>
280           </parameter>
281         </parameters>
282       </constructor>
283     </record>
284     <record name="AttrList"
285             c:type="PangoAttrList"
286             glib:type-name="PangoAttrList"
287             glib:get-type="pango_attr_list_get_type">
288       <constructor name="new"
289                    c:identifier="pango_attr_list_new"
290                    doc="Create a new empty attribute list with a reference count of one.
291 be freed with pango_attr_list_unref().">
292         <return-value transfer-ownership="full">
293           <type name="AttrList" c:type="PangoAttrList*"/>
294         </return-value>
295       </constructor>
296       <method name="ref"
297               c:identifier="pango_attr_list_ref"
298               doc="Increase the reference count of the given attribute list by one."
299               version="1.10">
300         <return-value transfer-ownership="full">
301           <type name="AttrList" c:type="PangoAttrList*"/>
302         </return-value>
303       </method>
304       <method name="unref"
305               c:identifier="pango_attr_list_unref"
306               doc="Decrease the reference count of the given attribute list by one.
307 If the result is zero, free the attribute list and the attributes
308 it contains.">
309         <return-value transfer-ownership="none">
310           <type name="none" c:type="void"/>
311         </return-value>
312       </method>
313       <method name="copy"
314               c:identifier="pango_attr_list_copy"
315               doc="Copy @list and return an identical new list.
316 reference count of one, which should
317 be freed with pango_attr_list_unref().
318 Returns %NULL if @list was %NULL.">
319         <return-value transfer-ownership="full">
320           <type name="AttrList" c:type="PangoAttrList*"/>
321         </return-value>
322       </method>
323       <method name="insert"
324               c:identifier="pango_attr_list_insert"
325               doc="assumed by the list.
326 Insert the given attribute into the #PangoAttrList. It will
327 be inserted after all other attributes with a matching">
328         <return-value transfer-ownership="none">
329           <type name="none" c:type="void"/>
330         </return-value>
331         <parameters>
332           <parameter name="attr" transfer-ownership="none">
333             <type name="Attribute" c:type="PangoAttribute*"/>
334           </parameter>
335         </parameters>
336       </method>
337       <method name="insert_before"
338               c:identifier="pango_attr_list_insert_before"
339               doc="assumed by the list.
340 Insert the given attribute into the #PangoAttrList. It will
341 be inserted before all other attributes with a matching">
342         <return-value transfer-ownership="none">
343           <type name="none" c:type="void"/>
344         </return-value>
345         <parameters>
346           <parameter name="attr" transfer-ownership="none">
347             <type name="Attribute" c:type="PangoAttribute*"/>
348           </parameter>
349         </parameters>
350       </method>
351       <method name="change"
352               c:identifier="pango_attr_list_change"
353               doc="assumed by the list.
354 Insert the given attribute into the #PangoAttrList. It will
355 replace any attributes of the same type on that segment
356 and be merged with any adjoining attributes that are identical.
357 This function is slower than pango_attr_list_insert() for
358 creating a attribute list in order (potentially much slower
359 for large lists). However, pango_attr_list_insert() is not
360 suitable for continually changing a set of attributes
361 since it never removes or combines existing attributes.">
362         <return-value transfer-ownership="none">
363           <type name="none" c:type="void"/>
364         </return-value>
365         <parameters>
366           <parameter name="attr" transfer-ownership="none">
367             <type name="Attribute" c:type="PangoAttribute*"/>
368           </parameter>
369         </parameters>
370       </method>
371       <method name="splice"
372               c:identifier="pango_attr_list_splice"
373               doc="must be specified since the attributes in @other
374 may only be present at some subsection of this range)
375 This function opens up a hole in @list, fills it in with attributes from
376 the left, and then merges @other on top of the hole.
377 This operation is equivalent to stretching every attribute
378 that applies at position @pos in @list by an amount @len,
379 and then calling pango_attr_list_change() with a copy
380 of each attribute in @other in sequence (offset in position by @pos).
381 This operation proves useful for, for instance, inserting
382 a pre-edit string in the middle of an edit buffer.">
383         <return-value transfer-ownership="none">
384           <type name="none" c:type="void"/>
385         </return-value>
386         <parameters>
387           <parameter name="other" transfer-ownership="none">
388             <type name="AttrList" c:type="PangoAttrList*"/>
389           </parameter>
390           <parameter name="pos" transfer-ownership="none">
391             <type name="int" c:type="gint"/>
392           </parameter>
393           <parameter name="len" transfer-ownership="none">
394             <type name="int" c:type="gint"/>
395           </parameter>
396         </parameters>
397       </method>
398       <method name="filter"
399               c:identifier="pango_attr_list_filter"
400               doc="should be filtered out.
401 Given a #PangoAttrList and callback function, removes any elements
402 of @list for which @func returns %TRUE and inserts them into
403 a new list.
404 no attributes of the given types were found."
405               version="1.2">
406         <return-value transfer-ownership="full">
407           <type name="AttrList" c:type="PangoAttrList*"/>
408         </return-value>
409         <parameters>
410           <parameter name="func"
411                      transfer-ownership="none"
412                      scope="call"
413                      closure="2">
414             <type name="AttrFilterFunc" c:type="PangoAttrFilterFunc"/>
415           </parameter>
416           <parameter name="data" transfer-ownership="none">
417             <type name="any" c:type="gpointer"/>
418           </parameter>
419         </parameters>
420       </method>
421       <method name="get_iterator"
422               c:identifier="pango_attr_list_get_iterator"
423               doc="Create a iterator initialized to the beginning of the list.
424 be freed with pango_attr_iterator_destroy().">
425         <return-value transfer-ownership="full">
426           <type name="AttrIterator" c:type="PangoAttrIterator*"/>
427         </return-value>
428       </method>
429     </record>
430     <record name="AttrShape" c:type="PangoAttrShape">
431       <field name="attr" writable="1">
432         <type name="Attribute" c:type="PangoAttribute"/>
433       </field>
434       <field name="ink_rect" writable="1">
435         <type name="Rectangle" c:type="PangoRectangle"/>
436       </field>
437       <field name="logical_rect" writable="1">
438         <type name="Rectangle" c:type="PangoRectangle"/>
439       </field>
440       <field name="data" writable="1">
441         <type name="any" c:type="gpointer"/>
442       </field>
443       <field name="copy_func" writable="1">
444         <type name="AttrDataCopyFunc" c:type="PangoAttrDataCopyFunc"/>
445       </field>
446       <field name="destroy_func" writable="1">
447         <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
448       </field>
449       <constructor name="new"
450                    c:identifier="pango_attr_shape_new"
451                    doc="Create a new shape attribute. A shape is used to impose a
452 particular ink and logical rectangle on the result of shaping a
453 particular glyph. This might be used, for instance, for
454 embedding a picture or a widget inside a #PangoLayout.
455 freed with pango_attribute_destroy().">
456         <return-value transfer-ownership="full">
457           <type name="AttrShape" c:type="PangoAttribute*"/>
458         </return-value>
459         <parameters>
460           <parameter name="ink_rect" transfer-ownership="none">
461             <type name="Rectangle" c:type="PangoRectangle*"/>
462           </parameter>
463           <parameter name="logical_rect" transfer-ownership="none">
464             <type name="Rectangle" c:type="PangoRectangle*"/>
465           </parameter>
466         </parameters>
467       </constructor>
468       <constructor name="new_with_data"
469                    c:identifier="pango_attr_shape_new_with_data"
470                    doc="is copied. If %NULL, @data is simply copied
471 as a pointer.
472 is freed, or %NULL
473 Like pango_attr_shape_new(), but a user data pointer is also
474 provided; this pointer can be accessed when later
475 rendering the glyph.
476 freed with pango_attribute_destroy()."
477                    version="1.8">
478         <return-value transfer-ownership="full">
479           <type name="AttrShape" c:type="PangoAttribute*"/>
480         </return-value>
481         <parameters>
482           <parameter name="ink_rect" transfer-ownership="none">
483             <type name="Rectangle" c:type="PangoRectangle*"/>
484           </parameter>
485           <parameter name="logical_rect" transfer-ownership="none">
486             <type name="Rectangle" c:type="PangoRectangle*"/>
487           </parameter>
488           <parameter name="data" transfer-ownership="none">
489             <type name="any" c:type="gpointer"/>
490           </parameter>
491           <parameter name="copy_func"
492                      transfer-ownership="none"
493                      scope="call"
494                      destroy="4">
495             <type name="AttrDataCopyFunc" c:type="PangoAttrDataCopyFunc"/>
496           </parameter>
497           <parameter name="destroy_func"
498                      transfer-ownership="none"
499                      scope="call">
500             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
501           </parameter>
502         </parameters>
503       </constructor>
504     </record>
505     <record name="AttrSize" c:type="PangoAttrSize">
506       <field name="attr" writable="1">
507         <type name="Attribute" c:type="PangoAttribute"/>
508       </field>
509       <field name="size" writable="1">
510         <type name="int" c:type="int"/>
511       </field>
512       <field name="absolute" writable="1" bits="1">
513         <type name="uint" c:type="guint"/>
514       </field>
515       <constructor name="new"
516                    c:identifier="pango_attr_size_new"
517                    doc="Create a new font-size attribute in fractional points.
518 freed with pango_attribute_destroy().">
519         <return-value transfer-ownership="full">
520           <type name="AttrSize" c:type="PangoAttribute*"/>
521         </return-value>
522         <parameters>
523           <parameter name="size" transfer-ownership="none">
524             <type name="int" c:type="int"/>
525           </parameter>
526         </parameters>
527       </constructor>
528       <constructor name="new_absolute"
529                    c:identifier="pango_attr_size_new_absolute"
530                    doc="Create a new font-size attribute in device units.
531 freed with pango_attribute_destroy()."
532                    version="1.8">
533         <return-value transfer-ownership="full">
534           <type name="AttrSize" c:type="PangoAttribute*"/>
535         </return-value>
536         <parameters>
537           <parameter name="size" transfer-ownership="none">
538             <type name="int" c:type="int"/>
539           </parameter>
540         </parameters>
541       </constructor>
542     </record>
543     <record name="AttrString" c:type="PangoAttrString">
544       <field name="attr" writable="1">
545         <type name="Attribute" c:type="PangoAttribute"/>
546       </field>
547       <field name="value" writable="1">
548         <type name="utf8" c:type="char*"/>
549       </field>
550     </record>
551     <enumeration name="AttrType"
552                  glib:type-name="PangoAttrType"
553                  glib:get-type="pango_attr_type_get_type"
554                  c:type="PangoAttrType">
555       <member name="invalid"
556               value="0"
557               c:identifier="PANGO_ATTR_INVALID"
558               glib:nick="invalid"/>
559       <member name="language"
560               value="1"
561               c:identifier="PANGO_ATTR_LANGUAGE"
562               glib:nick="language"/>
563       <member name="family"
564               value="2"
565               c:identifier="PANGO_ATTR_FAMILY"
566               glib:nick="family"/>
567       <member name="style"
568               value="3"
569               c:identifier="PANGO_ATTR_STYLE"
570               glib:nick="style"/>
571       <member name="weight"
572               value="4"
573               c:identifier="PANGO_ATTR_WEIGHT"
574               glib:nick="weight"/>
575       <member name="variant"
576               value="5"
577               c:identifier="PANGO_ATTR_VARIANT"
578               glib:nick="variant"/>
579       <member name="stretch"
580               value="6"
581               c:identifier="PANGO_ATTR_STRETCH"
582               glib:nick="stretch"/>
583       <member name="size"
584               value="7"
585               c:identifier="PANGO_ATTR_SIZE"
586               glib:nick="size"/>
587       <member name="font_desc"
588               value="8"
589               c:identifier="PANGO_ATTR_FONT_DESC"
590               glib:nick="font-desc"/>
591       <member name="foreground"
592               value="9"
593               c:identifier="PANGO_ATTR_FOREGROUND"
594               glib:nick="foreground"/>
595       <member name="background"
596               value="10"
597               c:identifier="PANGO_ATTR_BACKGROUND"
598               glib:nick="background"/>
599       <member name="underline"
600               value="11"
601               c:identifier="PANGO_ATTR_UNDERLINE"
602               glib:nick="underline"/>
603       <member name="strikethrough"
604               value="12"
605               c:identifier="PANGO_ATTR_STRIKETHROUGH"
606               glib:nick="strikethrough"/>
607       <member name="rise"
608               value="13"
609               c:identifier="PANGO_ATTR_RISE"
610               glib:nick="rise"/>
611       <member name="shape"
612               value="14"
613               c:identifier="PANGO_ATTR_SHAPE"
614               glib:nick="shape"/>
615       <member name="scale"
616               value="15"
617               c:identifier="PANGO_ATTR_SCALE"
618               glib:nick="scale"/>
619       <member name="fallback"
620               value="16"
621               c:identifier="PANGO_ATTR_FALLBACK"
622               glib:nick="fallback"/>
623       <member name="letter_spacing"
624               value="17"
625               c:identifier="PANGO_ATTR_LETTER_SPACING"
626               glib:nick="letter-spacing"/>
627       <member name="underline_color"
628               value="18"
629               c:identifier="PANGO_ATTR_UNDERLINE_COLOR"
630               glib:nick="underline-color"/>
631       <member name="strikethrough_color"
632               value="19"
633               c:identifier="PANGO_ATTR_STRIKETHROUGH_COLOR"
634               glib:nick="strikethrough-color"/>
635       <member name="absolute_size"
636               value="20"
637               c:identifier="PANGO_ATTR_ABSOLUTE_SIZE"
638               glib:nick="absolute-size"/>
639       <member name="gravity"
640               value="21"
641               c:identifier="PANGO_ATTR_GRAVITY"
642               glib:nick="gravity"/>
643       <member name="gravity_hint"
644               value="22"
645               c:identifier="PANGO_ATTR_GRAVITY_HINT"
646               glib:nick="gravity-hint"/>
647     </enumeration>
648     <record name="Attribute" c:type="PangoAttribute">
649       <field name="klass" writable="1">
650         <type name="AttrClass" c:type="PangoAttrClass*"/>
651       </field>
652       <field name="start_index" writable="1">
653         <type name="uint" c:type="guint"/>
654       </field>
655       <field name="end_index" writable="1">
656         <type name="uint" c:type="guint"/>
657       </field>
658       <method name="init"
659               c:identifier="pango_attribute_init"
660               doc="Initializes @attr&apos;s klass to @klass,
661 it&apos;s start_index to %PANGO_ATTR_INDEX_FROM_TEXT_BEGINNING
662 and end_index to %PANGO_ATTR_INDEX_TO_TEXT_END
663 such that the attribute applies
664 to the entire text by default."
665               version="1.20">
666         <return-value transfer-ownership="none">
667           <type name="none" c:type="void"/>
668         </return-value>
669         <parameters>
670           <parameter name="klass" transfer-ownership="none">
671             <type name="AttrClass" c:type="PangoAttrClass*"/>
672           </parameter>
673         </parameters>
674       </method>
675       <method name="copy"
676               c:identifier="pango_attribute_copy"
677               doc="Make a copy of an attribute.
678 freed with pango_attribute_destroy().">
679         <return-value transfer-ownership="full">
680           <type name="Attribute" c:type="PangoAttribute*"/>
681         </return-value>
682       </method>
683       <method name="destroy"
684               c:identifier="pango_attribute_destroy"
685               doc="Destroy a #PangoAttribute and free all associated memory.">
686         <return-value transfer-ownership="none">
687           <type name="none" c:type="void"/>
688         </return-value>
689       </method>
690       <method name="equal"
691               c:identifier="pango_attribute_equal"
692               doc="Compare two attributes for equality. This compares only the
693 actual value of the two attributes and not the ranges that the
694 attributes apply to.">
695         <return-value transfer-ownership="none">
696           <type name="boolean" c:type="gboolean"/>
697         </return-value>
698         <parameters>
699           <parameter name="attr2" transfer-ownership="none">
700             <type name="Attribute" c:type="PangoAttribute*"/>
701           </parameter>
702         </parameters>
703       </method>
704     </record>
705     <enumeration name="BidiType"
706                  doc="The #PangoBidiType type represents the bidirectional character
707 type of a Unicode character as specified by the
708 &lt;ulink url=&quot;http://www.unicode.org/reports/tr9/&quot;&gt;Unicode bidirectional algorithm&lt;/ulink&gt;."
709                  version="1.22"
710                  glib:type-name="PangoBidiType"
711                  glib:get-type="pango_bidi_type_get_type"
712                  c:type="PangoBidiType">
713       <member name="l"
714               value="0"
715               c:identifier="PANGO_BIDI_TYPE_L"
716               glib:nick="l"/>
717       <member name="lre"
718               value="1"
719               c:identifier="PANGO_BIDI_TYPE_LRE"
720               glib:nick="lre"/>
721       <member name="lro"
722               value="2"
723               c:identifier="PANGO_BIDI_TYPE_LRO"
724               glib:nick="lro"/>
725       <member name="r"
726               value="3"
727               c:identifier="PANGO_BIDI_TYPE_R"
728               glib:nick="r"/>
729       <member name="al"
730               value="4"
731               c:identifier="PANGO_BIDI_TYPE_AL"
732               glib:nick="al"/>
733       <member name="rle"
734               value="5"
735               c:identifier="PANGO_BIDI_TYPE_RLE"
736               glib:nick="rle"/>
737       <member name="rlo"
738               value="6"
739               c:identifier="PANGO_BIDI_TYPE_RLO"
740               glib:nick="rlo"/>
741       <member name="pdf"
742               value="7"
743               c:identifier="PANGO_BIDI_TYPE_PDF"
744               glib:nick="pdf"/>
745       <member name="en"
746               value="8"
747               c:identifier="PANGO_BIDI_TYPE_EN"
748               glib:nick="en"/>
749       <member name="es"
750               value="9"
751               c:identifier="PANGO_BIDI_TYPE_ES"
752               glib:nick="es"/>
753       <member name="et"
754               value="10"
755               c:identifier="PANGO_BIDI_TYPE_ET"
756               glib:nick="et"/>
757       <member name="an"
758               value="11"
759               c:identifier="PANGO_BIDI_TYPE_AN"
760               glib:nick="an"/>
761       <member name="cs"
762               value="12"
763               c:identifier="PANGO_BIDI_TYPE_CS"
764               glib:nick="cs"/>
765       <member name="nsm"
766               value="13"
767               c:identifier="PANGO_BIDI_TYPE_NSM"
768               glib:nick="nsm"/>
769       <member name="bn"
770               value="14"
771               c:identifier="PANGO_BIDI_TYPE_BN"
772               glib:nick="bn"/>
773       <member name="b"
774               value="15"
775               c:identifier="PANGO_BIDI_TYPE_B"
776               glib:nick="b"/>
777       <member name="s"
778               value="16"
779               c:identifier="PANGO_BIDI_TYPE_S"
780               glib:nick="s"/>
781       <member name="ws"
782               value="17"
783               c:identifier="PANGO_BIDI_TYPE_WS"
784               glib:nick="ws"/>
785       <member name="on"
786               value="18"
787               c:identifier="PANGO_BIDI_TYPE_ON"
788               glib:nick="on"/>
789     </enumeration>
790     <record name="Color"
791             c:type="PangoColor"
792             glib:type-name="PangoColor"
793             glib:get-type="pango_color_get_type">
794       <field name="red" writable="1">
795         <type name="uint16" c:type="guint16"/>
796       </field>
797       <field name="green" writable="1">
798         <type name="uint16" c:type="guint16"/>
799       </field>
800       <field name="blue" writable="1">
801         <type name="uint16" c:type="guint16"/>
802       </field>
803       <method name="copy"
804               c:identifier="pango_color_copy"
805               doc="Creates a copy of @src, which should be freed with
806 pango_color_free(). Primarily used by language bindings,
807 not that useful otherwise (since colors can just be copied
808 by assignment in C).
809 be freed with pango_color_free(), or %NULL
810 if @src was %NULL.">
811         <return-value transfer-ownership="full">
812           <type name="Color" c:type="PangoColor*"/>
813         </return-value>
814       </method>
815       <method name="free"
816               c:identifier="pango_color_free"
817               doc="Frees a color allocated by pango_color_copy().">
818         <return-value transfer-ownership="none">
819           <type name="none" c:type="void"/>
820         </return-value>
821       </method>
822       <method name="parse"
823               c:identifier="pango_color_parse"
824               doc="Fill in the fields of a color from a string specification. The
825 string can either one of a large set of standard names. (Taken
826 from the X11 &lt;filename&gt;rgb.txt&lt;/filename&gt; file), or it can be a hex value in the
827 form &apos;&amp;num;rgb&apos; &apos;&amp;num;rrggbb&apos; &apos;&amp;num;rrrgggbbb&apos; or &apos;&amp;num;rrrrggggbbbb&apos; where
828 &apos;r&apos;, &apos;g&apos; and &apos;b&apos; are hex digits of the red, green, and blue
829 components of the color, respectively. (White in the four
830 forms is &apos;&amp;num;fff&apos; &apos;&amp;num;ffffff&apos; &apos;&amp;num;fffffffff&apos; and &apos;&amp;num;ffffffffffff&apos;)
831 otherwise false.">
832         <return-value transfer-ownership="none">
833           <type name="boolean" c:type="gboolean"/>
834         </return-value>
835         <parameters>
836           <parameter name="spec" transfer-ownership="none">
837             <type name="utf8" c:type="char*"/>
838           </parameter>
839         </parameters>
840       </method>
841       <method name="to_string"
842               c:identifier="pango_color_to_string"
843               doc="Returns a textual specification of @color in the hexadecimal form
844 &lt;literal&gt;&amp;num;rrrrggggbbbb&lt;/literal&gt;, where &lt;literal&gt;r&lt;/literal&gt;,
845 &lt;literal&gt;g&lt;/literal&gt; and &lt;literal&gt;b&lt;/literal&gt; are hex digits representing
846 the red, green, and blue components respectively."
847               version="1.16">
848         <return-value transfer-ownership="full">
849           <type name="utf8" c:type="gchar*"/>
850         </return-value>
851       </method>
852     </record>
853     <class name="Context"
854            c:type="PangoContext"
855            parent="GObject.Object"
856            glib:type-name="PangoContext"
857            glib:get-type="pango_context_get_type"
858            glib:type-struct="ContextClass">
859       <constructor name="new"
860                    c:identifier="pango_context_new"
861                    doc="Creates a new #PangoContext initialized to default values.
862 This function is not particularly useful as it should always
863 be followed by a pango_context_set_font_map() call, and the
864 function pango_font_map_create_context() does these two steps
865 together and hence users are recommended to use that.
866 If you are using Pango as part of a higher-level system,
867 that system may have it&apos;s own way of create a #PangoContext.
868 For instance, the GTK+ toolkit has, among others,
869 gdk_pango_context_get_for_screen(), and
870 gtk_widget_get_pango_context().  Use those instead.
871 be freed with g_object_unref().">
872         <return-value transfer-ownership="full">
873           <type name="Context" c:type="PangoContext*"/>
874         </return-value>
875       </constructor>
876       <method name="set_font_map"
877               c:identifier="pango_context_set_font_map"
878               doc="Sets the font map to be searched when fonts are looked-up in this context.
879 This is only for internal use by Pango backends, a #PangoContext obtained
880 via one of the recommended methods should already have a suitable font map.">
881         <return-value transfer-ownership="none">
882           <type name="none" c:type="void"/>
883         </return-value>
884         <parameters>
885           <parameter name="font_map" transfer-ownership="none">
886             <type name="FontMap" c:type="PangoFontMap*"/>
887           </parameter>
888         </parameters>
889       </method>
890       <method name="get_font_map"
891               c:identifier="pango_context_get_font_map"
892               doc="Gets the #PangoFontmap used to look up fonts for this context.
893 is owned by Pango and should not be unreferenced."
894               version="1.6">
895         <return-value transfer-ownership="full">
896           <type name="FontMap" c:type="PangoFontMap*"/>
897         </return-value>
898       </method>
899       <method name="list_families"
900               c:identifier="pango_context_list_families"
901               doc="This array should be freed with g_free().
902 List all families for a context.">
903         <return-value transfer-ownership="none">
904           <type name="none" c:type="void"/>
905         </return-value>
906         <parameters>
907           <parameter name="families" transfer-ownership="none">
908             <type name="FontFamily" c:type="PangoFontFamily***"/>
909           </parameter>
910           <parameter name="n_families"
911                      direction="out"
912                      transfer-ownership="full">
913             <type name="int" c:type="int*"/>
914           </parameter>
915         </parameters>
916       </method>
917       <method name="load_font"
918               c:identifier="pango_context_load_font"
919               doc="Loads the font in one of the fontmaps in the context
920 that is the closest match for @desc.">
921         <return-value transfer-ownership="full">
922           <type name="Font" c:type="PangoFont*"/>
923         </return-value>
924         <parameters>
925           <parameter name="desc" transfer-ownership="none">
926             <type name="FontDescription" c:type="PangoFontDescription*"/>
927           </parameter>
928         </parameters>
929       </method>
930       <method name="load_fontset"
931               c:identifier="pango_context_load_fontset"
932               doc="Load a set of fonts in the context that can be used to render
933 a font matching @desc.">
934         <return-value transfer-ownership="full">
935           <type name="Fontset" c:type="PangoFontset*"/>
936         </return-value>
937         <parameters>
938           <parameter name="desc" transfer-ownership="none">
939             <type name="FontDescription" c:type="PangoFontDescription*"/>
940           </parameter>
941           <parameter name="language" transfer-ownership="none">
942             <type name="Language" c:type="PangoLanguage*"/>
943           </parameter>
944         </parameters>
945       </method>
946       <method name="get_metrics"
947               c:identifier="pango_context_get_metrics"
948               doc="description from the context will be used.
949 for. %NULL means that the language tag from the context will
950 be used. If no language tag is set on the context, metrics
951 for the default language (as determined by
952 pango_language_get_default()) will be returned.
953 Get overall metric information for a particular font
954 description.  Since the metrics may be substantially different for
955 different scripts, a language tag can be provided to indicate that
956 the metrics should be retrieved that correspond to the script(s)
957 used by that language.
958 The #PangoFontDescription is interpreted in the same way as
959 by pango_itemize(), and the family name may be a comma separated
960 list of figures. If characters from multiple of these families
961 would be used to render the string, then the returned fonts would
962 be a composite of the metrics for the fonts loaded for the
963 individual families.
964 when finished using the object.">
965         <return-value transfer-ownership="full">
966           <type name="FontMetrics" c:type="PangoFontMetrics*"/>
967         </return-value>
968         <parameters>
969           <parameter name="desc" transfer-ownership="none">
970             <type name="FontDescription" c:type="PangoFontDescription*"/>
971           </parameter>
972           <parameter name="language" transfer-ownership="none">
973             <type name="Language" c:type="PangoLanguage*"/>
974           </parameter>
975         </parameters>
976       </method>
977       <method name="set_font_description"
978               c:identifier="pango_context_set_font_description"
979               doc="Set the default font description for the context">
980         <return-value transfer-ownership="none">
981           <type name="none" c:type="void"/>
982         </return-value>
983         <parameters>
984           <parameter name="desc" transfer-ownership="none">
985             <type name="FontDescription" c:type="PangoFontDescription*"/>
986           </parameter>
987         </parameters>
988       </method>
989       <method name="get_font_description"
990               c:identifier="pango_context_get_font_description"
991               doc="Retrieve the default font description for the context.
992 This value must not be modified or freed.">
993         <return-value transfer-ownership="full">
994           <type name="FontDescription" c:type="PangoFontDescription*"/>
995         </return-value>
996       </method>
997       <method name="get_language"
998               c:identifier="pango_context_get_language"
999               doc="Retrieves the global language tag for the context.">
1000         <return-value transfer-ownership="full">
1001           <type name="Language" c:type="PangoLanguage*"/>
1002         </return-value>
1003       </method>
1004       <method name="set_language"
1005               c:identifier="pango_context_set_language"
1006               doc="Sets the global language tag for the context.  The default language
1007 for the locale of the running process can be found using
1008 pango_language_get_default().">
1009         <return-value transfer-ownership="none">
1010           <type name="none" c:type="void"/>
1011         </return-value>
1012         <parameters>
1013           <parameter name="language" transfer-ownership="none">
1014             <type name="Language" c:type="PangoLanguage*"/>
1015           </parameter>
1016         </parameters>
1017       </method>
1018       <method name="set_base_dir"
1019               c:identifier="pango_context_set_base_dir"
1020               doc="Sets the base direction for the context.
1021 The base direction is used in applying the Unicode bidirectional
1022 algorithm; if the @direction is %PANGO_DIRECTION_LTR or
1023 %PANGO_DIRECTION_RTL, then the value will be used as the paragraph
1024 direction in the Unicode bidirectional algorithm.  A value of
1025 %PANGO_DIRECTION_WEAK_LTR or %PANGO_DIRECTION_WEAK_RTL is used only
1026 for paragraphs that do not contain any strong characters themselves.">
1027         <return-value transfer-ownership="none">
1028           <type name="none" c:type="void"/>
1029         </return-value>
1030         <parameters>
1031           <parameter name="direction" transfer-ownership="none">
1032             <type name="Direction" c:type="PangoDirection"/>
1033           </parameter>
1034         </parameters>
1035       </method>
1036       <method name="get_base_dir"
1037               c:identifier="pango_context_get_base_dir"
1038               doc="Retrieves the base direction for the context. See
1039 pango_context_set_base_dir().">
1040         <return-value transfer-ownership="full">
1041           <type name="Direction" c:type="PangoDirection"/>
1042         </return-value>
1043       </method>
1044       <method name="set_base_gravity"
1045               c:identifier="pango_context_set_base_gravity"
1046               doc="Sets the base gravity for the context.
1047 The base gravity is used in laying vertical text out."
1048               version="1.16">
1049         <return-value transfer-ownership="none">
1050           <type name="none" c:type="void"/>
1051         </return-value>
1052         <parameters>
1053           <parameter name="gravity" transfer-ownership="none">
1054             <type name="Gravity" c:type="PangoGravity"/>
1055           </parameter>
1056         </parameters>
1057       </method>
1058       <method name="get_base_gravity"
1059               c:identifier="pango_context_get_base_gravity"
1060               doc="Retrieves the base gravity for the context. See
1061 pango_context_set_base_gravity()."
1062               version="1.16">
1063         <return-value transfer-ownership="full">
1064           <type name="Gravity" c:type="PangoGravity"/>
1065         </return-value>
1066       </method>
1067       <method name="get_gravity"
1068               c:identifier="pango_context_get_gravity"
1069               doc="Retrieves the gravity for the context. This is similar to
1070 pango_context_get_base_gravity(), except for when the base gravity
1071 is %PANGO_GRAVITY_AUTO for which pango_gravity_get_for_matrix() is used
1072 to return the gravity from the current context matrix."
1073               version="1.16">
1074         <return-value transfer-ownership="full">
1075           <type name="Gravity" c:type="PangoGravity"/>
1076         </return-value>
1077       </method>
1078       <method name="set_gravity_hint"
1079               c:identifier="pango_context_set_gravity_hint"
1080               doc="Sets the gravity hint for the context.
1081 The gravity hint is used in laying vertical text out, and is only relevant
1082 if gravity of the context as returned by pango_context_get_gravity()
1083 is set %PANGO_GRAVITY_EAST or %PANGO_GRAVITY_WEST."
1084               version="1.16">
1085         <return-value transfer-ownership="none">
1086           <type name="none" c:type="void"/>
1087         </return-value>
1088         <parameters>
1089           <parameter name="hint" transfer-ownership="none">
1090             <type name="GravityHint" c:type="PangoGravityHint"/>
1091           </parameter>
1092         </parameters>
1093       </method>
1094       <method name="get_gravity_hint"
1095               c:identifier="pango_context_get_gravity_hint"
1096               doc="Retrieves the gravity hint for the context. See
1097 pango_context_set_gravity_hint() for details."
1098               version="1.16">
1099         <return-value transfer-ownership="full">
1100           <type name="GravityHint" c:type="PangoGravityHint"/>
1101         </return-value>
1102       </method>
1103       <method name="set_matrix"
1104               c:identifier="pango_context_set_matrix"
1105               doc="(No matrix set is the same as setting the identity matrix.)
1106 Sets the transformation matrix that will be applied when rendering
1107 with this context. Note that reported metrics are in the user space
1108 coordinates before the application of the matrix, not device-space
1109 coordinates after the application of the matrix. So, they don&apos;t scale
1110 with the matrix, though they may change slightly for different
1111 matrices, depending on how the text is fit to the pixel grid."
1112               version="1.6">
1113         <return-value transfer-ownership="none">
1114           <type name="none" c:type="void"/>
1115         </return-value>
1116         <parameters>
1117           <parameter name="matrix" transfer-ownership="none">
1118             <type name="Matrix" c:type="PangoMatrix*"/>
1119           </parameter>
1120         </parameters>
1121       </method>
1122       <method name="get_matrix"
1123               c:identifier="pango_context_get_matrix"
1124               doc="Gets the transformation matrix that will be applied when
1125 rendering with this context. See pango_context_set_matrix().
1126 (which is the same as the identity matrix). The returned
1127 matrix is owned by Pango and must not be modified or
1128 freed."
1129               version="1.6">
1130         <return-value transfer-ownership="none">
1131           <type name="Matrix" c:type="PangoMatrix*"/>
1132         </return-value>
1133       </method>
1134     </class>
1135     <record name="ContextClass"
1136             c:type="PangoContextClass"
1137             glib:is-gtype-struct-for="Context">
1138     </record>
1139     <record name="Coverage" c:type="PangoCoverage">
1140       <constructor name="new"
1141                    c:identifier="pango_coverage_new"
1142                    doc="Create a new #PangoCoverage
1143 initialized to %PANGO_COVERAGE_NONE
1144 with a reference count of one, which
1145 should be freed with pango_coverage_unref().">
1146         <return-value transfer-ownership="full">
1147           <type name="Coverage" c:type="PangoCoverage*"/>
1148         </return-value>
1149       </constructor>
1150       <method name="ref"
1151               c:identifier="pango_coverage_ref"
1152               doc="Increase the reference count on the #PangoCoverage by one">
1153         <return-value transfer-ownership="full">
1154           <type name="Coverage" c:type="PangoCoverage*"/>
1155         </return-value>
1156       </method>
1157       <method name="unref"
1158               c:identifier="pango_coverage_unref"
1159               doc="Decrease the reference count on the #PangoCoverage by one.
1160 If the result is zero, free the coverage and all associated memory.">
1161         <return-value transfer-ownership="none">
1162           <type name="none" c:type="void"/>
1163         </return-value>
1164       </method>
1165       <method name="copy"
1166               c:identifier="pango_coverage_copy"
1167               doc="Copy an existing #PangoCoverage. (This function may now be unnecessary
1168 since we refcount the structure. File a bug if you use it.)
1169 with a reference count of one, which
1170 should be freed with pango_coverage_unref().">
1171         <return-value transfer-ownership="full">
1172           <type name="Coverage" c:type="PangoCoverage*"/>
1173         </return-value>
1174       </method>
1175       <method name="get"
1176               c:identifier="pango_coverage_get"
1177               doc="Determine whether a particular index is covered by @coverage">
1178         <return-value transfer-ownership="full">
1179           <type name="CoverageLevel" c:type="PangoCoverageLevel"/>
1180         </return-value>
1181         <parameters>
1182           <parameter name="index_" transfer-ownership="none">
1183             <type name="int" c:type="int"/>
1184           </parameter>
1185         </parameters>
1186       </method>
1187       <method name="set"
1188               c:identifier="pango_coverage_set"
1189               doc="Modify a particular index within @coverage">
1190         <return-value transfer-ownership="none">
1191           <type name="none" c:type="void"/>
1192         </return-value>
1193         <parameters>
1194           <parameter name="index_" transfer-ownership="none">
1195             <type name="int" c:type="int"/>
1196           </parameter>
1197           <parameter name="level" transfer-ownership="none">
1198             <type name="CoverageLevel" c:type="PangoCoverageLevel"/>
1199           </parameter>
1200         </parameters>
1201       </method>
1202       <method name="max"
1203               c:identifier="pango_coverage_max"
1204               doc="Set the coverage for each index in @coverage to be the max (better)
1205 value of the current coverage for the index and the coverage for
1206 the corresponding index in @other.">
1207         <return-value transfer-ownership="none">
1208           <type name="none" c:type="void"/>
1209         </return-value>
1210         <parameters>
1211           <parameter name="other" transfer-ownership="none">
1212             <type name="Coverage" c:type="PangoCoverage*"/>
1213           </parameter>
1214         </parameters>
1215       </method>
1216       <method name="to_bytes"
1217               c:identifier="pango_coverage_to_bytes"
1218               doc="Convert a #PangoCoverage structure into a flat binary format">
1219         <return-value transfer-ownership="none">
1220           <type name="none" c:type="void"/>
1221         </return-value>
1222         <parameters>
1223           <parameter name="bytes" direction="out" transfer-ownership="full">
1224             <type name="uint8" c:type="guchar**"/>
1225           </parameter>
1226           <parameter name="n_bytes" direction="out" transfer-ownership="full">
1227             <type name="int" c:type="int*"/>
1228           </parameter>
1229         </parameters>
1230       </method>
1231     </record>
1232     <enumeration name="CoverageLevel"
1233                  glib:type-name="PangoCoverageLevel"
1234                  glib:get-type="pango_coverage_level_get_type"
1235                  c:type="PangoCoverageLevel">
1236       <member name="none"
1237               value="0"
1238               c:identifier="PANGO_COVERAGE_NONE"
1239               glib:nick="none"/>
1240       <member name="fallback"
1241               value="1"
1242               c:identifier="PANGO_COVERAGE_FALLBACK"
1243               glib:nick="fallback"/>
1244       <member name="approximate"
1245               value="2"
1246               c:identifier="PANGO_COVERAGE_APPROXIMATE"
1247               glib:nick="approximate"/>
1248       <member name="exact"
1249               value="3"
1250               c:identifier="PANGO_COVERAGE_EXACT"
1251               glib:nick="exact"/>
1252     </enumeration>
1253     <enumeration name="Direction"
1254                  doc="same as %PANGO_DIRECTION_RTL.
1255 same as %PANGO_DIRECTION_LTR
1256 The #PangoDirection type represents a direction in the
1257 Unicode bidirectional algorithm; not every value in this
1258 enumeration makes sense for every usage of #PangoDirection;
1259 for example, the return value of pango_unichar_direction()
1260 and pango_find_base_dir() cannot be %PANGO_DIRECTION_WEAK_LTR
1261 or %PANGO_DIRECTION_WEAK_RTL, since every character is either
1262 neutral or has a strong direction; on the other hand
1263 %PANGO_DIRECTION_NEUTRAL doesn&apos;t make sense to pass
1264 to pango_itemize_with_base_dir().
1265 The %PANGO_DIRECTION_TTB_LTR, %PANGO_DIRECTION_TTB_RTL
1266 values come from an earlier interpretation of this
1267 enumeration as the writing direction of a block of
1268 text and are no longer used; See #PangoGravity for how
1269 vertical text is handled in Pango."
1270                  glib:type-name="PangoDirection"
1271                  glib:get-type="pango_direction_get_type"
1272                  c:type="PangoDirection">
1273       <member name="ltr"
1274               value="0"
1275               c:identifier="PANGO_DIRECTION_LTR"
1276               glib:nick="ltr"/>
1277       <member name="rtl"
1278               value="1"
1279               c:identifier="PANGO_DIRECTION_RTL"
1280               glib:nick="rtl"/>
1281       <member name="ttb_ltr"
1282               value="2"
1283               c:identifier="PANGO_DIRECTION_TTB_LTR"
1284               glib:nick="ttb-ltr"/>
1285       <member name="ttb_rtl"
1286               value="3"
1287               c:identifier="PANGO_DIRECTION_TTB_RTL"
1288               glib:nick="ttb-rtl"/>
1289       <member name="weak_ltr"
1290               value="4"
1291               c:identifier="PANGO_DIRECTION_WEAK_LTR"
1292               glib:nick="weak-ltr"/>
1293       <member name="weak_rtl"
1294               value="5"
1295               c:identifier="PANGO_DIRECTION_WEAK_RTL"
1296               glib:nick="weak-rtl"/>
1297       <member name="neutral"
1298               value="6"
1299               c:identifier="PANGO_DIRECTION_NEUTRAL"
1300               glib:nick="neutral"/>
1301     </enumeration>
1302     <constant name="ENGINE_TYPE_LANG" value="PangoEngineLang">
1303       <type name="utf8"/>
1304     </constant>
1305     <constant name="ENGINE_TYPE_SHAPE" value="PangoEngineShape">
1306       <type name="utf8"/>
1307     </constant>
1308     <enumeration name="EllipsizeMode"
1309                  glib:type-name="PangoEllipsizeMode"
1310                  glib:get-type="pango_ellipsize_mode_get_type"
1311                  c:type="PangoEllipsizeMode">
1312       <member name="none"
1313               value="0"
1314               c:identifier="PANGO_ELLIPSIZE_NONE"
1315               glib:nick="none"/>
1316       <member name="start"
1317               value="1"
1318               c:identifier="PANGO_ELLIPSIZE_START"
1319               glib:nick="start"/>
1320       <member name="middle"
1321               value="2"
1322               c:identifier="PANGO_ELLIPSIZE_MIDDLE"
1323               glib:nick="middle"/>
1324       <member name="end"
1325               value="3"
1326               c:identifier="PANGO_ELLIPSIZE_END"
1327               glib:nick="end"/>
1328     </enumeration>
1329     <record name="EngineLang" c:type="PangoEngineLang">
1330     </record>
1331     <record name="EngineShape" c:type="PangoEngineShape">
1332     </record>
1333     <class name="Font"
1334            c:type="PangoFont"
1335            parent="GObject.Object"
1336            abstract="1"
1337            glib:type-name="PangoFont"
1338            glib:get-type="pango_font_get_type">
1339       <function name="description_from_string"
1340                 c:identifier="pango_font_description_from_string"
1341                 doc="Creates a new font description from a string representation in the
1342 form &quot;[FAMILY-LIST] [STYLE-OPTIONS] [SIZE]&quot;, where FAMILY-LIST is a
1343 comma separated list of families optionally terminated by a comma,
1344 STYLE_OPTIONS is a whitespace separated list of words where each WORD
1345 describes one of style, variant, weight, stretch, or gravity, and SIZE
1346 is a decimal number (size in points) or optionally followed by the
1347 unit modifier &quot;px&quot; for absolute size. Any one of the options may
1348 be absent.  If FAMILY-LIST is absent, then the family_name field of
1349 the resulting font description will be initialized to %NULL.  If
1350 STYLE-OPTIONS is missing, then all style options will be set to the
1351 default values. If SIZE is missing, the size in the resulting font
1352 description will be set to 0.">
1353         <return-value transfer-ownership="full">
1354           <type name="FontDescription" c:type="PangoFontDescription*"/>
1355         </return-value>
1356         <parameters>
1357           <parameter name="str" transfer-ownership="none">
1358             <type name="utf8" c:type="char*"/>
1359           </parameter>
1360         </parameters>
1361       </function>
1362       <method name="describe"
1363               c:identifier="pango_font_describe"
1364               doc="Returns a description of the font, with font size set in points.
1365 Use pango_font_describe_with_absolute_size() if you want the font
1366 size in device units.">
1367         <return-value transfer-ownership="full">
1368           <type name="FontDescription" c:type="PangoFontDescription*"/>
1369         </return-value>
1370       </method>
1371       <method name="describe_with_absolute_size"
1372               c:identifier="pango_font_describe_with_absolute_size"
1373               doc="Returns a description of the font, with absolute font size set
1374 (in device units). Use pango_font_describe() if you want the font
1375 size in points."
1376               version="1.14">
1377         <return-value transfer-ownership="full">
1378           <type name="FontDescription" c:type="PangoFontDescription*"/>
1379         </return-value>
1380       </method>
1381       <method name="get_coverage"
1382               c:identifier="pango_font_get_coverage"
1383               doc="Computes the coverage map for a given font and language tag.">
1384         <return-value transfer-ownership="full">
1385           <type name="Coverage" c:type="PangoCoverage*"/>
1386         </return-value>
1387         <parameters>
1388           <parameter name="language" transfer-ownership="none">
1389             <type name="Language" c:type="PangoLanguage*"/>
1390           </parameter>
1391         </parameters>
1392       </method>
1393       <method name="find_shaper"
1394               c:identifier="pango_font_find_shaper"
1395               doc="Finds the best matching shaper for a font for a particular
1396 language tag and character point.">
1397         <return-value transfer-ownership="full">
1398           <type name="EngineShape" c:type="PangoEngineShape*"/>
1399         </return-value>
1400         <parameters>
1401           <parameter name="language" transfer-ownership="none">
1402             <type name="Language" c:type="PangoLanguage*"/>
1403           </parameter>
1404           <parameter name="ch" transfer-ownership="none">
1405             <type name="uint32" c:type="guint32"/>
1406           </parameter>
1407         </parameters>
1408       </method>
1409       <method name="get_metrics"
1410               c:identifier="pango_font_get_metrics"
1411               doc="for, or %NULL to indicate to get the metrics for the entire
1412 font.
1413 Gets overall metric information for a font. Since the metrics may be
1414 substantially different for different scripts, a language tag can
1415 be provided to indicate that the metrics should be retrieved that
1416 correspond to the script(s) used by that language.
1417 If @font is %NULL, this function gracefully sets some sane values in the
1418 output variables and returns.
1419 when finished using the object.">
1420         <return-value transfer-ownership="full">
1421           <type name="FontMetrics" c:type="PangoFontMetrics*"/>
1422         </return-value>
1423         <parameters>
1424           <parameter name="language" transfer-ownership="none">
1425             <type name="Language" c:type="PangoLanguage*"/>
1426           </parameter>
1427         </parameters>
1428       </method>
1429       <method name="get_glyph_extents"
1430               c:identifier="pango_font_get_glyph_extents"
1431               doc="or %NULL to indicate that the result is not needed.
1432 or %NULL to indicate that the result is not needed.
1433 Gets the logical and ink extents of a glyph within a font. The
1434 coordinate system for each rectangle has its origin at the
1435 base line and horizontal origin of the character with increasing
1436 coordinates extending to the right and down. The macros PANGO_ASCENT(),
1437 PANGO_DESCENT(), PANGO_LBEARING(), and PANGO_RBEARING() can be used to convert
1438 from the extents rectangle to more traditional font metrics. The units
1439 of the rectangles are in 1/PANGO_SCALE of a device unit.
1440 If @font is %NULL, this function gracefully sets some sane values in the
1441 output variables and returns.">
1442         <return-value transfer-ownership="none">
1443           <type name="none" c:type="void"/>
1444         </return-value>
1445         <parameters>
1446           <parameter name="glyph" transfer-ownership="none">
1447             <type name="Glyph" c:type="PangoGlyph"/>
1448           </parameter>
1449           <parameter name="ink_rect" transfer-ownership="none">
1450             <type name="Rectangle" c:type="PangoRectangle*"/>
1451           </parameter>
1452           <parameter name="logical_rect" transfer-ownership="none">
1453             <type name="Rectangle" c:type="PangoRectangle*"/>
1454           </parameter>
1455         </parameters>
1456       </method>
1457       <method name="get_font_map"
1458               c:identifier="pango_font_get_font_map"
1459               doc="Gets the font map for which the font was created.
1460 Note that the font maintains a &lt;firstterm&gt;weak&lt;/firstterm&gt; reference
1461 to the font map, so if all references to font map are dropped, the font
1462 map will be finalized even if there are fonts created with the font
1463 map that are still alive.  In that case this function will return %NULL.
1464 It is the responsibility of the user to ensure that the font map is kept
1465 alive.  In most uses this is not an issue as a #PangoContext holds
1466 a reference to the font map."
1467               version="1.10">
1468         <return-value transfer-ownership="full">
1469           <type name="FontMap" c:type="PangoFontMap*"/>
1470         </return-value>
1471       </method>
1472     </class>
1473     <record name="FontDescription"
1474             c:type="PangoFontDescription"
1475             glib:type-name="PangoFontDescription"
1476             glib:get-type="pango_font_description_get_type">
1477       <constructor name="new"
1478                    c:identifier="pango_font_description_new"
1479                    doc="Creates a new font description structure with all fields unset.
1480 should be freed using pango_font_description_free().">
1481         <return-value transfer-ownership="full">
1482           <type name="FontDescription" c:type="PangoFontDescription*"/>
1483         </return-value>
1484       </constructor>
1485       <method name="copy"
1486               c:identifier="pango_font_description_copy"
1487               doc="Make a copy of a #PangoFontDescription.
1488 be freed with pango_font_description_free(), or %NULL
1489 if @desc was %NULL.">
1490         <return-value transfer-ownership="full">
1491           <type name="FontDescription" c:type="PangoFontDescription*"/>
1492         </return-value>
1493       </method>
1494       <method name="copy_static"
1495               c:identifier="pango_font_description_copy_static"
1496               doc="Like pango_font_description_copy(), but only a shallow copy is made
1497 of the family name and other allocated fields. The result can only
1498 be used until @desc is modified or freed. This is meant to be used
1499 when the copy is only needed temporarily.
1500 be freed with pango_font_description_free(), or %NULL
1501 if @desc was %NULL.">
1502         <return-value transfer-ownership="full">
1503           <type name="FontDescription" c:type="PangoFontDescription*"/>
1504         </return-value>
1505       </method>
1506       <method name="hash"
1507               c:identifier="pango_font_description_hash"
1508               doc="Computes a hash of a #PangoFontDescription structure suitable
1509 to be used, for example, as an argument to g_hash_table_new().
1510 The hash value is independent of @desc-&gt;mask.">
1511         <return-value transfer-ownership="none">
1512           <type name="uint" c:type="guint"/>
1513         </return-value>
1514       </method>
1515       <method name="equal"
1516               c:identifier="pango_font_description_equal"
1517               doc="Compares two font descriptions for equality. Two font descriptions
1518 are considered equal if the fonts they describe are provably identical.
1519 This means that their masks do not have to match, as long as other fields
1520 are all the same. (Two font descriptions may result in identical fonts
1521 being loaded, but still compare %FALSE.)
1522 %FALSE otherwise.">
1523         <return-value transfer-ownership="none">
1524           <type name="boolean" c:type="gboolean"/>
1525         </return-value>
1526         <parameters>
1527           <parameter name="desc2" transfer-ownership="none">
1528             <type name="FontDescription" c:type="PangoFontDescription*"/>
1529           </parameter>
1530         </parameters>
1531       </method>
1532       <method name="free"
1533               c:identifier="pango_font_description_free"
1534               doc="Frees a font description.">
1535         <return-value transfer-ownership="none">
1536           <type name="none" c:type="void"/>
1537         </return-value>
1538       </method>
1539       <method name="_free"
1540               c:identifier="pango_font_descriptions_free"
1541               doc="Frees an array of font descriptions.">
1542         <return-value transfer-ownership="none">
1543           <type name="none" c:type="void"/>
1544         </return-value>
1545         <parameters>
1546           <parameter name="n_descs" transfer-ownership="none">
1547             <type name="int" c:type="int"/>
1548           </parameter>
1549         </parameters>
1550       </method>
1551       <method name="set_family"
1552               c:identifier="pango_font_description_set_family"
1553               doc="Sets the family name field of a font description. The family
1554 name represents a family of related font styles, and will
1555 resolve to a particular #PangoFontFamily. In some uses of
1556 #PangoFontDescription, it is also possible to use a comma
1557 separated list of family names for this field.">
1558         <return-value transfer-ownership="none">
1559           <type name="none" c:type="void"/>
1560         </return-value>
1561         <parameters>
1562           <parameter name="family" transfer-ownership="none">
1563             <type name="utf8" c:type="char*"/>
1564           </parameter>
1565         </parameters>
1566       </method>
1567       <method name="set_family_static"
1568               c:identifier="pango_font_description_set_family_static"
1569               doc="Like pango_font_description_set_family(), except that no
1570 copy of @family is made. The caller must make sure that the
1571 string passed in stays around until @desc has been freed
1572 or the name is set again. This function can be used if
1573 if @desc is only needed temporarily.">
1574         <return-value transfer-ownership="none">
1575           <type name="none" c:type="void"/>
1576         </return-value>
1577         <parameters>
1578           <parameter name="family" transfer-ownership="none">
1579             <type name="utf8" c:type="char*"/>
1580           </parameter>
1581         </parameters>
1582       </method>
1583       <method name="get_family"
1584               c:identifier="pango_font_description_get_family"
1585               doc="Gets the family name field of a font description. See
1586 pango_font_description_set_family().
1587 %NULL if not previously set.  This has the same life-time
1588 as the font description itself and should not be freed.">
1589         <return-value transfer-ownership="none">
1590           <type name="utf8" c:type="char*"/>
1591         </return-value>
1592       </method>
1593       <method name="set_style"
1594               c:identifier="pango_font_description_set_style"
1595               doc="Sets the style field of a #PangoFontDescription. The
1596 #PangoStyle enumeration describes whether the font is slanted and
1597 the manner in which it is slanted; it can be either
1598 #PANGO_STYLE_NORMAL, #PANGO_STYLE_ITALIC, or #PANGO_STYLE_OBLIQUE.
1599 Most fonts will either have a italic style or an oblique
1600 style, but not both, and font matching in Pango will
1601 match italic specifications with oblique fonts and vice-versa
1602 if an exact match is not found.">
1603         <return-value transfer-ownership="none">
1604           <type name="none" c:type="void"/>
1605         </return-value>
1606         <parameters>
1607           <parameter name="style" transfer-ownership="none">
1608             <type name="Style" c:type="PangoStyle"/>
1609           </parameter>
1610         </parameters>
1611       </method>
1612       <method name="get_style"
1613               c:identifier="pango_font_description_get_style"
1614               doc="Gets the style field of a #PangoFontDescription. See
1615 pango_font_description_set_style().
1616 Use pango_font_description_get_set_fields() to find out if
1617 the field was explicitly set or not.">
1618         <return-value transfer-ownership="full">
1619           <type name="Style" c:type="PangoStyle"/>
1620         </return-value>
1621       </method>
1622       <method name="set_variant"
1623               c:identifier="pango_font_description_set_variant"
1624               doc="Sets the variant field of a font description. The #PangoVariant
1625 can either be %PANGO_VARIANT_NORMAL or %PANGO_VARIANT_SMALL_CAPS.">
1626         <return-value transfer-ownership="none">
1627           <type name="none" c:type="void"/>
1628         </return-value>
1629         <parameters>
1630           <parameter name="variant" transfer-ownership="none">
1631             <type name="Variant" c:type="PangoVariant"/>
1632           </parameter>
1633         </parameters>
1634       </method>
1635       <method name="get_variant"
1636               c:identifier="pango_font_description_get_variant"
1637               doc="Gets the variant field of a #PangoFontDescription. See
1638 pango_font_description_set_variant().
1639 pango_font_description_get_set_fields() to find out if
1640 the field was explicitly set or not.">
1641         <return-value transfer-ownership="full">
1642           <type name="Variant" c:type="PangoVariant"/>
1643         </return-value>
1644       </method>
1645       <method name="set_weight"
1646               c:identifier="pango_font_description_set_weight"
1647               doc="Sets the weight field of a font description. The weight field
1648 specifies how bold or light the font should be. In addition
1649 to the values of the #PangoWeight enumeration, other intermediate
1650 numeric values are possible.">
1651         <return-value transfer-ownership="none">
1652           <type name="none" c:type="void"/>
1653         </return-value>
1654         <parameters>
1655           <parameter name="weight" transfer-ownership="none">
1656             <type name="Weight" c:type="PangoWeight"/>
1657           </parameter>
1658         </parameters>
1659       </method>
1660       <method name="get_weight"
1661               c:identifier="pango_font_description_get_weight"
1662               doc="Gets the weight field of a font description. See
1663 pango_font_description_set_weight().
1664 pango_font_description_get_set_fields() to find out if
1665 the field was explicitly set or not.">
1666         <return-value transfer-ownership="full">
1667           <type name="Weight" c:type="PangoWeight"/>
1668         </return-value>
1669       </method>
1670       <method name="set_stretch"
1671               c:identifier="pango_font_description_set_stretch"
1672               doc="Sets the stretch field of a font description. The stretch field
1673 specifies how narrow or wide the font should be.">
1674         <return-value transfer-ownership="none">
1675           <type name="none" c:type="void"/>
1676         </return-value>
1677         <parameters>
1678           <parameter name="stretch" transfer-ownership="none">
1679             <type name="Stretch" c:type="PangoStretch"/>
1680           </parameter>
1681         </parameters>
1682       </method>
1683       <method name="get_stretch"
1684               c:identifier="pango_font_description_get_stretch"
1685               doc="Gets the stretch field of a font description.
1686 See pango_font_description_set_stretch().
1687 pango_font_description_get_set_fields() to find out if
1688 the field was explicitly set or not.">
1689         <return-value transfer-ownership="full">
1690           <type name="Stretch" c:type="PangoStretch"/>
1691         </return-value>
1692       </method>
1693       <method name="set_size"
1694               c:identifier="pango_font_description_set_size"
1695               doc="a @size value of 10 * PANGO_SCALE is a 10 point font. The conversion
1696 factor between points and device units depends on system configuration
1697 and the output device. For screen display, a logical DPI of 96 is
1698 common, in which case a 10 point font corresponds to a 10 * (96 / 72) = 13.3
1699 pixel font. Use pango_font_description_set_absolute_size() if you need
1700 a particular size in device units.
1701 Sets the size field of a font description in fractional points. This is mutually
1702 exclusive with pango_font_description_set_absolute_size().">
1703         <return-value transfer-ownership="none">
1704           <type name="none" c:type="void"/>
1705         </return-value>
1706         <parameters>
1707           <parameter name="size" transfer-ownership="none">
1708             <type name="int" c:type="gint"/>
1709           </parameter>
1710         </parameters>
1711       </method>
1712       <method name="get_size"
1713               c:identifier="pango_font_description_get_size"
1714               doc="Gets the size field of a font description.
1715 See pango_font_description_set_size().
1716 You must call pango_font_description_get_size_is_absolute()
1717 to find out which is the case. Returns 0 if the size field has not
1718 previously been set or it has been set to 0 explicitly.
1719 Use pango_font_description_get_set_fields() to
1720 find out if the field was explicitly set or not.">
1721         <return-value transfer-ownership="none">
1722           <type name="int" c:type="gint"/>
1723         </return-value>
1724       </method>
1725       <method name="set_absolute_size"
1726               c:identifier="pango_font_description_set_absolute_size"
1727               doc="device unit. For an output backend where a device unit is a pixel, a @size
1728 value of 10 * PANGO_SCALE gives a 10 pixel font.
1729 Sets the size field of a font description, in device units. This is mutually
1730 exclusive with pango_font_description_set_size() which sets the font size
1731 in points."
1732               version="1.8">
1733         <return-value transfer-ownership="none">
1734           <type name="none" c:type="void"/>
1735         </return-value>
1736         <parameters>
1737           <parameter name="size" transfer-ownership="none">
1738             <type name="double" c:type="double"/>
1739           </parameter>
1740         </parameters>
1741       </method>
1742       <method name="get_size_is_absolute"
1743               c:identifier="pango_font_description_get_size_is_absolute"
1744               doc="Determines whether the size of the font is in points (not absolute) or device units (absolute).
1745 See pango_font_description_set_size() and pango_font_description_set_absolute_size().
1746 points or device units.  Use pango_font_description_get_set_fields() to
1747 find out if the size field of the font description was explicitly set or not."
1748               version="1.8">
1749         <return-value transfer-ownership="none">
1750           <type name="boolean" c:type="gboolean"/>
1751         </return-value>
1752       </method>
1753       <method name="set_gravity"
1754               c:identifier="pango_font_description_set_gravity"
1755               doc="Sets the gravity field of a font description. The gravity field
1756 specifies how the glyphs should be rotated.  If @gravity is
1757 %PANGO_GRAVITY_AUTO, this actually unsets the gravity mask on
1758 the font description.
1759 This function is seldom useful to the user.  Gravity should normally
1760 be set on a #PangoContext."
1761               version="1.16">
1762         <return-value transfer-ownership="none">
1763           <type name="none" c:type="void"/>
1764         </return-value>
1765         <parameters>
1766           <parameter name="gravity" transfer-ownership="none">
1767             <type name="Gravity" c:type="PangoGravity"/>
1768           </parameter>
1769         </parameters>
1770       </method>
1771       <method name="get_gravity"
1772               c:identifier="pango_font_description_get_gravity"
1773               doc="Gets the gravity field of a font description. See
1774 pango_font_description_set_gravity().
1775 pango_font_description_get_set_fields() to find out if
1776 the field was explicitly set or not."
1777               version="1.16">
1778         <return-value transfer-ownership="full">
1779           <type name="Gravity" c:type="PangoGravity"/>
1780         </return-value>
1781       </method>
1782       <method name="get_set_fields"
1783               c:identifier="pango_font_description_get_set_fields"
1784               doc="Determines which fields in a font description have been set.
1785 fields in @desc that have been set.">
1786         <return-value transfer-ownership="full">
1787           <type name="FontMask" c:type="PangoFontMask"/>
1788         </return-value>
1789       </method>
1790       <method name="unset_fields"
1791               c:identifier="pango_font_description_unset_fields"
1792               doc="Unsets some of the fields in a #PangoFontDescription.  The unset
1793 fields will get back to their default values.">
1794         <return-value transfer-ownership="none">
1795           <type name="none" c:type="void"/>
1796         </return-value>
1797         <parameters>
1798           <parameter name="to_unset" transfer-ownership="none">
1799             <type name="FontMask" c:type="PangoFontMask"/>
1800           </parameter>
1801         </parameters>
1802       </method>
1803       <method name="merge"
1804               c:identifier="pango_font_description_merge"
1805               doc="corresponding values from @desc_to_merge, even if they
1806 are already exist.
1807 Merges the fields that are set in @desc_to_merge into the fields in
1808 are not already set are affected. If %TRUE, then fields that are
1809 already set will be replaced as well.
1810 If @desc_to_merge is %NULL, this function performs nothing.">
1811         <return-value transfer-ownership="none">
1812           <type name="none" c:type="void"/>
1813         </return-value>
1814         <parameters>
1815           <parameter name="desc_to_merge" transfer-ownership="none">
1816             <type name="FontDescription" c:type="PangoFontDescription*"/>
1817           </parameter>
1818           <parameter name="replace_existing" transfer-ownership="none">
1819             <type name="boolean" c:type="gboolean"/>
1820           </parameter>
1821         </parameters>
1822       </method>
1823       <method name="merge_static"
1824               c:identifier="pango_font_description_merge_static"
1825               doc="corresponding values from @desc_to_merge, even if they
1826 are already exist.
1827 Like pango_font_description_merge(), but only a shallow copy is made
1828 of the family name and other allocated fields. @desc can only be
1829 used until @desc_to_merge is modified or freed. This is meant
1830 to be used when the merged font description is only needed temporarily.">
1831         <return-value transfer-ownership="none">
1832           <type name="none" c:type="void"/>
1833         </return-value>
1834         <parameters>
1835           <parameter name="desc_to_merge" transfer-ownership="none">
1836             <type name="FontDescription" c:type="PangoFontDescription*"/>
1837           </parameter>
1838           <parameter name="replace_existing" transfer-ownership="none">
1839             <type name="boolean" c:type="gboolean"/>
1840           </parameter>
1841         </parameters>
1842       </method>
1843       <method name="better_match"
1844               c:identifier="pango_font_description_better_match"
1845               doc="Determines if the style attributes of @new_match are a closer match
1846 for @desc than those of @old_match are, or if @old_match is %NULL,
1847 determines if @new_match is a match at all.
1848 Approximate matching is done for
1849 weight and style; other style attributes must match exactly.
1850 Style attributes are all attributes other than family and size-related
1851 attributes.  Approximate matching for style considers PANGO_STYLE_OBLIQUE
1852 and PANGO_STYLE_ITALIC as matches, but not as good a match as when the
1853 styles are equal.
1854 Note that @old_match must match @desc.">
1855         <return-value transfer-ownership="none">
1856           <type name="boolean" c:type="gboolean"/>
1857         </return-value>
1858         <parameters>
1859           <parameter name="old_match" transfer-ownership="none">
1860             <type name="FontDescription" c:type="PangoFontDescription*"/>
1861           </parameter>
1862           <parameter name="new_match" transfer-ownership="none">
1863             <type name="FontDescription" c:type="PangoFontDescription*"/>
1864           </parameter>
1865         </parameters>
1866       </method>
1867       <method name="to_string"
1868               c:identifier="pango_font_description_to_string"
1869               doc="Creates a string representation of a font description. See
1870 pango_font_description_from_string() for a description of the
1871 format of the string representation. The family list in the
1872 string description will only have a terminating comma if the
1873 last word of the list is a valid style option.">
1874         <return-value transfer-ownership="full">
1875           <type name="utf8" c:type="char*"/>
1876         </return-value>
1877       </method>
1878       <method name="to_filename"
1879               c:identifier="pango_font_description_to_filename"
1880               doc="Creates a filename representation of a font description. The
1881 filename is identical to the result from calling
1882 pango_font_description_to_string(), but with underscores instead of
1883 characters that are untypical in filenames, and in lower case only.">
1884         <return-value transfer-ownership="full">
1885           <type name="utf8" c:type="char*"/>
1886         </return-value>
1887       </method>
1888     </record>
1889     <class name="FontFace"
1890            c:type="PangoFontFace"
1891            parent="GObject.Object"
1892            abstract="1"
1893            glib:type-name="PangoFontFace"
1894            glib:get-type="pango_font_face_get_type">
1895       <method name="describe"
1896               c:identifier="pango_font_face_describe"
1897               doc="Returns the family, style, variant, weight and stretch of
1898 a #PangoFontFace. The size field of the resulting font description
1899 will be unset.
1900 holding the description of the face. Use pango_font_description_free()
1901 to free the result.">
1902         <return-value transfer-ownership="full">
1903           <type name="FontDescription" c:type="PangoFontDescription*"/>
1904         </return-value>
1905       </method>
1906       <method name="get_face_name"
1907               c:identifier="pango_font_face_get_face_name"
1908               doc="Gets a name representing the style of this face among the
1909 different faces in the #PangoFontFamily for the face. This
1910 name is unique among all faces in the family and is suitable
1911 for displaying to users.
1912 owned by the face object and must not be modified or freed.">
1913         <return-value transfer-ownership="none">
1914           <type name="utf8" c:type="char*"/>
1915         </return-value>
1916       </method>
1917       <method name="list_sizes"
1918               c:identifier="pango_font_face_list_sizes"
1919               doc="should be freed with g_free().
1920 List the available sizes for a font. This is only applicable to bitmap
1921 fonts. For scalable fonts, stores %NULL at the location pointed to by
1922 are in Pango units and are sorted in ascending order."
1923               version="1.4">
1924         <return-value transfer-ownership="none">
1925           <type name="none" c:type="void"/>
1926         </return-value>
1927         <parameters>
1928           <parameter name="sizes" direction="out" transfer-ownership="full">
1929             <type name="int" c:type="int**"/>
1930           </parameter>
1931           <parameter name="n_sizes" direction="out" transfer-ownership="full">
1932             <type name="int" c:type="int*"/>
1933           </parameter>
1934         </parameters>
1935       </method>
1936       <method name="is_synthesized"
1937               c:identifier="pango_font_face_is_synthesized"
1938               doc="Returns whether a #PangoFontFace is synthesized by the underlying
1939 font rendering engine from another face, perhaps by shearing, emboldening,
1940 or lightening it."
1941               version="1.18">
1942         <return-value transfer-ownership="none">
1943           <type name="boolean" c:type="gboolean"/>
1944         </return-value>
1945       </method>
1946     </class>
1947     <class name="FontFamily"
1948            c:type="PangoFontFamily"
1949            parent="GObject.Object"
1950            abstract="1"
1951            glib:type-name="PangoFontFamily"
1952            glib:get-type="pango_font_family_get_type">
1953       <method name="list_faces"
1954               c:identifier="pango_font_family_list_faces"
1955               doc="objects, or %NULL. This array should be freed with g_free()
1956 when it is no longer needed.
1957 Lists the different font faces that make up @family. The faces
1958 in a family share a common design, but differ in slant, weight,
1959 width and other aspects.">
1960         <return-value transfer-ownership="none">
1961           <type name="none" c:type="void"/>
1962         </return-value>
1963         <parameters>
1964           <parameter name="faces" transfer-ownership="none">
1965             <type name="FontFace" c:type="PangoFontFace***"/>
1966           </parameter>
1967           <parameter name="n_faces" direction="out" transfer-ownership="full">
1968             <type name="int" c:type="int*"/>
1969           </parameter>
1970         </parameters>
1971       </method>
1972       <method name="get_name"
1973               c:identifier="pango_font_family_get_name"
1974               doc="Gets the name of the family. The name is unique among all
1975 fonts for the font backend and can be used in a #PangoFontDescription
1976 to specify that a face from this family is desired.
1977 by the family object and must not be modified or freed.">
1978         <return-value transfer-ownership="none">
1979           <type name="utf8" c:type="char*"/>
1980         </return-value>
1981       </method>
1982       <method name="is_monospace"
1983               c:identifier="pango_font_family_is_monospace"
1984               doc="A monospace font is a font designed for text display where the the
1985 characters form a regular grid. For Western languages this would
1986 mean that the advance width of all characters are the same, but
1987 this categorization also includes Asian fonts which include
1988 g_unichar_iswide() returns a result that indicates whether a
1989 character is typically double-width in a monospace font.
1990 The best way to find out the grid-cell size is to call
1991 pango_font_metrics_get_approximate_digit_width(), since the results
1992 of pango_font_metrics_get_approximate_char_width() may be affected
1993 by double-width characters."
1994               version="1.4">
1995         <return-value transfer-ownership="none">
1996           <type name="boolean" c:type="gboolean"/>
1997         </return-value>
1998       </method>
1999     </class>
2000     <class name="FontMap"
2001            c:type="PangoFontMap"
2002            parent="GObject.Object"
2003            abstract="1"
2004            glib:type-name="PangoFontMap"
2005            glib:get-type="pango_font_map_get_type">
2006       <method name="create_context"
2007               c:identifier="pango_font_map_create_context"
2008               doc="Creates a #PangoContext connected to @fontmap.  This is equivalent
2009 to pango_context_new() followed by pango_context_set_font_map().
2010 If you are using Pango as part of a higher-level system,
2011 that system may have it&apos;s own way of create a #PangoContext.
2012 For instance, the GTK+ toolkit has, among others,
2013 gdk_pango_context_get_for_screen(), and
2014 gtk_widget_get_pango_context().  Use those instead.
2015 be freed with g_object_unref()."
2016               version="1.22">
2017         <return-value transfer-ownership="full">
2018           <type name="Context" c:type="PangoContext*"/>
2019         </return-value>
2020       </method>
2021       <method name="load_font"
2022               c:identifier="pango_font_map_load_font"
2023               doc="Load the font in the fontmap that is the closest match for @desc.">
2024         <return-value transfer-ownership="full">
2025           <type name="Font" c:type="PangoFont*"/>
2026         </return-value>
2027         <parameters>
2028           <parameter name="context" transfer-ownership="none">
2029             <type name="Context" c:type="PangoContext*"/>
2030           </parameter>
2031           <parameter name="desc" transfer-ownership="none">
2032             <type name="FontDescription" c:type="PangoFontDescription*"/>
2033           </parameter>
2034         </parameters>
2035       </method>
2036       <method name="load_fontset"
2037               c:identifier="pango_font_map_load_fontset"
2038               doc="Load a set of fonts in the fontmap that can be used to render
2039 a font matching @desc.">
2040         <return-value transfer-ownership="full">
2041           <type name="Fontset" c:type="PangoFontset*"/>
2042         </return-value>
2043         <parameters>
2044           <parameter name="context" transfer-ownership="none">
2045             <type name="Context" c:type="PangoContext*"/>
2046           </parameter>
2047           <parameter name="desc" transfer-ownership="none">
2048             <type name="FontDescription" c:type="PangoFontDescription*"/>
2049           </parameter>
2050           <parameter name="language" transfer-ownership="none">
2051             <type name="Language" c:type="PangoLanguage*"/>
2052           </parameter>
2053         </parameters>
2054       </method>
2055       <method name="list_families"
2056               c:identifier="pango_font_map_list_families"
2057               doc="This array should be freed with g_free().
2058 List all families for a fontmap.">
2059         <return-value transfer-ownership="none">
2060           <type name="none" c:type="void"/>
2061         </return-value>
2062         <parameters>
2063           <parameter name="families" transfer-ownership="none">
2064             <type name="FontFamily" c:type="PangoFontFamily***"/>
2065           </parameter>
2066           <parameter name="n_families"
2067                      direction="out"
2068                      transfer-ownership="full">
2069             <type name="int" c:type="int*"/>
2070           </parameter>
2071         </parameters>
2072       </method>
2073     </class>
2074     <bitfield name="FontMask"
2075               glib:type-name="PangoFontMask"
2076               glib:get-type="pango_font_mask_get_type"
2077               c:type="PangoFontMask">
2078       <member name="family"
2079               value="1"
2080               c:identifier="PANGO_FONT_MASK_FAMILY"
2081               glib:nick="family"/>
2082       <member name="style"
2083               value="2"
2084               c:identifier="PANGO_FONT_MASK_STYLE"
2085               glib:nick="style"/>
2086       <member name="variant"
2087               value="4"
2088               c:identifier="PANGO_FONT_MASK_VARIANT"
2089               glib:nick="variant"/>
2090       <member name="weight"
2091               value="8"
2092               c:identifier="PANGO_FONT_MASK_WEIGHT"
2093               glib:nick="weight"/>
2094       <member name="stretch"
2095               value="16"
2096               c:identifier="PANGO_FONT_MASK_STRETCH"
2097               glib:nick="stretch"/>
2098       <member name="size"
2099               value="32"
2100               c:identifier="PANGO_FONT_MASK_SIZE"
2101               glib:nick="size"/>
2102       <member name="gravity"
2103               value="64"
2104               c:identifier="PANGO_FONT_MASK_GRAVITY"
2105               glib:nick="gravity"/>
2106     </bitfield>
2107     <record name="FontMetrics"
2108             c:type="PangoFontMetrics"
2109             glib:type-name="PangoFontMetrics"
2110             glib:get-type="pango_font_metrics_get_type">
2111       <method name="ref"
2112               c:identifier="pango_font_metrics_ref"
2113               doc="Increase the reference count of a font metrics structure by one.">
2114         <return-value transfer-ownership="full">
2115           <type name="FontMetrics" c:type="PangoFontMetrics*"/>
2116         </return-value>
2117       </method>
2118       <method name="unref"
2119               c:identifier="pango_font_metrics_unref"
2120               doc="Decrease the reference count of a font metrics structure by one. If
2121 the result is zero, frees the structure and any associated
2122 memory.">
2123         <return-value transfer-ownership="none">
2124           <type name="none" c:type="void"/>
2125         </return-value>
2126       </method>
2127       <method name="get_ascent"
2128               c:identifier="pango_font_metrics_get_ascent"
2129               doc="Gets the ascent from a font metrics structure. The ascent is
2130 the distance from the baseline to the logical top of a line
2131 of text. (The logical top may be above or below the top of the
2132 actual drawn ink. It is necessary to lay out the text to figure
2133 where the ink will be.)">
2134         <return-value transfer-ownership="none">
2135           <type name="int" c:type="int"/>
2136         </return-value>
2137       </method>
2138       <method name="get_descent"
2139               c:identifier="pango_font_metrics_get_descent"
2140               doc="Gets the descent from a font metrics structure. The descent is
2141 the distance from the baseline to the logical bottom of a line
2142 of text. (The logical bottom may be above or below the bottom of the
2143 actual drawn ink. It is necessary to lay out the text to figure
2144 where the ink will be.)">
2145         <return-value transfer-ownership="none">
2146           <type name="int" c:type="int"/>
2147         </return-value>
2148       </method>
2149       <method name="get_approximate_char_width"
2150               c:identifier="pango_font_metrics_get_approximate_char_width"
2151               doc="Gets the approximate character width for a font metrics structure.
2152 This is merely a representative value useful, for example, for
2153 determining the initial size for a window. Actual characters in
2154 text will be wider and narrower than this.">
2155         <return-value transfer-ownership="none">
2156           <type name="int" c:type="int"/>
2157         </return-value>
2158       </method>
2159       <method name="get_approximate_digit_width"
2160               c:identifier="pango_font_metrics_get_approximate_digit_width"
2161               doc="Gets the approximate digit width for a font metrics structure.
2162 This is merely a representative value useful, for example, for
2163 determining the initial size for a window. Actual digits in
2164 text can be wider or narrower than this, though this value
2165 is generally somewhat more accurate than the result of
2166 pango_font_metrics_get_approximate_char_width() for digits.">
2167         <return-value transfer-ownership="none">
2168           <type name="int" c:type="int"/>
2169         </return-value>
2170       </method>
2171       <method name="get_underline_position"
2172               c:identifier="pango_font_metrics_get_underline_position"
2173               doc="Gets the suggested position to draw the underline.
2174 The value returned is the distance &lt;emphasis&gt;above&lt;/emphasis&gt; the
2175 baseline of the top of the underline. Since most fonts have
2176 underline positions beneath the baseline, this value is typically
2177 negative."
2178               version="1.6">
2179         <return-value transfer-ownership="none">
2180           <type name="int" c:type="int"/>
2181         </return-value>
2182       </method>
2183       <method name="get_underline_thickness"
2184               c:identifier="pango_font_metrics_get_underline_thickness"
2185               doc="Gets the suggested thickness to draw for the underline."
2186               version="1.6">
2187         <return-value transfer-ownership="none">
2188           <type name="int" c:type="int"/>
2189         </return-value>
2190       </method>
2191       <method name="get_strikethrough_position"
2192               c:identifier="pango_font_metrics_get_strikethrough_position"
2193               doc="Gets the suggested position to draw the strikethrough.
2194 The value returned is the distance &lt;emphasis&gt;above&lt;/emphasis&gt; the
2195 baseline of the top of the strikethrough."
2196               version="1.6">
2197         <return-value transfer-ownership="none">
2198           <type name="int" c:type="int"/>
2199         </return-value>
2200       </method>
2201       <method name="get_strikethrough_thickness"
2202               c:identifier="pango_font_metrics_get_strikethrough_thickness"
2203               doc="Gets the suggested thickness to draw for the strikethrough."
2204               version="1.6">
2205         <return-value transfer-ownership="none">
2206           <type name="int" c:type="int"/>
2207         </return-value>
2208       </method>
2209     </record>
2210     <class name="Fontset"
2211            c:type="PangoFontset"
2212            parent="GObject.Object"
2213            abstract="1"
2214            glib:type-name="PangoFontset"
2215            glib:get-type="pango_fontset_get_type">
2216       <method name="get_font"
2217               c:identifier="pango_fontset_get_font"
2218               doc="Returns the font in the fontset that contains the best glyph for the
2219 Unicode character @wc.
2220 with the font.">
2221         <return-value transfer-ownership="full">
2222           <type name="Font" c:type="PangoFont*"/>
2223         </return-value>
2224         <parameters>
2225           <parameter name="wc" transfer-ownership="none">
2226             <type name="uint" c:type="guint"/>
2227           </parameter>
2228         </parameters>
2229       </method>
2230       <method name="get_metrics"
2231               c:identifier="pango_fontset_get_metrics"
2232               doc="Get overall metric information for the fonts in the fontset.
2233 when finished using the object.">
2234         <return-value transfer-ownership="full">
2235           <type name="FontMetrics" c:type="PangoFontMetrics*"/>
2236         </return-value>
2237       </method>
2238       <method name="foreach"
2239               c:identifier="pango_fontset_foreach"
2240               doc="Iterates through all the fonts in a fontset, calling @func for
2241 each one. If @func returns %TRUE, that stops the iteration."
2242               version="1.4">
2243         <return-value transfer-ownership="none">
2244           <type name="none" c:type="void"/>
2245         </return-value>
2246         <parameters>
2247           <parameter name="func"
2248                      transfer-ownership="none"
2249                      scope="call"
2250                      closure="2">
2251             <type name="FontsetForeachFunc" c:type="PangoFontsetForeachFunc"/>
2252           </parameter>
2253           <parameter name="data" transfer-ownership="none">
2254             <type name="any" c:type="gpointer"/>
2255           </parameter>
2256         </parameters>
2257       </method>
2258     </class>
2259     <callback name="FontsetForeachFunc" c:type="PangoFontsetForeachFunc">
2260       <return-value transfer-ownership="none">
2261         <type name="boolean" c:type="gboolean"/>
2262       </return-value>
2263       <parameters>
2264         <parameter name="fontset" transfer-ownership="none">
2265           <type name="Fontset" c:type="PangoFontset*"/>
2266         </parameter>
2267         <parameter name="font" transfer-ownership="none">
2268           <type name="Font" c:type="PangoFont*"/>
2269         </parameter>
2270         <parameter name="data" transfer-ownership="none">
2271           <type name="any" c:type="gpointer"/>
2272         </parameter>
2273       </parameters>
2274     </callback>
2275     <record name="GlyphGeometry" c:type="PangoGlyphGeometry">
2276       <field name="width" writable="1">
2277         <type name="GlyphUnit" c:type="PangoGlyphUnit"/>
2278       </field>
2279       <field name="x_offset" writable="1">
2280         <type name="GlyphUnit" c:type="PangoGlyphUnit"/>
2281       </field>
2282       <field name="y_offset" writable="1">
2283         <type name="GlyphUnit" c:type="PangoGlyphUnit"/>
2284       </field>
2285     </record>
2286     <record name="GlyphInfo" c:type="PangoGlyphInfo">
2287       <field name="glyph" writable="1">
2288         <type name="Glyph" c:type="PangoGlyph"/>
2289       </field>
2290       <field name="geometry" writable="1">
2291         <type name="GlyphGeometry" c:type="PangoGlyphGeometry"/>
2292       </field>
2293       <field name="attr" writable="1">
2294         <type name="GlyphVisAttr" c:type="PangoGlyphVisAttr"/>
2295       </field>
2296     </record>
2297     <record name="GlyphItem"
2298             c:type="PangoGlyphItem"
2299             glib:type-name="PangoGlyphItem"
2300             glib:get-type="pango_glyph_item_get_type">
2301       <field name="item" writable="1">
2302         <type name="Item" c:type="PangoItem*"/>
2303       </field>
2304       <field name="glyphs" writable="1">
2305         <type name="GlyphString" c:type="PangoGlyphString*"/>
2306       </field>
2307       <method name="split"
2308               c:identifier="pango_glyph_item_split"
2309               doc="Modifies @orig to cover only the text after @split_index, and
2310 returns a new item that covers the text before @split_index that
2311 used to be in @orig. You can think of @split_index as the length of
2312 the returned item. @split_index may not be 0, and it may not be
2313 greater than or equal to the length of @orig (that is, there must
2314 be at least one byte assigned to each item, you can&apos;t create a
2315 zero-length item).
2316 This function is similar in function to pango_item_split() (and uses
2317 it internally.)
2318 with pango_glyph_item_free()."
2319               version="1.2">
2320         <return-value transfer-ownership="full">
2321           <type name="GlyphItem" c:type="PangoGlyphItem*"/>
2322         </return-value>
2323         <parameters>
2324           <parameter name="text" transfer-ownership="none">
2325             <type name="utf8" c:type="char*"/>
2326           </parameter>
2327           <parameter name="split_index" transfer-ownership="none">
2328             <type name="int" c:type="int"/>
2329           </parameter>
2330         </parameters>
2331       </method>
2332       <method name="copy"
2333               c:identifier="pango_glyph_item_copy"
2334               doc="Make a deep copy of an existing #PangoGlyphItem structure.
2335 be freed with pango_glyph_item_free(), or %NULL
2336 if @orig was %NULL."
2337               version="1.20">
2338         <return-value transfer-ownership="full">
2339           <type name="GlyphItem" c:type="PangoGlyphItem*"/>
2340         </return-value>
2341       </method>
2342       <method name="free"
2343               c:identifier="pango_glyph_item_free"
2344               doc="Frees a #PangoGlyphItem and resources to which it points."
2345               version="1.6">
2346         <return-value transfer-ownership="none">
2347           <type name="none" c:type="void"/>
2348         </return-value>
2349       </method>
2350       <method name="apply_attrs"
2351               c:identifier="pango_glyph_item_apply_attrs"
2352               doc="Splits a shaped item (PangoGlyphItem) into multiple items based
2353 on an attribute list. The idea is that if you have attributes
2354 that don&apos;t affect shaping, such as color or underline, to avoid
2355 affecting shaping, you filter them out (pango_attr_list_filter()),
2356 apply the shaping process and then reapply them to the result using
2357 this function.
2358 All attributes that start or end inside a cluster are applied
2359 to that cluster; for instance, if half of a cluster is underlined
2360 and the other-half strikethrough, then the cluster will end
2361 up with both underline and strikethrough attributes. In these
2362 cases, it may happen that item-&gt;extra_attrs for some of the
2363 result items can have multiple attributes of the same type.
2364 This function takes ownership of @glyph_item; it will be reused
2365 as one of the elements in the list.
2366 the list using g_slist_free()."
2367               version="1.2">
2368         <return-value transfer-ownership="full">
2369           <type name="GLib.SList" c:type="GSList*"/>
2370         </return-value>
2371         <parameters>
2372           <parameter name="text" transfer-ownership="none">
2373             <type name="utf8" c:type="char*"/>
2374           </parameter>
2375           <parameter name="list" transfer-ownership="none">
2376             <type name="AttrList" c:type="PangoAttrList*"/>
2377           </parameter>
2378         </parameters>
2379       </method>
2380       <method name="letter_space"
2381               c:identifier="pango_glyph_item_letter_space"
2382               doc="(glyph_item-&gt;item-&gt;offset is an offset from the
2383 start of @text)
2384 first logical attribute refers to the position
2385 before the first character in the item)
2386 in Pango units. May be negative, though too large
2387 negative values will give ugly results.
2388 Adds spacing between the graphemes of @glyph_item to
2389 give the effect of typographic letter spacing."
2390               version="1.6">
2391         <return-value transfer-ownership="none">
2392           <type name="none" c:type="void"/>
2393         </return-value>
2394         <parameters>
2395           <parameter name="text" transfer-ownership="none">
2396             <type name="utf8" c:type="char*"/>
2397           </parameter>
2398           <parameter name="log_attrs" transfer-ownership="none">
2399             <type name="LogAttr" c:type="PangoLogAttr*"/>
2400           </parameter>
2401           <parameter name="letter_spacing" transfer-ownership="none">
2402             <type name="int" c:type="int"/>
2403           </parameter>
2404         </parameters>
2405       </method>
2406       <method name="get_logical_widths"
2407               c:identifier="pango_glyph_item_get_logical_widths"
2408               doc="(glyph_item-&gt;item-&gt;offset is an offset from the
2409 start of @text)
2410 glyph_item (equal to glyph_item-&gt;item-&gt;num_chars)
2411 to be filled in with the resulting character widths.
2412 Given a #PangoGlyphItem and the corresponding
2413 text, determine the screen width corresponding to each character. When
2414 multiple characters compose a single cluster, the width of the entire
2415 cluster is divided equally among the characters.
2416 See also pango_glyph_string_get_logical_widths()."
2417               version="1.26">
2418         <return-value transfer-ownership="none">
2419           <type name="none" c:type="void"/>
2420         </return-value>
2421         <parameters>
2422           <parameter name="text" transfer-ownership="none">
2423             <type name="utf8" c:type="char*"/>
2424           </parameter>
2425           <parameter name="logical_widths"
2426                      direction="out"
2427                      transfer-ownership="full">
2428             <type name="int" c:type="int*"/>
2429           </parameter>
2430         </parameters>
2431       </method>
2432     </record>
2433     <record name="GlyphItemIter"
2434             c:type="PangoGlyphItemIter"
2435             glib:type-name="PangoGlyphItemIter"
2436             glib:get-type="pango_glyph_item_iter_get_type">
2437       <field name="glyph_item" writable="1">
2438         <type name="GlyphItem" c:type="PangoGlyphItem*"/>
2439       </field>
2440       <field name="text" writable="1">
2441         <type name="utf8" c:type="gchar*"/>
2442       </field>
2443       <field name="start_glyph" writable="1">
2444         <type name="int" c:type="int"/>
2445       </field>
2446       <field name="start_index" writable="1">
2447         <type name="int" c:type="int"/>
2448       </field>
2449       <field name="start_char" writable="1">
2450         <type name="int" c:type="int"/>
2451       </field>
2452       <field name="end_glyph" writable="1">
2453         <type name="int" c:type="int"/>
2454       </field>
2455       <field name="end_index" writable="1">
2456         <type name="int" c:type="int"/>
2457       </field>
2458       <field name="end_char" writable="1">
2459         <type name="int" c:type="int"/>
2460       </field>
2461       <method name="copy"
2462               c:identifier="pango_glyph_item_iter_copy"
2463               doc="Make a shallow copy of an existing #PangoGlyphItemIter structure.
2464 be freed with pango_glyph_item_iter_free(), or %NULL
2465 if @orig was %NULL."
2466               version="1.22">
2467         <return-value transfer-ownership="full">
2468           <type name="GlyphItemIter" c:type="PangoGlyphItemIter*"/>
2469         </return-value>
2470       </method>
2471       <method name="free"
2472               c:identifier="pango_glyph_item_iter_free"
2473               doc="Frees a #PangoGlyphItemIter created by pango_glyph_item_iter_copy()."
2474               version="1.22">
2475         <return-value transfer-ownership="none">
2476           <type name="none" c:type="void"/>
2477         </return-value>
2478       </method>
2479       <method name="init_start"
2480               c:identifier="pango_glyph_item_iter_init_start"
2481               doc="Initializes a #PangoGlyphItemIter structure to point to the
2482 first cluster in a glyph item.
2483 See #PangoGlyphItemIter for details of cluster orders."
2484               version="1.22">
2485         <return-value transfer-ownership="none">
2486           <type name="boolean" c:type="gboolean"/>
2487         </return-value>
2488         <parameters>
2489           <parameter name="glyph_item" transfer-ownership="none">
2490             <type name="GlyphItem" c:type="PangoGlyphItem*"/>
2491           </parameter>
2492           <parameter name="text" transfer-ownership="none">
2493             <type name="utf8" c:type="char*"/>
2494           </parameter>
2495         </parameters>
2496       </method>
2497       <method name="init_end"
2498               c:identifier="pango_glyph_item_iter_init_end"
2499               doc="Initializes a #PangoGlyphItemIter structure to point to the
2500 last cluster in a glyph item.
2501 See #PangoGlyphItemIter for details of cluster orders."
2502               version="1.22">
2503         <return-value transfer-ownership="none">
2504           <type name="boolean" c:type="gboolean"/>
2505         </return-value>
2506         <parameters>
2507           <parameter name="glyph_item" transfer-ownership="none">
2508             <type name="GlyphItem" c:type="PangoGlyphItem*"/>
2509           </parameter>
2510           <parameter name="text" transfer-ownership="none">
2511             <type name="utf8" c:type="char*"/>
2512           </parameter>
2513         </parameters>
2514       </method>
2515       <method name="next_cluster"
2516               c:identifier="pango_glyph_item_iter_next_cluster"
2517               doc="Advances the iterator to the next cluster in the glyph item.
2518 See #PangoGlyphItemIter for details of cluster orders.
2519 last cluster."
2520               version="1.22">
2521         <return-value transfer-ownership="none">
2522           <type name="boolean" c:type="gboolean"/>
2523         </return-value>
2524       </method>
2525       <method name="prev_cluster"
2526               c:identifier="pango_glyph_item_iter_prev_cluster"
2527               doc="Moves the iterator to the preceding cluster in the glyph item.
2528 See #PangoGlyphItemIter for details of cluster orders.
2529 first cluster."
2530               version="1.22">
2531         <return-value transfer-ownership="none">
2532           <type name="boolean" c:type="gboolean"/>
2533         </return-value>
2534       </method>
2535     </record>
2536     <record name="GlyphString"
2537             c:type="PangoGlyphString"
2538             glib:type-name="PangoGlyphString"
2539             glib:get-type="pango_glyph_string_get_type">
2540       <field name="num_glyphs" writable="1">
2541         <type name="int" c:type="gint"/>
2542       </field>
2543       <field name="glyphs" writable="1">
2544         <type name="GlyphInfo" c:type="PangoGlyphInfo*"/>
2545       </field>
2546       <field name="log_clusters" writable="1">
2547         <type name="any" c:type="gint*"/>
2548       </field>
2549       <field name="space" writable="1">
2550         <type name="int" c:type="gint"/>
2551       </field>
2552       <constructor name="new"
2553                    c:identifier="pango_glyph_string_new"
2554                    doc="Create a new #PangoGlyphString.
2555 should be freed with pango_glyph_string_free().">
2556         <return-value transfer-ownership="full">
2557           <type name="GlyphString" c:type="PangoGlyphString*"/>
2558         </return-value>
2559       </constructor>
2560       <method name="set_size"
2561               c:identifier="pango_glyph_string_set_size"
2562               doc="Resize a glyph string to the given length.">
2563         <return-value transfer-ownership="none">
2564           <type name="none" c:type="void"/>
2565         </return-value>
2566         <parameters>
2567           <parameter name="new_len" transfer-ownership="none">
2568             <type name="int" c:type="gint"/>
2569           </parameter>
2570         </parameters>
2571       </method>
2572       <method name="copy"
2573               c:identifier="pango_glyph_string_copy"
2574               doc="Copy a glyph string and associated storage.
2575 should be freed with pango_glyph_string_free(),
2576 or %NULL if @string was %NULL.">
2577         <return-value transfer-ownership="full">
2578           <type name="GlyphString" c:type="PangoGlyphString*"/>
2579         </return-value>
2580       </method>
2581       <method name="free"
2582               c:identifier="pango_glyph_string_free"
2583               doc="Free a glyph string and associated storage.">
2584         <return-value transfer-ownership="none">
2585           <type name="none" c:type="void"/>
2586         </return-value>
2587       </method>
2588       <method name="extents"
2589               c:identifier="pango_glyph_string_extents"
2590               doc="or %NULL to indicate that the result is not needed.
2591 or %NULL to indicate that the result is not needed.
2592 Compute the logical and ink extents of a glyph string. See the documentation
2593 for pango_font_get_glyph_extents() for details about the interpretation
2594 of the rectangles.">
2595         <return-value transfer-ownership="none">
2596           <type name="none" c:type="void"/>
2597         </return-value>
2598         <parameters>
2599           <parameter name="font" transfer-ownership="none">
2600             <type name="Font" c:type="PangoFont*"/>
2601           </parameter>
2602           <parameter name="ink_rect" transfer-ownership="none">
2603             <type name="Rectangle" c:type="PangoRectangle*"/>
2604           </parameter>
2605           <parameter name="logical_rect" transfer-ownership="none">
2606             <type name="Rectangle" c:type="PangoRectangle*"/>
2607           </parameter>
2608         </parameters>
2609       </method>
2610       <method name="get_width"
2611               c:identifier="pango_glyph_string_get_width"
2612               doc="Computes the logical width of the glyph string as can also be computed
2613 using pango_glyph_string_extents().  However, since this only computes the
2614 width, it&apos;s much faster.  This is in fact only a convenience function that
2615 computes the sum of geometry.width for each glyph in the @glyphs."
2616               version="1.14">
2617         <return-value transfer-ownership="none">
2618           <type name="int" c:type="int"/>
2619         </return-value>
2620       </method>
2621       <method name="extents_range"
2622               c:identifier="pango_glyph_string_extents_range"
2623               doc="dices such that start &lt;= index &lt; end)
2624 or %NULL to indicate that the result is not needed.
2625 or %NULL to indicate that the result is not needed.
2626 Computes the extents of a sub-portion of a glyph string. The extents are
2627 relative to the start of the glyph string range (the origin of their
2628 coordinate system is at the start of the range, not at the start of the entire
2629 glyph string).">
2630         <return-value transfer-ownership="none">
2631           <type name="none" c:type="void"/>
2632         </return-value>
2633         <parameters>
2634           <parameter name="start" transfer-ownership="none">
2635             <type name="int" c:type="int"/>
2636           </parameter>
2637           <parameter name="end" transfer-ownership="none">
2638             <type name="int" c:type="int"/>
2639           </parameter>
2640           <parameter name="font" transfer-ownership="none">
2641             <type name="Font" c:type="PangoFont*"/>
2642           </parameter>
2643           <parameter name="ink_rect" transfer-ownership="none">
2644             <type name="Rectangle" c:type="PangoRectangle*"/>
2645           </parameter>
2646           <parameter name="logical_rect" transfer-ownership="none">
2647             <type name="Rectangle" c:type="PangoRectangle*"/>
2648           </parameter>
2649         </parameters>
2650       </method>
2651       <method name="get_logical_widths"
2652               c:identifier="pango_glyph_string_get_logical_widths"
2653               doc="text (equal to g_utf8_strlen (text, length) unless
2654 text has NUL bytes)
2655 to be filled in with the resulting character widths.
2656 Given a #PangoGlyphString resulting from pango_shape() and the corresponding
2657 text, determine the screen width corresponding to each character. When
2658 multiple characters compose a single cluster, the width of the entire
2659 cluster is divided equally among the characters.
2660 See also pango_glyph_item_get_logical_widths().">
2661         <return-value transfer-ownership="none">
2662           <type name="none" c:type="void"/>
2663         </return-value>
2664         <parameters>
2665           <parameter name="text" transfer-ownership="none">
2666             <type name="utf8" c:type="char*"/>
2667           </parameter>
2668           <parameter name="length" transfer-ownership="none">
2669             <type name="int" c:type="int"/>
2670           </parameter>
2671           <parameter name="embedding_level" transfer-ownership="none">
2672             <type name="int" c:type="int"/>
2673           </parameter>
2674           <parameter name="logical_widths"
2675                      direction="out"
2676                      transfer-ownership="full">
2677             <type name="int" c:type="int*"/>
2678           </parameter>
2679         </parameters>
2680       </method>
2681       <method name="index_to_x"
2682               c:identifier="pango_glyph_string_index_to_x"
2683               doc="or end (%TRUE) of the character.
2684 Converts from character position to x position. (X position
2685 is measured from the left edge of the run). Character positions
2686 are computed by dividing up each cluster into equal portions.">
2687         <return-value transfer-ownership="none">
2688           <type name="none" c:type="void"/>
2689         </return-value>
2690         <parameters>
2691           <parameter name="text" transfer-ownership="full">
2692             <type name="utf8" c:type="char*"/>
2693           </parameter>
2694           <parameter name="length" transfer-ownership="none" doc="in @text.">
2695             <type name="int" c:type="int"/>
2696           </parameter>
2697           <parameter name="analysis" transfer-ownership="none">
2698             <type name="Analysis" c:type="PangoAnalysis*"/>
2699           </parameter>
2700           <parameter name="index_" transfer-ownership="none">
2701             <type name="int" c:type="int"/>
2702           </parameter>
2703           <parameter name="trailing" transfer-ownership="none">
2704             <type name="boolean" c:type="gboolean"/>
2705           </parameter>
2706           <parameter name="x_pos" direction="out" transfer-ownership="full">
2707             <type name="int" c:type="int*"/>
2708           </parameter>
2709         </parameters>
2710       </method>
2711       <method name="x_to_index"
2712               c:identifier="pango_glyph_string_x_to_index"
2713               doc="whether the user clicked on the leading or trailing
2714 edge of the character.
2715 Convert from x offset to character position. Character positions
2716 are computed by dividing up each cluster into equal portions.
2717 In scripts where positioning within a cluster is not allowed
2718 (such as Thai), the returned value may not be a valid cursor
2719 position; the caller must combine the result with the logical
2720 attributes for the text to compute the valid cursor position.">
2721         <return-value transfer-ownership="none">
2722           <type name="none" c:type="void"/>
2723         </return-value>
2724         <parameters>
2725           <parameter name="text" transfer-ownership="full">
2726             <type name="utf8" c:type="char*"/>
2727           </parameter>
2728           <parameter name="length" transfer-ownership="none" doc="in text.">
2729             <type name="int" c:type="int"/>
2730           </parameter>
2731           <parameter name="analysis" transfer-ownership="none">
2732             <type name="Analysis" c:type="PangoAnalysis*"/>
2733           </parameter>
2734           <parameter name="x_pos" transfer-ownership="none">
2735             <type name="int" c:type="int"/>
2736           </parameter>
2737           <parameter name="index_" direction="out" transfer-ownership="full">
2738             <type name="int" c:type="int*"/>
2739           </parameter>
2740           <parameter name="trailing" direction="out" transfer-ownership="full">
2741             <type name="int" c:type="int*"/>
2742           </parameter>
2743         </parameters>
2744       </method>
2745     </record>
2746     <record name="GlyphVisAttr" c:type="PangoGlyphVisAttr">
2747       <field name="is_cluster_start" writable="1" bits="1">
2748         <type name="uint" c:type="guint"/>
2749       </field>
2750     </record>
2751     <enumeration name="Gravity"
2752                  doc="The #PangoGravity type represents the orientation of glyphs in a segment
2753 of text.  This is useful when rendering vertical text layouts.  In
2754 those situations, the layout is rotated using a non-identity PangoMatrix,
2755 and then glyph orientation is controlled using #PangoGravity.
2756 Not every value in this enumeration makes sense for every usage of
2757 #PangoGravity; for example, %PANGO_GRAVITY_AUTO only can be passed to
2758 pango_context_set_base_gravity() and can only be returned by
2759 pango_context_get_base_gravity()."
2760                  version="1.16"
2761                  glib:type-name="PangoGravity"
2762                  glib:get-type="pango_gravity_get_type"
2763                  c:type="PangoGravity">
2764       <member name="south"
2765               value="0"
2766               c:identifier="PANGO_GRAVITY_SOUTH"
2767               glib:nick="south"/>
2768       <member name="east"
2769               value="1"
2770               c:identifier="PANGO_GRAVITY_EAST"
2771               glib:nick="east"/>
2772       <member name="north"
2773               value="2"
2774               c:identifier="PANGO_GRAVITY_NORTH"
2775               glib:nick="north"/>
2776       <member name="west"
2777               value="3"
2778               c:identifier="PANGO_GRAVITY_WEST"
2779               glib:nick="west"/>
2780       <member name="auto"
2781               value="4"
2782               c:identifier="PANGO_GRAVITY_AUTO"
2783               glib:nick="auto"/>
2784     </enumeration>
2785     <enumeration name="GravityHint"
2786                  doc="on the base gravity and the script.  This is the default.
2787 the script.
2788 Latin in East gravity), choose per-script gravity such that every script
2789 respects the line progression.  This means, Latin and Arabic will take
2790 opposite gravities and both flow top-to-bottom for example.
2791 The #PangoGravityHint defines how horizontal scripts should behave in a
2792 vertical context.  That is, English excerpt in a vertical paragraph for
2793 example.
2794 See #PangoGravity."
2795                  version="1.16"
2796                  glib:type-name="PangoGravityHint"
2797                  glib:get-type="pango_gravity_hint_get_type"
2798                  c:type="PangoGravityHint">
2799       <member name="natural"
2800               value="0"
2801               c:identifier="PANGO_GRAVITY_HINT_NATURAL"
2802               glib:nick="natural"/>
2803       <member name="strong"
2804               value="1"
2805               c:identifier="PANGO_GRAVITY_HINT_STRONG"
2806               glib:nick="strong"/>
2807       <member name="line"
2808               value="2"
2809               c:identifier="PANGO_GRAVITY_HINT_LINE"
2810               glib:nick="line"/>
2811     </enumeration>
2812     <record name="Item"
2813             c:type="PangoItem"
2814             glib:type-name="PangoItem"
2815             glib:get-type="pango_item_get_type">
2816       <field name="offset" writable="1">
2817         <type name="int" c:type="gint"/>
2818       </field>
2819       <field name="length" writable="1">
2820         <type name="int" c:type="gint"/>
2821       </field>
2822       <field name="num_chars" writable="1">
2823         <type name="int" c:type="gint"/>
2824       </field>
2825       <field name="analysis" writable="1">
2826         <type name="Analysis" c:type="PangoAnalysis"/>
2827       </field>
2828       <constructor name="new"
2829                    c:identifier="pango_item_new"
2830                    doc="Creates a new #PangoItem structure initialized to default values.
2831 be freed with pango_item_free().">
2832         <return-value transfer-ownership="full">
2833           <type name="Item" c:type="PangoItem*"/>
2834         </return-value>
2835       </constructor>
2836       <method name="copy"
2837               c:identifier="pango_item_copy"
2838               doc="Copy an existing #PangoItem structure.
2839 be freed with pango_item_free(), or %NULL if">
2840         <return-value transfer-ownership="full">
2841           <type name="Item" c:type="PangoItem*"/>
2842         </return-value>
2843       </method>
2844       <method name="free"
2845               c:identifier="pango_item_free"
2846               doc="Free a #PangoItem and all associated memory.">
2847         <return-value transfer-ownership="none">
2848           <type name="none" c:type="void"/>
2849         </return-value>
2850       </method>
2851       <method name="split"
2852               c:identifier="pango_item_split"
2853               doc="Modifies @orig to cover only the text after @split_index, and
2854 returns a new item that covers the text before @split_index that
2855 used to be in @orig. You can think of @split_index as the length of
2856 the returned item. @split_index may not be 0, and it may not be
2857 greater than or equal to the length of @orig (that is, there must
2858 be at least one byte assigned to each item, you can&apos;t create a
2859 zero-length item). @split_offset is the length of the first item in
2860 chars, and must be provided because the text used to generate the
2861 item isn&apos;t available, so pango_item_split() can&apos;t count the char
2862 length of the split items itself.
2863 should be freed with pango_item_free().">
2864         <return-value transfer-ownership="full">
2865           <type name="Item" c:type="PangoItem*"/>
2866         </return-value>
2867         <parameters>
2868           <parameter name="split_index" transfer-ownership="none">
2869             <type name="int" c:type="int"/>
2870           </parameter>
2871           <parameter name="split_offset" transfer-ownership="none">
2872             <type name="int" c:type="int"/>
2873           </parameter>
2874         </parameters>
2875       </method>
2876     </record>
2877     <record name="Language"
2878             c:type="PangoLanguage"
2879             glib:type-name="PangoLanguage"
2880             glib:get-type="pango_language_get_type">
2881       <method name="to_string"
2882               c:identifier="pango_language_to_string"
2883               doc="Gets the RFC-3066 format string representing the given language tag.
2884 Pango and should not be freed.">
2885         <return-value transfer-ownership="none">
2886           <type name="utf8" c:type="char*"/>
2887         </return-value>
2888       </method>
2889       <method name="get_sample_string"
2890               c:identifier="pango_language_get_sample_string"
2891               doc="Get a string that is representative of the characters needed to
2892 render a particular language.
2893 The sample text may be a pangram, but is not necessarily.  It is chosen to
2894 be demonstrative of normal text in the language, as well as exposing font
2895 feature requirements unique to the language.  It is suitable for use
2896 as sample text in a font selection dialog.
2897 If @language is %NULL, the default language as found by
2898 pango_language_get_default() is used.
2899 If Pango does not have a sample string for @language, the classic
2900 &quot;The quick brown fox...&quot; is returned.  This can be detected by
2901 comparing the returned pointer value to that returned for (non-existent)
2902 language code &quot;xx&quot;.  That is, compare to:
2903 &lt;informalexample&gt;&lt;programlisting&gt;
2904 pango_language_get_sample_string (pango_language_from_string (&quot;xx&quot;))
2905 &lt;/programlisting&gt;&lt;/informalexample&gt;
2906 and should not be freed.">
2907         <return-value transfer-ownership="none">
2908           <type name="utf8" c:type="char*"/>
2909         </return-value>
2910       </method>
2911       <method name="matches"
2912               c:identifier="pango_language_matches"
2913               doc="%NULL is allowed and matches nothing but &apos;*&apos;
2914 &apos;,&apos;, or space characters.
2915 Each element must either be &apos;*&apos;, or a RFC 3066 language range
2916 canonicalized as by pango_language_from_string()
2917 Checks if a language tag matches one of the elements in a list of
2918 language ranges. A language tag is considered to match a range
2919 in the list if the range is &apos;*&apos;, the range is exactly the tag,
2920 or the range is a prefix of the tag, and the character after it
2921 in the tag is &apos;-&apos;.">
2922         <return-value transfer-ownership="none">
2923           <type name="boolean" c:type="gboolean"/>
2924         </return-value>
2925         <parameters>
2926           <parameter name="range_list" transfer-ownership="none">
2927             <type name="utf8" c:type="char*"/>
2928           </parameter>
2929         </parameters>
2930       </method>
2931       <method name="includes_script"
2932               c:identifier="pango_language_includes_script"
2933               doc="Determines if @script is one of the scripts used to
2934 write @language. The returned value is conservative;
2935 if nothing is known about the language tag @language,
2936 %TRUE will be returned, since, as far as Pango knows,
2937 This routine is used in Pango&apos;s itemization process when
2938 determining if a supplied language tag is relevant to
2939 a particular section of text. It probably is not useful for
2940 applications in most circumstances.
2941 This function uses pango_language_get_scripts() internally.
2942 to write @language or if nothing is known about @language
2943 (including the case that @language is %NULL),
2944 %FALSE otherwise."
2945               version="1.4">
2946         <return-value transfer-ownership="none">
2947           <type name="boolean" c:type="gboolean"/>
2948         </return-value>
2949         <parameters>
2950           <parameter name="script" transfer-ownership="none">
2951             <type name="Script" c:type="PangoScript"/>
2952           </parameter>
2953         </parameters>
2954       </method>
2955       <method name="get_scripts"
2956               c:identifier="pango_language_get_scripts"
2957               doc="Determines the scripts used to to write @language.
2958 If nothing is known about the language tag @language,
2959 or if @language is %NULL, then %NULL is returned.
2960 The list of scripts returned starts with the script that the
2961 language uses most and continues to the one it uses least.
2962 The value @num_script points at will be set to the number
2963 of scripts in the returned array (or zero if %NULL is returned).
2964 Most languages use only one script for writing, but there are
2965 some that use two (Latin and Cyrillic for example), and a few
2966 use three (Japanese for example).  Applications should not make
2967 any assumptions on the maximum number of scripts returned
2968 though, except that it is positive if the return value is not
2969 %NULL, and it is a small number.
2970 The pango_language_includes_script() function uses this function
2971 internally.
2972 number of entries in the array stored in @num_scripts, or
2973 %NULL if Pango does not have any information about this
2974 particular language tag (also the case if @language is %NULL).
2975 The returned array is owned by Pango and should not be modified
2976 or freed."
2977               version="1.22">
2978         <return-value transfer-ownership="none">
2979           <type name="Script" c:type="PangoScript*"/>
2980         </return-value>
2981         <parameters>
2982           <parameter name="num_scripts"
2983                      direction="out"
2984                      transfer-ownership="full">
2985             <type name="int" c:type="int*"/>
2986           </parameter>
2987         </parameters>
2988       </method>
2989     </record>
2990     <class name="Layout"
2991            c:type="PangoLayout"
2992            parent="GObject.Object"
2993            glib:type-name="PangoLayout"
2994            glib:get-type="pango_layout_get_type"
2995            glib:type-struct="LayoutClass">
2996       <constructor name="new"
2997                    c:identifier="pango_layout_new"
2998                    doc="Create a new #PangoLayout object with attributes initialized to
2999 default values for a particular #PangoContext.
3000 count of one, which should be freed with
3001 g_object_unref().">
3002         <return-value transfer-ownership="full">
3003           <type name="Layout" c:type="PangoLayout*"/>
3004         </return-value>
3005         <parameters>
3006           <parameter name="context" transfer-ownership="none">
3007             <type name="Context" c:type="PangoContext*"/>
3008           </parameter>
3009         </parameters>
3010       </constructor>
3011       <method name="copy"
3012               c:identifier="pango_layout_copy"
3013               doc="Does a deep copy-by-value of the @src layout. The attribute list,
3014 tab array, and text from the original layout are all copied by
3015 value.
3016 count of one, which should be freed with
3017 g_object_unref().">
3018         <return-value transfer-ownership="full">
3019           <type name="Layout" c:type="PangoLayout*"/>
3020         </return-value>
3021       </method>
3022       <method name="get_context"
3023               c:identifier="pango_layout_get_context"
3024               doc="Retrieves the #PangoContext used for this layout.
3025 have an additional refcount added, so if you want to keep
3026 a copy of this around, you must reference it yourself.">
3027         <return-value transfer-ownership="full">
3028           <type name="Context" c:type="PangoContext*"/>
3029         </return-value>
3030       </method>
3031       <method name="set_attributes"
3032               c:identifier="pango_layout_set_attributes"
3033               doc="Sets the text attributes for a layout object.
3034 References @attrs, so the caller can unref its reference.">
3035         <return-value transfer-ownership="none">
3036           <type name="none" c:type="void"/>
3037         </return-value>
3038         <parameters>
3039           <parameter name="attrs" transfer-ownership="none">
3040             <type name="AttrList" c:type="PangoAttrList*"/>
3041           </parameter>
3042         </parameters>
3043       </method>
3044       <method name="get_attributes"
3045               c:identifier="pango_layout_get_attributes"
3046               doc="Gets the attribute list for the layout, if any.">
3047         <return-value transfer-ownership="full">
3048           <type name="AttrList" c:type="PangoAttrList*"/>
3049         </return-value>
3050       </method>
3051       <method name="set_text"
3052               c:identifier="pango_layout_set_text"
3053               doc="the string is nul-terminated and the length should be
3054 calculated.  The text will also be truncated on
3055 encountering a nul-termination even when @length is
3056 positive.
3057 Sets the text of the layout.
3058 Note that if you have used
3059 pango_layout_set_markup() or pango_layout_set_markup_with_accel() on
3060 the attributes set on the layout from the markup as this function does not
3061 clear attributes.">
3062         <return-value transfer-ownership="none">
3063           <type name="none" c:type="void"/>
3064         </return-value>
3065         <parameters>
3066           <parameter name="text" transfer-ownership="none">
3067             <type name="utf8" c:type="char*"/>
3068           </parameter>
3069           <parameter name="length" transfer-ownership="none">
3070             <type name="int" c:type="int"/>
3071           </parameter>
3072         </parameters>
3073       </method>
3074       <method name="get_text"
3075               c:identifier="pango_layout_get_text"
3076               doc="Gets the text in the layout. The returned text should not
3077 be freed or modified.">
3078         <return-value transfer-ownership="none">
3079           <type name="utf8" c:type="char*"/>
3080         </return-value>
3081       </method>
3082       <method name="set_markup"
3083               c:identifier="pango_layout_set_markup"
3084               doc="nul-terminated
3085 Same as pango_layout_set_markup_with_accel(), but
3086 the markup text isn&apos;t scanned for accelerators.">
3087         <return-value transfer-ownership="none">
3088           <type name="none" c:type="void"/>
3089         </return-value>
3090         <parameters>
3091           <parameter name="markup" transfer-ownership="none">
3092             <type name="utf8" c:type="char*"/>
3093           </parameter>
3094           <parameter name="length" transfer-ownership="none">
3095             <type name="int" c:type="int"/>
3096           </parameter>
3097         </parameters>
3098       </method>
3099       <method name="set_markup_with_accel"
3100               c:identifier="pango_layout_set_markup_with_accel"
3101               doc="(see &lt;link linkend=&quot;PangoMarkupFormat&quot;&gt;markup format&lt;/link&gt;)
3102 nul-terminated
3103 Sets the layout text and attribute list from marked-up text (see
3104 &lt;link linkend=&quot;PangoMarkupFormat&quot;&gt;markup format&lt;/link&gt;). Replaces
3105 the current text and attribute list.
3106 If @accel_marker is nonzero, the given character will mark the
3107 character following it as an accelerator. For example, @accel_marker
3108 might be an ampersand or underscore. All characters marked
3109 as an accelerator will receive a %PANGO_UNDERLINE_LOW attribute,
3110 and the first character so marked will be returned in @accel_char.
3111 Two @accel_marker characters following each other produce a single
3112 literal @accel_marker character.">
3113         <return-value transfer-ownership="none">
3114           <type name="none" c:type="void"/>
3115         </return-value>
3116         <parameters>
3117           <parameter name="markup" transfer-ownership="none">
3118             <type name="utf8" c:type="char*"/>
3119           </parameter>
3120           <parameter name="length" transfer-ownership="none">
3121             <type name="int" c:type="int"/>
3122           </parameter>
3123           <parameter name="accel_marker" transfer-ownership="none">
3124             <type name="GLib.unichar" c:type="gunichar"/>
3125           </parameter>
3126           <parameter name="accel_char" transfer-ownership="none">
3127             <type name="GLib.unichar" c:type="gunichar*"/>
3128           </parameter>
3129         </parameters>
3130       </method>
3131       <method name="set_font_description"
3132               c:identifier="pango_layout_set_font_description"
3133               doc="current font description
3134 Sets the default font description for the layout. If no font
3135 description is set on the layout, the font description from
3136 the layout&apos;s context is used.">
3137         <return-value transfer-ownership="none">
3138           <type name="none" c:type="void"/>
3139         </return-value>
3140         <parameters>
3141           <parameter name="desc" transfer-ownership="none">
3142             <type name="FontDescription" c:type="PangoFontDescription*"/>
3143           </parameter>
3144         </parameters>
3145       </method>
3146       <method name="get_font_description"
3147               c:identifier="pango_layout_get_font_description"
3148               doc="Gets the font description for the layout, if any.
3149 or %NULL if the font description from the layout&apos;s
3150 context is inherited. This value is owned by the layout
3151 and must not be modified or freed."
3152               version="1.8">
3153         <return-value transfer-ownership="none">
3154           <type name="FontDescription" c:type="PangoFontDescription*"/>
3155         </return-value>
3156       </method>
3157       <method name="set_width"
3158               c:identifier="pango_layout_set_width"
3159               doc="wrapping or ellipsization should be performed.
3160 Sets the width to which the lines of the #PangoLayout should wrap or">
3161         <return-value transfer-ownership="none">
3162           <type name="none" c:type="void"/>
3163         </return-value>
3164         <parameters>
3165           <parameter name="width" transfer-ownership="none">
3166             <type name="int" c:type="int"/>
3167           </parameter>
3168         </parameters>
3169       </method>
3170       <method name="get_width"
3171               c:identifier="pango_layout_get_width"
3172               doc="Gets the width to which the lines of the #PangoLayout should wrap.">
3173         <return-value transfer-ownership="none">
3174           <type name="int" c:type="int"/>
3175         </return-value>
3176       </method>
3177       <method name="set_height"
3178               c:identifier="pango_layout_set_height"
3179               doc="or desired number of lines if negative.
3180 Sets the height to which the #PangoLayout should be ellipsized at.  There
3181 are two different behaviors, based on whether @height is positive or
3182 negative.
3183 If @height is positive, it will be the maximum height of the layout.  Only
3184 lines would be shown that would fit, and if there is any text omitted,
3185 an ellipsis added.  At least one line is included in each paragraph regardless
3186 of how small the height value is.  A value of zero will render exactly one
3187 line for the entire layout.
3188 If @height is negative, it will be the (negative of) maximum number of lines per
3189 paragraph.  That is, the total number of lines shown may well be more than
3190 this value if the layout contains multiple paragraphs of text.
3191 The default value of -1 means that first line of each paragraph is ellipsized.
3192 This behvaior may be changed in the future to act per layout instead of per
3193 paragraph.  File a bug against pango at &lt;ulink
3194 url=&quot;http://bugzilla.gnome.org/&quot;&gt;http://bugzilla.gnome.org/&lt;/ulink&gt; if your
3195 code relies on this behavior.
3196 Height setting only has effect if a positive width is set on
3197 The behavior is undefined if a height other than -1 is set and
3198 ellipsization mode is set to %PANGO_ELLIPSIZE_NONE, and may change in the
3199 future."
3200               version="1.20">
3201         <return-value transfer-ownership="none">
3202           <type name="none" c:type="void"/>
3203         </return-value>
3204         <parameters>
3205           <parameter name="height" transfer-ownership="none">
3206             <type name="int" c:type="int"/>
3207           </parameter>
3208         </parameters>
3209       </method>
3210       <method name="get_height"
3211               c:identifier="pango_layout_get_height"
3212               doc="Gets the height of layout used for ellipsization.  See
3213 pango_layout_set_height() for details.
3214 number of lines if negative."
3215               version="1.20">
3216         <return-value transfer-ownership="none">
3217           <type name="int" c:type="int"/>
3218         </return-value>
3219       </method>
3220       <method name="set_wrap"
3221               c:identifier="pango_layout_set_wrap"
3222               doc="Sets the wrap mode; the wrap mode only has effect if a width
3223 is set on the layout with pango_layout_set_width().
3224 To turn off wrapping, set the width to -1.">
3225         <return-value transfer-ownership="none">
3226           <type name="none" c:type="void"/>
3227         </return-value>
3228         <parameters>
3229           <parameter name="wrap" transfer-ownership="none">
3230             <type name="WrapMode" c:type="PangoWrapMode"/>
3231           </parameter>
3232         </parameters>
3233       </method>
3234       <method name="get_wrap"
3235               c:identifier="pango_layout_get_wrap"
3236               doc="Gets the wrap mode for the layout.
3237 Use pango_layout_is_wrapped() to query whether any paragraphs
3238 were actually wrapped.">
3239         <return-value transfer-ownership="full">
3240           <type name="WrapMode" c:type="PangoWrapMode"/>
3241         </return-value>
3242       </method>
3243       <method name="is_wrapped"
3244               c:identifier="pango_layout_is_wrapped"
3245               doc="Queries whether the layout had to wrap any paragraphs.
3246 This returns %TRUE if a positive width is set on @layout,
3247 ellipsization mode of @layout is set to %PANGO_ELLIPSIZE_NONE,
3248 and there are paragraphs exceeding the layout width that have
3249 to be wrapped.
3250 otherwise."
3251               version="1.16">
3252         <return-value transfer-ownership="none">
3253           <type name="boolean" c:type="gboolean"/>
3254         </return-value>
3255       </method>
3256       <method name="set_indent" c:identifier="pango_layout_set_indent">
3257         <return-value transfer-ownership="none">
3258           <type name="none" c:type="void"/>
3259         </return-value>
3260         <parameters>
3261           <parameter name="indent" transfer-ownership="none">
3262             <type name="int" c:type="int"/>
3263           </parameter>
3264         </parameters>
3265       </method>
3266       <method name="get_indent"
3267               c:identifier="pango_layout_get_indent"
3268               doc="Gets the paragraph indent width in Pango units. A negative value
3269 indicates a hanging indentation.">
3270         <return-value transfer-ownership="none">
3271           <type name="int" c:type="int"/>
3272         </return-value>
3273       </method>
3274       <method name="set_spacing"
3275               c:identifier="pango_layout_set_spacing"
3276               doc="Sets the amount of spacing in Pango unit between the lines of the
3277 layout.">
3278         <return-value transfer-ownership="none">
3279           <type name="none" c:type="void"/>
3280         </return-value>
3281         <parameters>
3282           <parameter name="spacing" transfer-ownership="none">
3283             <type name="int" c:type="int"/>
3284           </parameter>
3285         </parameters>
3286       </method>
3287       <method name="get_spacing"
3288               c:identifier="pango_layout_get_spacing"
3289               doc="Gets the amount of spacing between the lines of the layout.">
3290         <return-value transfer-ownership="none">
3291           <type name="int" c:type="int"/>
3292         </return-value>
3293       </method>
3294       <method name="set_justify"
3295               c:identifier="pango_layout_set_justify"
3296               doc="Sets whether each complete line should be stretched to
3297 fill the entire width of the layout. This stretching is typically
3298 done by adding whitespace, but for some scripts (such as Arabic),
3299 the justification may be done in more complex ways, like extending
3300 the characters.
3301 Note that this setting is not implemented and so is ignored in Pango
3302 older than 1.18.">
3303         <return-value transfer-ownership="none">
3304           <type name="none" c:type="void"/>
3305         </return-value>
3306         <parameters>
3307           <parameter name="justify" transfer-ownership="none">
3308             <type name="boolean" c:type="gboolean"/>
3309           </parameter>
3310         </parameters>
3311       </method>
3312       <method name="get_justify"
3313               c:identifier="pango_layout_get_justify"
3314               doc="Gets whether each complete line should be stretched to fill the entire
3315 width of the layout.">
3316         <return-value transfer-ownership="none">
3317           <type name="boolean" c:type="gboolean"/>
3318         </return-value>
3319       </method>
3320       <method name="set_auto_dir"
3321               c:identifier="pango_layout_set_auto_dir"
3322               doc="from the layout&apos;s contents.
3323 Sets whether to calculate the bidirectional base direction
3324 for the layout according to the contents of the layout;
3325 when this flag is on (the default), then paragraphs in
3326 ayout that begin with strong right-to-left characters
3327 (Arabic and Hebrew principally), will have right-to-left
3328 layout, paragraphs with letters from other scripts will
3329 have left-to-right layout. Paragraphs with only neutral
3330 characters get their direction from the surrounding paragraphs.
3331 When %FALSE, the choice between left-to-right and
3332 right-to-left layout is done according to the base direction
3333 of the layout&apos;s #PangoContext. (See pango_context_set_base_dir()).
3334 When the auto-computed direction of a paragraph differs from the
3335 base direction of the context, the interpretation of
3336 %PANGO_ALIGN_LEFT and %PANGO_ALIGN_RIGHT are swapped."
3337               version="1.4">
3338         <return-value transfer-ownership="none">
3339           <type name="none" c:type="void"/>
3340         </return-value>
3341         <parameters>
3342           <parameter name="auto_dir" transfer-ownership="none">
3343             <type name="boolean" c:type="gboolean"/>
3344           </parameter>
3345         </parameters>
3346       </method>
3347       <method name="get_auto_dir"
3348               c:identifier="pango_layout_get_auto_dir"
3349               doc="Gets whether to calculate the bidirectional base direction
3350 for the layout according to the contents of the layout.
3351 See pango_layout_set_auto_dir().
3352 is computed from the layout&apos;s contents, %FALSE otherwise."
3353               version="1.4">
3354         <return-value transfer-ownership="none">
3355           <type name="boolean" c:type="gboolean"/>
3356         </return-value>
3357       </method>
3358       <method name="set_alignment"
3359               c:identifier="pango_layout_set_alignment"
3360               doc="positioned within the horizontal space available.">
3361         <return-value transfer-ownership="none">
3362           <type name="none" c:type="void"/>
3363         </return-value>
3364         <parameters>
3365           <parameter name="alignment" transfer-ownership="none">
3366             <type name="Alignment" c:type="PangoAlignment"/>
3367           </parameter>
3368         </parameters>
3369       </method>
3370       <method name="get_alignment"
3371               c:identifier="pango_layout_get_alignment"
3372               doc="positioned within the horizontal space available.">
3373         <return-value transfer-ownership="full">
3374           <type name="Alignment" c:type="PangoAlignment"/>
3375         </return-value>
3376       </method>
3377       <method name="set_tabs"
3378               c:identifier="pango_layout_set_tabs"
3379               doc="Sets the tabs to use for @layout, overriding the default tabs
3380 (by default, tabs are every 8 spaces). If @tabs is %NULL, the default
3381 tabs are reinstated. @tabs is copied into the layout; you must
3382 free your copy of @tabs yourself.">
3383         <return-value transfer-ownership="none">
3384           <type name="none" c:type="void"/>
3385         </return-value>
3386         <parameters>
3387           <parameter name="tabs" transfer-ownership="none">
3388             <type name="TabArray" c:type="PangoTabArray*"/>
3389           </parameter>
3390         </parameters>
3391       </method>
3392       <method name="get_tabs"
3393               c:identifier="pango_layout_get_tabs"
3394               doc="Gets the current #PangoTabArray used by this layout. If no
3395 #PangoTabArray has been set, then the default tabs are in use
3396 and %NULL is returned. Default tabs are every 8 spaces.
3397 The return value should be freed with pango_tab_array_free().">
3398         <return-value transfer-ownership="full">
3399           <type name="TabArray" c:type="PangoTabArray*"/>
3400         </return-value>
3401       </method>
3402       <method name="set_single_paragraph_mode"
3403               c:identifier="pango_layout_set_single_paragraph_mode"
3404               doc="If @setting is %TRUE, do not treat newlines and similar characters
3405 as paragraph separators; instead, keep all text in a single paragraph,
3406 and display a glyph for paragraph separator characters. Used when
3407 you want to allow editing of newlines on a single text line.">
3408         <return-value transfer-ownership="none">
3409           <type name="none" c:type="void"/>
3410         </return-value>
3411         <parameters>
3412           <parameter name="setting" transfer-ownership="none">
3413             <type name="boolean" c:type="gboolean"/>
3414           </parameter>
3415         </parameters>
3416       </method>
3417       <method name="get_single_paragraph_mode"
3418               c:identifier="pango_layout_get_single_paragraph_mode"
3419               doc="Obtains the value set by pango_layout_set_single_paragraph_mode().
3420 paragraph separator characters, %FALSE otherwise.">
3421         <return-value transfer-ownership="none">
3422           <type name="boolean" c:type="gboolean"/>
3423         </return-value>
3424       </method>
3425       <method name="set_ellipsize"
3426               c:identifier="pango_layout_set_ellipsize"
3427               doc="Sets the type of ellipsization being performed for @layout.
3428 Depending on the ellipsization mode @ellipsize text is
3429 removed from the start, middle, or end of text so they
3430 fit within the width and height of layout set with
3431 pango_layout_set_width() and pango_layout_set_height().
3432 If the layout contains characters such as newlines that
3433 force it to be layed out in multiple paragraphs, then whether
3434 each paragraph is ellipsized separately or the entire layout
3435 is ellipsized as a whole depends on the set height of the layout.
3436 See pango_layout_set_height() for details."
3437               version="1.6">
3438         <return-value transfer-ownership="none">
3439           <type name="none" c:type="void"/>
3440         </return-value>
3441         <parameters>
3442           <parameter name="ellipsize" transfer-ownership="none">
3443             <type name="EllipsizeMode" c:type="PangoEllipsizeMode"/>
3444           </parameter>
3445         </parameters>
3446       </method>
3447       <method name="get_ellipsize"
3448               c:identifier="pango_layout_get_ellipsize"
3449               doc="Gets the type of ellipsization being performed for @layout.
3450 See pango_layout_set_ellipsize()
3451 Use pango_layout_is_ellipsized() to query whether any paragraphs
3452 were actually ellipsized."
3453               version="1.6">
3454         <return-value transfer-ownership="full">
3455           <type name="EllipsizeMode" c:type="PangoEllipsizeMode"/>
3456         </return-value>
3457       </method>
3458       <method name="is_ellipsized"
3459               c:identifier="pango_layout_is_ellipsized"
3460               doc="Queries whether the layout had to ellipsize any paragraphs.
3461 This returns %TRUE if the ellipsization mode for @layout
3462 is not %PANGO_ELLIPSIZE_NONE, a positive width is set on @layout,
3463 and there are paragraphs exceeding that width that have to be
3464 ellipsized.
3465 otherwise."
3466               version="1.16">
3467         <return-value transfer-ownership="none">
3468           <type name="boolean" c:type="gboolean"/>
3469         </return-value>
3470       </method>
3471       <method name="get_unknown_glyphs_count"
3472               c:identifier="pango_layout_get_unknown_glyphs_count"
3473               doc="Counts the number unknown glyphs in @layout.  That is, zero if
3474 glyphs for all characters in the layout text were found, or more
3475 than zero otherwise.
3476 This function can be used to determine if there are any fonts
3477 available to render all characters in a certain string, or when
3478 used in combination with %PANGO_ATTR_FALLBACK, to check if a
3479 certain font supports all the characters in the string."
3480               version="1.16">
3481         <return-value transfer-ownership="none">
3482           <type name="int" c:type="int"/>
3483         </return-value>
3484       </method>
3485       <method name="context_changed"
3486               c:identifier="pango_layout_context_changed"
3487               doc="Forces recomputation of any state in the #PangoLayout that
3488 might depend on the layout&apos;s context. This function should
3489 be called if you make changes to the context subsequent
3490 to creating the layout.">
3491         <return-value transfer-ownership="none">
3492           <type name="none" c:type="void"/>
3493         </return-value>
3494       </method>
3495       <method name="get_log_attrs"
3496               c:identifier="pango_layout_get_log_attrs"
3497               doc="This value must be freed with g_free().
3498 array. (The stored value will be one more than the total number
3499 of characters in the layout, since there need to be attributes
3500 corresponding to both the position before the first character
3501 and the position after the last character.)
3502 Retrieves an array of logical attributes for each character in
3503 the @layout.">
3504         <return-value transfer-ownership="none">
3505           <type name="none" c:type="void"/>
3506         </return-value>
3507         <parameters>
3508           <parameter name="attrs" transfer-ownership="none">
3509             <type name="LogAttr" c:type="PangoLogAttr**"/>
3510           </parameter>
3511           <parameter name="n_attrs" direction="out" transfer-ownership="full">
3512             <type name="int" c:type="gint*"/>
3513           </parameter>
3514         </parameters>
3515       </method>
3516       <method name="index_to_pos"
3517               c:identifier="pango_layout_index_to_pos"
3518               doc="Converts from an index within a #PangoLayout to the onscreen position
3519 corresponding to the grapheme at that index, which is represented
3520 as rectangle.  Note that &lt;literal&gt;pos-&gt;x&lt;/literal&gt; is always the leading
3521 edge of the grapheme and &lt;literal&gt;pos-&gt;x + pos-&gt;width&lt;/literal&gt; the trailing
3522 edge of the grapheme. If the directionality of the grapheme is right-to-left,
3523 then &lt;literal&gt;pos-&gt;width&lt;/literal&gt; will be negative.">
3524         <return-value transfer-ownership="none">
3525           <type name="none" c:type="void"/>
3526         </return-value>
3527         <parameters>
3528           <parameter name="index_" transfer-ownership="none">
3529             <type name="int" c:type="int"/>
3530           </parameter>
3531           <parameter name="pos" transfer-ownership="none">
3532             <type name="Rectangle" c:type="PangoRectangle*"/>
3533           </parameter>
3534         </parameters>
3535       </method>
3536       <method name="index_to_line_x"
3537               c:identifier="pango_layout_index_to_line_x"
3538               doc="position of. If 0, the trailing edge of the grapheme, if &gt; 0,
3539 the leading of the grapheme.
3540 between 0 and pango_layout_get_line_count(layout) - 1)
3541 (%PANGO_SCALE units per device unit)
3542 Converts from byte @index_ within the @layout to line and X position.
3543 (X position is measured from the left edge of the line)">
3544         <return-value transfer-ownership="none">
3545           <type name="none" c:type="void"/>
3546         </return-value>
3547         <parameters>
3548           <parameter name="index_" transfer-ownership="none">
3549             <type name="int" c:type="int"/>
3550           </parameter>
3551           <parameter name="trailing" transfer-ownership="none">
3552             <type name="boolean" c:type="gboolean"/>
3553           </parameter>
3554           <parameter name="line" direction="out" transfer-ownership="full">
3555             <type name="int" c:type="int*"/>
3556           </parameter>
3557           <parameter name="x_pos" direction="out" transfer-ownership="full">
3558             <type name="int" c:type="int*"/>
3559           </parameter>
3560         </parameters>
3561       </method>
3562       <method name="get_cursor_pos"
3563               c:identifier="pango_layout_get_cursor_pos"
3564               doc="Given an index within a layout, determines the positions that of the
3565 strong and weak cursors if the insertion point is at that
3566 index. The position of each cursor is stored as a zero-width
3567 rectangle. The strong cursor location is the location where
3568 characters of the directionality equal to the base direction of the
3569 layout are inserted.  The weak cursor location is the location
3570 where characters of the directionality opposite to the base
3571 direction of the layout are inserted.">
3572         <return-value transfer-ownership="none">
3573           <type name="none" c:type="void"/>
3574         </return-value>
3575         <parameters>
3576           <parameter name="index_" transfer-ownership="none">
3577             <type name="int" c:type="int"/>
3578           </parameter>
3579           <parameter name="strong_pos" transfer-ownership="none">
3580             <type name="Rectangle" c:type="PangoRectangle*"/>
3581           </parameter>
3582           <parameter name="weak_pos" transfer-ownership="none">
3583             <type name="Rectangle" c:type="PangoRectangle*"/>
3584           </parameter>
3585         </parameters>
3586       </method>
3587       <method name="move_cursor_visually"
3588               c:identifier="pango_layout_move_cursor_visually"
3589               doc="weak cursor. The strong cursor is the cursor corresponding
3590 to text insertion in the base direction for the layout.
3591 grapheme indicated by @old_index, if &gt; 0, the cursor
3592 was at the leading edge.
3593 value indicates motion to the left.
3594 indicates that the cursor has been moved off the beginning
3595 of the layout. A value of %G_MAXINT indicates that
3596 the cursor has been moved off the end of the layout.
3597 for @new_index to get the position where the cursor should
3598 be displayed. This allows distinguishing the position at
3599 the beginning of one line from the position at the end
3600 of the preceding line. @new_index is always on the line
3601 where the cursor should be displayed.
3602 Computes a new cursor position from an old position and
3603 a count of positions to move visually. If @direction is positive,
3604 then the new strong cursor position will be one position
3605 to the right of the old cursor position. If @direction is negative,
3606 then the new strong cursor position will be one position
3607 to the left of the old cursor position.
3608 In the presence of bidirectional text, the correspondence
3609 between logical and visual order will depend on the direction
3610 of the current run, and there may be jumps when the cursor
3611 is moved off of the end of a run.
3612 Motion here is in cursor positions, not in characters, so a
3613 single call to pango_layout_move_cursor_visually() may move the
3614 cursor over multiple characters when multiple characters combine
3615 to form a single grapheme.">
3616         <return-value transfer-ownership="none">
3617           <type name="none" c:type="void"/>
3618         </return-value>
3619         <parameters>
3620           <parameter name="strong" transfer-ownership="none">
3621             <type name="boolean" c:type="gboolean"/>
3622           </parameter>
3623           <parameter name="old_index" transfer-ownership="none">
3624             <type name="int" c:type="int"/>
3625           </parameter>
3626           <parameter name="old_trailing" transfer-ownership="none">
3627             <type name="int" c:type="int"/>
3628           </parameter>
3629           <parameter name="direction" transfer-ownership="none">
3630             <type name="int" c:type="int"/>
3631           </parameter>
3632           <parameter name="new_index"
3633                      direction="out"
3634                      transfer-ownership="full">
3635             <type name="int" c:type="int*"/>
3636           </parameter>
3637           <parameter name="new_trailing"
3638                      direction="out"
3639                      transfer-ownership="full">
3640             <type name="int" c:type="int*"/>
3641           </parameter>
3642         </parameters>
3643       </method>
3644       <method name="xy_to_index"
3645               c:identifier="pango_layout_xy_to_index"
3646               doc="from the left edge of the layout.
3647 from the top edge of the layout
3648 in the grapheme the user clicked. It will either
3649 be zero, or the number of characters in the
3650 grapheme. 0 represents the trailing edge of the grapheme.
3651 Converts from X and Y position within a layout to the byte
3652 index to the character at that logical position. If the
3653 Y position is not inside the layout, the closest position is chosen
3654 (the position will be clamped inside the layout). If the
3655 X position is not within the layout, then the start or the
3656 end of the line is chosen as  described for pango_layout_x_to_index().
3657 If either the X or Y positions were not inside the layout, then the
3658 function returns %FALSE; on an exact hit, it returns %TRUE.">
3659         <return-value transfer-ownership="none">
3660           <type name="boolean" c:type="gboolean"/>
3661         </return-value>
3662         <parameters>
3663           <parameter name="x" transfer-ownership="none">
3664             <type name="int" c:type="int"/>
3665           </parameter>
3666           <parameter name="y" transfer-ownership="none">
3667             <type name="int" c:type="int"/>
3668           </parameter>
3669           <parameter name="index_" direction="out" transfer-ownership="full">
3670             <type name="int" c:type="int*"/>
3671           </parameter>
3672           <parameter name="trailing" direction="out" transfer-ownership="full">
3673             <type name="int" c:type="int*"/>
3674           </parameter>
3675         </parameters>
3676       </method>
3677       <method name="get_extents"
3678               c:identifier="pango_layout_get_extents"
3679               doc="or %NULL to indicate that the result is not needed.
3680 %NULL to indicate that the result is not needed.
3681 Computes the logical and ink extents of @layout. Logical extents
3682 are usually what you want for positioning things.  Note that both extents
3683 may have non-zero x and y.  You may want to use those to offset where you
3684 render the layout.  Not doing that is a very typical bug that shows up as
3685 right-to-left layouts not being correctly positioned in a layout with
3686 a set width.
3687 The extents are given in layout coordinates and in Pango units; layout
3688 coordinates begin at the top left corner of the layout.">
3689         <return-value transfer-ownership="none">
3690           <type name="none" c:type="void"/>
3691         </return-value>
3692         <parameters>
3693           <parameter name="ink_rect" transfer-ownership="none">
3694             <type name="Rectangle" c:type="PangoRectangle*"/>
3695           </parameter>
3696           <parameter name="logical_rect" transfer-ownership="none">
3697             <type name="Rectangle" c:type="PangoRectangle*"/>
3698           </parameter>
3699         </parameters>
3700       </method>
3701       <method name="get_pixel_extents"
3702               c:identifier="pango_layout_get_pixel_extents"
3703               doc="or %NULL to indicate that the result is not needed.
3704 layout or %NULL to indicate that the result is not needed.
3705 Computes the logical and ink extents of @layout in device units.
3706 This function just calls pango_layout_get_extents() followed by
3707 two pango_extents_to_pixels() calls, rounding @ink_rect and @logical_rect
3708 such that the rounded rectangles fully contain the unrounded one (that is,
3709 passes them as first argument to pango_extents_to_pixels()).">
3710         <return-value transfer-ownership="none">
3711           <type name="none" c:type="void"/>
3712         </return-value>
3713         <parameters>
3714           <parameter name="ink_rect" transfer-ownership="none">
3715             <type name="Rectangle" c:type="PangoRectangle*"/>
3716           </parameter>
3717           <parameter name="logical_rect" transfer-ownership="none">
3718             <type name="Rectangle" c:type="PangoRectangle*"/>
3719           </parameter>
3720         </parameters>
3721       </method>
3722       <method name="get_size"
3723               c:identifier="pango_layout_get_size"
3724               doc="Determines the logical width and height of a #PangoLayout
3725 in Pango units (device units scaled by %PANGO_SCALE). This
3726 is simply a convenience function around pango_layout_get_extents().">
3727         <return-value transfer-ownership="none">
3728           <type name="none" c:type="void"/>
3729         </return-value>
3730         <parameters>
3731           <parameter name="width" direction="out" transfer-ownership="full">
3732             <type name="int" c:type="int*"/>
3733           </parameter>
3734           <parameter name="height" direction="out" transfer-ownership="full">
3735             <type name="int" c:type="int*"/>
3736           </parameter>
3737         </parameters>
3738       </method>
3739       <method name="get_pixel_size"
3740               c:identifier="pango_layout_get_pixel_size"
3741               doc="Determines the logical width and height of a #PangoLayout
3742 in device units. (pango_layout_get_size() returns the width
3743 and height scaled by %PANGO_SCALE.) This
3744 is simply a convenience function around
3745 pango_layout_get_pixel_extents().">
3746         <return-value transfer-ownership="none">
3747           <type name="none" c:type="void"/>
3748         </return-value>
3749         <parameters>
3750           <parameter name="width" direction="out" transfer-ownership="full">
3751             <type name="int" c:type="int*"/>
3752           </parameter>
3753           <parameter name="height" direction="out" transfer-ownership="full">
3754             <type name="int" c:type="int*"/>
3755           </parameter>
3756         </parameters>
3757       </method>
3758       <method name="get_baseline"
3759               c:identifier="pango_layout_get_baseline"
3760               doc="Gets the Y position of baseline of the first line in @layout."
3761               version="1.22">
3762         <return-value transfer-ownership="none">
3763           <type name="int" c:type="int"/>
3764         </return-value>
3765       </method>
3766       <method name="get_line_count"
3767               c:identifier="pango_layout_get_line_count"
3768               doc="Retrieves the count of lines for the @layout.">
3769         <return-value transfer-ownership="none">
3770           <type name="int" c:type="int"/>
3771         </return-value>
3772       </method>
3773       <method name="get_line"
3774               c:identifier="pango_layout_get_line"
3775               doc="&lt;literal&gt;pango_layout_get_line_count(layout) - 1&lt;/literal&gt;, inclusive.
3776 Retrieves a particular line from a #PangoLayout.
3777 Use the faster pango_layout_get_line_readonly() if you do not plan
3778 to modify the contents of the line (glyphs, glyph widths, etc.).
3779 index is out of range. This layout line can
3780 be ref&apos;ed and retained, but will become invalid
3781 if changes are made to the #PangoLayout.">
3782         <return-value transfer-ownership="full">
3783           <type name="LayoutLine" c:type="PangoLayoutLine*"/>
3784         </return-value>
3785         <parameters>
3786           <parameter name="line" transfer-ownership="none">
3787             <type name="int" c:type="int"/>
3788           </parameter>
3789         </parameters>
3790       </method>
3791       <method name="get_line_readonly"
3792               c:identifier="pango_layout_get_line_readonly"
3793               doc="&lt;literal&gt;pango_layout_get_line_count(layout) - 1&lt;/literal&gt;, inclusive.
3794 Retrieves a particular line from a #PangoLayout.
3795 This is a faster alternative to pango_layout_get_line(),
3796 but the user is not expected
3797 to modify the contents of the line (glyphs, glyph widths, etc.).
3798 index is out of range. This layout line can
3799 be ref&apos;ed and retained, but will become invalid
3800 if changes are made to the #PangoLayout.
3801 No changes should be made to the line."
3802               version="1.16">
3803         <return-value transfer-ownership="full">
3804           <type name="LayoutLine" c:type="PangoLayoutLine*"/>
3805         </return-value>
3806         <parameters>
3807           <parameter name="line" transfer-ownership="none">
3808             <type name="int" c:type="int"/>
3809           </parameter>
3810         </parameters>
3811       </method>
3812       <method name="get_lines"
3813               c:identifier="pango_layout_get_lines"
3814               doc="Returns the lines of the @layout as a list.
3815 Use the faster pango_layout_get_lines_readonly() if you do not plan
3816 to modify the contents of the lines (glyphs, glyph widths, etc.).
3817 the lines in the layout. This points to internal data of the #PangoLayout
3818 and must be used with care. It will become invalid on any change to the layout&apos;s
3819 text or properties.">
3820         <return-value transfer-ownership="none" doc="a #GSList containing">
3821           <type name="GLib.SList" c:type="GSList*">
3822             <type name="Pango.LayoutLine"/>
3823           </type>
3824         </return-value>
3825       </method>
3826       <method name="get_lines_readonly"
3827               c:identifier="pango_layout_get_lines_readonly"
3828               doc="Returns the lines of the @layout as a list.
3829 This is a faster alternative to pango_layout_get_lines(),
3830 but the user is not expected
3831 to modify the contents of the lines (glyphs, glyph widths, etc.).
3832 the lines in the layout. This points to internal data of the #PangoLayout and
3833 must be used with care. It will become invalid on any change to the layout&apos;s
3834 text or properties.  No changes should be made to the lines."
3835               version="1.16">
3836         <return-value transfer-ownership="none" doc="a #GSList containing">
3837           <type name="GLib.SList" c:type="GSList*">
3838             <type name="Pango.LayoutLine"/>
3839           </type>
3840         </return-value>
3841       </method>
3842       <method name="get_iter"
3843               c:identifier="pango_layout_get_iter"
3844               doc="Returns an iterator to iterate over the visual extents of the layout.
3845 pango_layout_iter_free().">
3846         <return-value transfer-ownership="full">
3847           <type name="LayoutIter" c:type="PangoLayoutIter*"/>
3848         </return-value>
3849       </method>
3850       <field name="parent_instance">
3851         <type name="GObject.Object" c:type="GObject"/>
3852       </field>
3853       <field name="context">
3854         <type name="Context" c:type="PangoContext*"/>
3855       </field>
3856       <field name="attrs">
3857         <type name="AttrList" c:type="PangoAttrList*"/>
3858       </field>
3859       <field name="font_desc">
3860         <type name="FontDescription" c:type="PangoFontDescription*"/>
3861       </field>
3862       <field name="tabs">
3863         <type name="TabArray" c:type="PangoTabArray*"/>
3864       </field>
3865       <field name="text">
3866         <type name="utf8" c:type="gchar*"/>
3867       </field>
3868       <field name="copy_begin">
3869         <type name="int" c:type="int"/>
3870       </field>
3871       <field name="length">
3872         <type name="int" c:type="int"/>
3873       </field>
3874       <field name="n_chars">
3875         <type name="int" c:type="int"/>
3876       </field>
3877       <field name="width">
3878         <type name="int" c:type="int"/>
3879       </field>
3880       <field name="height">
3881         <type name="int" c:type="int"/>
3882       </field>
3883       <field name="indent">
3884         <type name="int" c:type="int"/>
3885       </field>
3886       <field name="spacing">
3887         <type name="int" c:type="int"/>
3888       </field>
3889       <field name="justify" bits="1">
3890         <type name="uint" c:type="guint"/>
3891       </field>
3892       <field name="alignment" bits="2">
3893         <type name="uint" c:type="guint"/>
3894       </field>
3895       <field name="single_paragraph" bits="1">
3896         <type name="uint" c:type="guint"/>
3897       </field>
3898       <field name="auto_dir" bits="1">
3899         <type name="uint" c:type="guint"/>
3900       </field>
3901       <field name="wrap" bits="2">
3902         <type name="uint" c:type="guint"/>
3903       </field>
3904       <field name="is_wrapped" bits="1">
3905         <type name="uint" c:type="guint"/>
3906       </field>
3907       <field name="ellipsize" bits="2">
3908         <type name="uint" c:type="guint"/>
3909       </field>
3910       <field name="is_ellipsized" bits="1">
3911         <type name="uint" c:type="guint"/>
3912       </field>
3913       <field name="unknown_glyphs_count">
3914         <type name="int" c:type="int"/>
3915       </field>
3916       <field name="logical_rect_cached" bits="1">
3917         <type name="uint" c:type="guint"/>
3918       </field>
3919       <field name="ink_rect_cached" bits="1">
3920         <type name="uint" c:type="guint"/>
3921       </field>
3922       <field name="logical_rect">
3923         <type name="Rectangle" c:type="PangoRectangle"/>
3924       </field>
3925       <field name="ink_rect">
3926         <type name="Rectangle" c:type="PangoRectangle"/>
3927       </field>
3928       <field name="tab_width">
3929         <type name="int" c:type="int"/>
3930       </field>
3931       <field name="copy_end">
3932         <type name="int" c:type="int"/>
3933       </field>
3934       <field name="log_attrs">
3935         <type name="LogAttr" c:type="PangoLogAttr*"/>
3936       </field>
3937       <field name="lines">
3938         <type name="GLib.SList" c:type="GSList*"/>
3939       </field>
3940       <field name="line_count">
3941         <type name="uint" c:type="guint"/>
3942       </field>
3943     </class>
3944     <record name="LayoutClass"
3945             c:type="PangoLayoutClass"
3946             glib:is-gtype-struct-for="Layout">
3947     </record>
3948     <record name="LayoutIter"
3949             c:type="PangoLayoutIter"
3950             glib:type-name="PangoLayoutIter"
3951             glib:get-type="pango_layout_iter_get_type">
3952       <method name="copy"
3953               c:identifier="pango_layout_iter_copy"
3954               doc="Copies a #PangLayoutIter.
3955 be freed with pango_layout_iter_free(), or %NULL if"
3956               version="1.20">
3957         <return-value transfer-ownership="full">
3958           <type name="LayoutIter" c:type="PangoLayoutIter*"/>
3959         </return-value>
3960       </method>
3961       <method name="free"
3962               c:identifier="pango_layout_iter_free"
3963               doc="Frees an iterator that&apos;s no longer in use.">
3964         <return-value transfer-ownership="none">
3965           <type name="none" c:type="void"/>
3966         </return-value>
3967       </method>
3968       <method name="get_index"
3969               c:identifier="pango_layout_iter_get_index"
3970               doc="Gets the current byte index. Note that iterating forward by char
3971 moves in visual order, not logical order, so indexes may not be
3972 sequential. Also, the index may be equal to the length of the text
3973 in the layout, if on the %NULL run (see pango_layout_iter_get_run()).">
3974         <return-value transfer-ownership="none">
3975           <type name="int" c:type="int"/>
3976         </return-value>
3977       </method>
3978       <method name="get_run"
3979               c:identifier="pango_layout_iter_get_run"
3980               doc="Gets the current run. When iterating by run, at the end of each
3981 line, there&apos;s a position with a %NULL run, so this function can return
3982 %NULL. The %NULL run at the end of each line ensures that all lines have
3983 at least one run, even lines consisting of only a newline.
3984 Use the faster pango_layout_iter_get_run_readonly() if you do not plan
3985 to modify the contents of the run (glyphs, glyph widths, etc.).">
3986         <return-value transfer-ownership="full">
3987           <type name="LayoutRun" c:type="PangoLayoutRun*"/>
3988         </return-value>
3989       </method>
3990       <method name="get_run_readonly"
3991               c:identifier="pango_layout_iter_get_run_readonly"
3992               doc="Gets the current run. When iterating by run, at the end of each
3993 line, there&apos;s a position with a %NULL run, so this function can return
3994 %NULL. The %NULL run at the end of each line ensures that all lines have
3995 at least one run, even lines consisting of only a newline.
3996 This is a faster alternative to pango_layout_iter_get_run(),
3997 but the user is not expected
3998 to modify the contents of the run (glyphs, glyph widths, etc.)."
3999               version="1.16">
4000         <return-value transfer-ownership="full">
4001           <type name="LayoutRun" c:type="PangoLayoutRun*"/>
4002         </return-value>
4003       </method>
4004       <method name="get_line"
4005               c:identifier="pango_layout_iter_get_line"
4006               doc="Gets the current line.
4007 Use the faster pango_layout_iter_get_line_readonly() if you do not plan
4008 to modify the contents of the line (glyphs, glyph widths, etc.).">
4009         <return-value transfer-ownership="full">
4010           <type name="LayoutLine" c:type="PangoLayoutLine*"/>
4011         </return-value>
4012       </method>
4013       <method name="get_line_readonly"
4014               c:identifier="pango_layout_iter_get_line_readonly"
4015               doc="Gets the current line for read-only access.
4016 This is a faster alternative to pango_layout_iter_get_line(),
4017 but the user is not expected
4018 to modify the contents of the line (glyphs, glyph widths, etc.)."
4019               version="1.16">
4020         <return-value transfer-ownership="full">
4021           <type name="LayoutLine" c:type="PangoLayoutLine*"/>
4022         </return-value>
4023       </method>
4024       <method name="at_last_line"
4025               c:identifier="pango_layout_iter_at_last_line"
4026               doc="Determines whether @iter is on the last line of the layout.">
4027         <return-value transfer-ownership="none">
4028           <type name="boolean" c:type="gboolean"/>
4029         </return-value>
4030       </method>
4031       <method name="get_layout"
4032               c:identifier="pango_layout_iter_get_layout"
4033               doc="Gets the layout associated with a #PangoLayoutIter."
4034               version="1.20">
4035         <return-value transfer-ownership="full">
4036           <type name="Layout" c:type="PangoLayout*"/>
4037         </return-value>
4038       </method>
4039       <method name="next_char"
4040               c:identifier="pango_layout_iter_next_char"
4041               doc="Moves @iter forward to the next character in visual order. If @iter was already at
4042 the end of the layout, returns %FALSE.">
4043         <return-value transfer-ownership="none">
4044           <type name="boolean" c:type="gboolean"/>
4045         </return-value>
4046       </method>
4047       <method name="next_cluster"
4048               c:identifier="pango_layout_iter_next_cluster"
4049               doc="Moves @iter forward to the next cluster in visual order. If @iter
4050 was already at the end of the layout, returns %FALSE.">
4051         <return-value transfer-ownership="none">
4052           <type name="boolean" c:type="gboolean"/>
4053         </return-value>
4054       </method>
4055       <method name="next_run"
4056               c:identifier="pango_layout_iter_next_run"
4057               doc="Moves @iter forward to the next run in visual order. If @iter was
4058 already at the end of the layout, returns %FALSE.">
4059         <return-value transfer-ownership="none">
4060           <type name="boolean" c:type="gboolean"/>
4061         </return-value>
4062       </method>
4063       <method name="next_line"
4064               c:identifier="pango_layout_iter_next_line"
4065               doc="Moves @iter forward to the start of the next line. If @iter is
4066 already on the last line, returns %FALSE.">
4067         <return-value transfer-ownership="none">
4068           <type name="boolean" c:type="gboolean"/>
4069         </return-value>
4070       </method>
4071       <method name="get_char_extents"
4072               c:identifier="pango_layout_iter_get_char_extents"
4073               doc="Gets the extents of the current character, in layout coordinates
4074 (origin is the top left of the entire layout). Only logical extents
4075 can sensibly be obtained for characters; ink extents make sense only
4076 down to the level of clusters.">
4077         <return-value transfer-ownership="none">
4078           <type name="none" c:type="void"/>
4079         </return-value>
4080         <parameters>
4081           <parameter name="logical_rect" transfer-ownership="none">
4082             <type name="Rectangle" c:type="PangoRectangle*"/>
4083           </parameter>
4084         </parameters>
4085       </method>
4086       <method name="get_cluster_extents"
4087               c:identifier="pango_layout_iter_get_cluster_extents"
4088               doc="Gets the extents of the current cluster, in layout coordinates
4089 (origin is the top left of the entire layout).">
4090         <return-value transfer-ownership="none">
4091           <type name="none" c:type="void"/>
4092         </return-value>
4093         <parameters>
4094           <parameter name="ink_rect" transfer-ownership="none">
4095             <type name="Rectangle" c:type="PangoRectangle*"/>
4096           </parameter>
4097           <parameter name="logical_rect" transfer-ownership="none">
4098             <type name="Rectangle" c:type="PangoRectangle*"/>
4099           </parameter>
4100         </parameters>
4101       </method>
4102       <method name="get_run_extents"
4103               c:identifier="pango_layout_iter_get_run_extents"
4104               doc="Gets the extents of the current run in layout coordinates
4105 (origin is the top left of the entire layout).">
4106         <return-value transfer-ownership="none">
4107           <type name="none" c:type="void"/>
4108         </return-value>
4109         <parameters>
4110           <parameter name="ink_rect" transfer-ownership="none">
4111             <type name="Rectangle" c:type="PangoRectangle*"/>
4112           </parameter>
4113           <parameter name="logical_rect" transfer-ownership="none">
4114             <type name="Rectangle" c:type="PangoRectangle*"/>
4115           </parameter>
4116         </parameters>
4117       </method>
4118       <method name="get_line_extents"
4119               c:identifier="pango_layout_iter_get_line_extents"
4120               doc="Obtains the extents of the current line. @ink_rect or @logical_rect
4121 can be %NULL if you aren&apos;t interested in them. Extents are in layout
4122 coordinates (origin is the top-left corner of the entire
4123 #PangoLayout).  Thus the extents returned by this function will be
4124 the same width/height but not at the same x/y as the extents
4125 returned from pango_layout_line_get_extents().">
4126         <return-value transfer-ownership="none">
4127           <type name="none" c:type="void"/>
4128         </return-value>
4129         <parameters>
4130           <parameter name="ink_rect" transfer-ownership="none">
4131             <type name="Rectangle" c:type="PangoRectangle*"/>
4132           </parameter>
4133           <parameter name="logical_rect" transfer-ownership="none">
4134             <type name="Rectangle" c:type="PangoRectangle*"/>
4135           </parameter>
4136         </parameters>
4137       </method>
4138       <method name="get_line_yrange"
4139               c:identifier="pango_layout_iter_get_line_yrange"
4140               doc="Divides the vertical space in the #PangoLayout being iterated over
4141 between the lines in the layout, and returns the space belonging to
4142 the current line.  A line&apos;s range includes the line&apos;s logical
4143 extents, plus half of the spacing above and below the line, if
4144 pango_layout_set_spacing() has been called to set layout spacing.
4145 The Y positions are in layout coordinates (origin at top left of the
4146 entire layout).">
4147         <return-value transfer-ownership="none">
4148           <type name="none" c:type="void"/>
4149         </return-value>
4150         <parameters>
4151           <parameter name="y0_" direction="out" transfer-ownership="full">
4152             <type name="int" c:type="int*"/>
4153           </parameter>
4154           <parameter name="y1_" direction="out" transfer-ownership="full">
4155             <type name="int" c:type="int*"/>
4156           </parameter>
4157         </parameters>
4158       </method>
4159       <method name="get_layout_extents"
4160               c:identifier="pango_layout_iter_get_layout_extents"
4161               doc="Obtains the extents of the #PangoLayout being iterated
4162 over. @ink_rect or @logical_rect can be %NULL if you
4163 aren&apos;t interested in them.">
4164         <return-value transfer-ownership="none">
4165           <type name="none" c:type="void"/>
4166         </return-value>
4167         <parameters>
4168           <parameter name="ink_rect" transfer-ownership="none">
4169             <type name="Rectangle" c:type="PangoRectangle*"/>
4170           </parameter>
4171           <parameter name="logical_rect" transfer-ownership="none">
4172             <type name="Rectangle" c:type="PangoRectangle*"/>
4173           </parameter>
4174         </parameters>
4175       </method>
4176       <method name="get_baseline"
4177               c:identifier="pango_layout_iter_get_baseline"
4178               doc="Gets the Y position of the current line&apos;s baseline, in layout
4179 coordinates (origin at top left of the entire layout).">
4180         <return-value transfer-ownership="none">
4181           <type name="int" c:type="int"/>
4182         </return-value>
4183       </method>
4184     </record>
4185     <record name="LayoutLine"
4186             c:type="PangoLayoutLine"
4187             glib:type-name="PangoLayoutLine"
4188             glib:get-type="pango_layout_line_get_type">
4189       <field name="layout" writable="1">
4190         <type name="Layout" c:type="PangoLayout*"/>
4191       </field>
4192       <field name="start_index" writable="1">
4193         <type name="int" c:type="gint"/>
4194       </field>
4195       <field name="length" writable="1">
4196         <type name="int" c:type="gint"/>
4197       </field>
4198       <field name="runs" writable="1">
4199         <type name="GLib.SList" c:type="GSList*"/>
4200       </field>
4201       <field name="is_paragraph_start" writable="1" bits="1">
4202         <type name="uint" c:type="guint"/>
4203       </field>
4204       <field name="resolved_dir" writable="1" bits="3">
4205         <type name="uint" c:type="guint"/>
4206       </field>
4207       <method name="ref"
4208               c:identifier="pango_layout_line_ref"
4209               doc="Increase the reference count of a #PangoLayoutLine by one."
4210               version="1.10">
4211         <return-value transfer-ownership="full">
4212           <type name="LayoutLine" c:type="PangoLayoutLine*"/>
4213         </return-value>
4214       </method>
4215       <method name="unref"
4216               c:identifier="pango_layout_line_unref"
4217               doc="Decrease the reference count of a #PangoLayoutLine by one.
4218 If the result is zero, the line and all associated memory
4219 will be freed.">
4220         <return-value transfer-ownership="none">
4221           <type name="none" c:type="void"/>
4222         </return-value>
4223       </method>
4224       <method name="x_to_index"
4225               c:identifier="pango_layout_line_x_to_index"
4226               doc="from the left edge of the line.
4227 the grapheme in which the user clicked.
4228 in the grapheme the user clicked. It will either
4229 be zero, or the number of characters in the
4230 grapheme. 0 represents the leading edge of the grapheme.
4231 Converts from x offset to the byte index of the corresponding
4232 character within the text of the layout. If @x_pos is outside the line,
4233 in the line. This determination is based on the resolved direction
4234 of the paragraph; for example, if the resolved direction is
4235 right-to-left, then an X position to the right of the line (after it)
4236 results in 0 being stored in @index_ and @trailing. An X position to the
4237 left of the line results in @index_ pointing to the (logical) last
4238 grapheme in the line and @trailing being set to the number of characters
4239 in that grapheme. The reverse is true for a left-to-right line.">
4240         <return-value transfer-ownership="none">
4241           <type name="boolean" c:type="gboolean"/>
4242         </return-value>
4243         <parameters>
4244           <parameter name="x_pos" transfer-ownership="none">
4245             <type name="int" c:type="int"/>
4246           </parameter>
4247           <parameter name="index_" direction="out" transfer-ownership="full">
4248             <type name="int" c:type="int*"/>
4249           </parameter>
4250           <parameter name="trailing" direction="out" transfer-ownership="full">
4251             <type name="int" c:type="int*"/>
4252           </parameter>
4253         </parameters>
4254       </method>
4255       <method name="index_to_x"
4256               c:identifier="pango_layout_line_index_to_x"
4257               doc="the position of. If &gt; 0, the trailing edge of the grapheme,
4258 if 0, the leading of the grapheme.
4259 Converts an index within a line to a X position.">
4260         <return-value transfer-ownership="none">
4261           <type name="none" c:type="void"/>
4262         </return-value>
4263         <parameters>
4264           <parameter name="index_" transfer-ownership="none">
4265             <type name="int" c:type="int"/>
4266           </parameter>
4267           <parameter name="trailing" transfer-ownership="none">
4268             <type name="boolean" c:type="gboolean"/>
4269           </parameter>
4270           <parameter name="x_pos" transfer-ownership="none">
4271             <type name="int" c:type="int*"/>
4272           </parameter>
4273         </parameters>
4274       </method>
4275       <method name="get_x_ranges"
4276               c:identifier="pango_layout_line_get_x_ranges"
4277               doc="is less than the start index for the line, then
4278 the first range will extend all the way to the leading
4279 edge of the layout. Otherwise it will start at the
4280 leading edge of the first character.
4281 is greater than the end index for the line, then
4282 the last range will extend all the way to the trailing
4283 edge of the layout. Otherwise, it will end at the
4284 trailing edge of the last character.
4285 location to store a pointer to an array of ranges.
4286 The array will be of length &lt;literal&gt;2*n_ranges&lt;/literal&gt;,
4287 with each range starting at &lt;literal&gt;(*ranges)[2*n]&lt;/literal&gt;
4288 and of width &lt;literal&gt;(*ranges)[2*n + 1] - (*ranges)[2*n]&lt;/literal&gt;.
4289 This array must be freed with g_free(). The coordinates are relative
4290 to the layout and are in Pango units.
4291 Gets a list of visual ranges corresponding to a given logical range.
4292 This list is not necessarily minimal - there may be consecutive
4293 ranges which are adjacent. The ranges will be sorted from left to
4294 right. The ranges are with respect to the left edge of the entire
4295 layout, not with respect to the line.">
4296         <return-value transfer-ownership="none">
4297           <type name="none" c:type="void"/>
4298         </return-value>
4299         <parameters>
4300           <parameter name="start_index" transfer-ownership="none">
4301             <type name="int" c:type="int"/>
4302           </parameter>
4303           <parameter name="end_index" transfer-ownership="none">
4304             <type name="int" c:type="int"/>
4305           </parameter>
4306           <parameter name="ranges" direction="out" transfer-ownership="full">
4307             <array length="4" c:type="int**">
4308               <type name="int"/>
4309             </array>
4310           </parameter>
4311           <parameter name="n_ranges" direction="out" transfer-ownership="full">
4312             <type name="int" c:type="int*"/>
4313           </parameter>
4314         </parameters>
4315       </method>
4316       <method name="get_extents"
4317               c:identifier="pango_layout_line_get_extents"
4318               doc="as drawn, or %NULL
4319 string, or %NULL
4320 Computes the logical and ink extents of a layout line. See
4321 pango_font_get_glyph_extents() for details about the interpretation
4322 of the rectangles.">
4323         <return-value transfer-ownership="none">
4324           <type name="none" c:type="void"/>
4325         </return-value>
4326         <parameters>
4327           <parameter name="ink_rect" transfer-ownership="none">
4328             <type name="Rectangle" c:type="PangoRectangle*"/>
4329           </parameter>
4330           <parameter name="logical_rect" transfer-ownership="none">
4331             <type name="Rectangle" c:type="PangoRectangle*"/>
4332           </parameter>
4333         </parameters>
4334       </method>
4335       <method name="get_pixel_extents"
4336               c:identifier="pango_layout_line_get_pixel_extents"
4337               doc="as drawn, or %NULL
4338 string, or %NULL
4339 Computes the logical and ink extents of @layout_line in device units.
4340 This function just calls pango_layout_line_get_extents() followed by
4341 two pango_extents_to_pixels() calls, rounding @ink_rect and @logical_rect
4342 such that the rounded rectangles fully contain the unrounded one (that is,
4343 passes them as first argument to pango_extents_to_pixels()).">
4344         <return-value transfer-ownership="none">
4345           <type name="none" c:type="void"/>
4346         </return-value>
4347         <parameters>
4348           <parameter name="ink_rect" transfer-ownership="none">
4349             <type name="Rectangle" c:type="PangoRectangle*"/>
4350           </parameter>
4351           <parameter name="logical_rect" transfer-ownership="none">
4352             <type name="Rectangle" c:type="PangoRectangle*"/>
4353           </parameter>
4354         </parameters>
4355       </method>
4356     </record>
4357     <record name="LogAttr" c:type="PangoLogAttr">
4358       <field name="is_line_break" writable="1" bits="1">
4359         <type name="uint" c:type="guint"/>
4360       </field>
4361       <field name="is_mandatory_break" writable="1" bits="1">
4362         <type name="uint" c:type="guint"/>
4363       </field>
4364       <field name="is_char_break" writable="1" bits="1">
4365         <type name="uint" c:type="guint"/>
4366       </field>
4367       <field name="is_white" writable="1" bits="1">
4368         <type name="uint" c:type="guint"/>
4369       </field>
4370       <field name="is_cursor_position" writable="1" bits="1">
4371         <type name="uint" c:type="guint"/>
4372       </field>
4373       <field name="is_word_start" writable="1" bits="1">
4374         <type name="uint" c:type="guint"/>
4375       </field>
4376       <field name="is_word_end" writable="1" bits="1">
4377         <type name="uint" c:type="guint"/>
4378       </field>
4379       <field name="is_sentence_boundary" writable="1" bits="1">
4380         <type name="uint" c:type="guint"/>
4381       </field>
4382       <field name="is_sentence_start" writable="1" bits="1">
4383         <type name="uint" c:type="guint"/>
4384       </field>
4385       <field name="is_sentence_end" writable="1" bits="1">
4386         <type name="uint" c:type="guint"/>
4387       </field>
4388       <field name="backspace_deletes_character" writable="1" bits="1">
4389         <type name="uint" c:type="guint"/>
4390       </field>
4391       <field name="is_expandable_space" writable="1" bits="1">
4392         <type name="uint" c:type="guint"/>
4393       </field>
4394       <field name="is_word_boundary" writable="1" bits="1">
4395         <type name="uint" c:type="guint"/>
4396       </field>
4397     </record>
4398     <record name="Matrix"
4399             c:type="PangoMatrix"
4400             doc="A structure specifying a transformation between user-space
4401 coordinates and device coordinates. The transformation
4402 is given by
4403 &lt;programlisting&gt;
4404 x_device = x_user * matrix-&gt;xx + y_user * matrix-&gt;xy + matrix-&gt;x0;
4405 y_device = x_user * matrix-&gt;yx + y_user * matrix-&gt;yy + matrix-&gt;y0;
4406 &lt;/programlisting&gt;"
4407             version="1.6"
4408             glib:type-name="PangoMatrix"
4409             glib:get-type="pango_matrix_get_type">
4410       <field name="xx" writable="1">
4411         <type name="double" c:type="double"/>
4412       </field>
4413       <field name="xy" writable="1">
4414         <type name="double" c:type="double"/>
4415       </field>
4416       <field name="yx" writable="1">
4417         <type name="double" c:type="double"/>
4418       </field>
4419       <field name="yy" writable="1">
4420         <type name="double" c:type="double"/>
4421       </field>
4422       <field name="x0" writable="1">
4423         <type name="double" c:type="double"/>
4424       </field>
4425       <field name="y0" writable="1">
4426         <type name="double" c:type="double"/>
4427       </field>
4428       <method name="copy"
4429               c:identifier="pango_matrix_copy"
4430               doc="Copies a #PangoMatrix.
4431 be freed with pango_matrix_free(), or %NULL if"
4432               version="1.6">
4433         <return-value transfer-ownership="full">
4434           <type name="Matrix" c:type="PangoMatrix*"/>
4435         </return-value>
4436       </method>
4437       <method name="free"
4438               c:identifier="pango_matrix_free"
4439               doc="Free a #PangoMatrix created with pango_matrix_copy()."
4440               version="1.6">
4441         <return-value transfer-ownership="none">
4442           <type name="none" c:type="void"/>
4443         </return-value>
4444       </method>
4445       <method name="translate"
4446               c:identifier="pango_matrix_translate"
4447               doc="Changes the transformation represented by @matrix to be the
4448 transformation given by first translating by (@tx, @ty)
4449 then applying the original transformation."
4450               version="1.6">
4451         <return-value transfer-ownership="none">
4452           <type name="none" c:type="void"/>
4453         </return-value>
4454         <parameters>
4455           <parameter name="tx" transfer-ownership="none">
4456             <type name="double" c:type="double"/>
4457           </parameter>
4458           <parameter name="ty" transfer-ownership="none">
4459             <type name="double" c:type="double"/>
4460           </parameter>
4461         </parameters>
4462       </method>
4463       <method name="scale"
4464               c:identifier="pango_matrix_scale"
4465               doc="Changes the transformation represented by @matrix to be the
4466 transformation given by first scaling by @sx in the X direction
4467 and @sy in the Y direction then applying the original
4468 transformation."
4469               version="1.6">
4470         <return-value transfer-ownership="none">
4471           <type name="none" c:type="void"/>
4472         </return-value>
4473         <parameters>
4474           <parameter name="scale_x" transfer-ownership="none">
4475             <type name="double" c:type="double"/>
4476           </parameter>
4477           <parameter name="scale_y" transfer-ownership="none">
4478             <type name="double" c:type="double"/>
4479           </parameter>
4480         </parameters>
4481       </method>
4482       <method name="rotate"
4483               c:identifier="pango_matrix_rotate"
4484               doc="Changes the transformation represented by @matrix to be the
4485 transformation given by first rotating by @degrees degrees
4486 counter-clockwise then applying the original transformation."
4487               version="1.6">
4488         <return-value transfer-ownership="none">
4489           <type name="none" c:type="void"/>
4490         </return-value>
4491         <parameters>
4492           <parameter name="degrees" transfer-ownership="none">
4493             <type name="double" c:type="double"/>
4494           </parameter>
4495         </parameters>
4496       </method>
4497       <method name="concat"
4498               c:identifier="pango_matrix_concat"
4499               doc="Changes the transformation represented by @matrix to be the
4500 transformation given by first applying transformation
4501 given by @new_matrix then applying the original transformation."
4502               version="1.6">
4503         <return-value transfer-ownership="none">
4504           <type name="none" c:type="void"/>
4505         </return-value>
4506         <parameters>
4507           <parameter name="new_matrix" transfer-ownership="none">
4508             <type name="Matrix" c:type="PangoMatrix*"/>
4509           </parameter>
4510         </parameters>
4511       </method>
4512       <method name="transform_point"
4513               c:identifier="pango_matrix_transform_point"
4514               doc="Transforms the point (@x, @y) by @matrix."
4515               version="1.16">
4516         <return-value transfer-ownership="none">
4517           <type name="none" c:type="void"/>
4518         </return-value>
4519         <parameters>
4520           <parameter name="x" direction="out" transfer-ownership="full">
4521             <type name="double" c:type="double*"/>
4522           </parameter>
4523           <parameter name="y" direction="out" transfer-ownership="full">
4524             <type name="double" c:type="double*"/>
4525           </parameter>
4526         </parameters>
4527       </method>
4528       <method name="transform_distance"
4529               c:identifier="pango_matrix_transform_distance"
4530               doc="Transforms the distance vector (@dx,@dy) by @matrix. This is
4531 similar to pango_matrix_transform_point() except that the translation
4532 components of the transformation are ignored. The calculation of
4533 the returned vector is as follows:
4534 &lt;programlisting&gt;
4535 dx2 = dx1 * xx + dy1 * xy;
4536 dy2 = dx1 * yx + dy1 * yy;
4537 &lt;/programlisting&gt;
4538 Affine transformations are position invariant, so the same vector
4539 always transforms to the same vector. If (@x1,@y1) transforms
4540 to (@x2,@y2) then (@x1+@dx1,@y1+@dy1) will transform to
4541 (@x1+@dx2,@y1+@dy2) for all values of @x1 and @x2."
4542               version="1.16">
4543         <return-value transfer-ownership="none">
4544           <type name="none" c:type="void"/>
4545         </return-value>
4546         <parameters>
4547           <parameter name="dx" direction="out" transfer-ownership="full">
4548             <type name="double" c:type="double*"/>
4549           </parameter>
4550           <parameter name="dy" direction="out" transfer-ownership="full">
4551             <type name="double" c:type="double*"/>
4552           </parameter>
4553         </parameters>
4554       </method>
4555       <method name="transform_rectangle"
4556               c:identifier="pango_matrix_transform_rectangle"
4557               doc="First transforms @rect using @matrix, then calculates the bounding box
4558 of the transformed rectangle.  The rectangle should be in Pango units.
4559 This function is useful for example when you want to draw a rotated
4560 should be and how much you should shift the layout when rendering.
4561 If you have a rectangle in device units (pixels), use
4562 pango_matrix_transform_pixel_rectangle().
4563 If you have the rectangle in Pango units and want to convert to
4564 transformed pixel bounding box, it is more accurate to transform it first
4565 (using this function) and pass the result to pango_extents_to_pixels(),
4566 first argument, for an inclusive rounded rectangle.
4567 However, there are valid reasons that you may want to convert
4568 to pixels first and then transform, for example when the transformed
4569 coordinates may overflow in Pango units (large matrix translation for
4570 example)."
4571               version="1.16">
4572         <return-value transfer-ownership="none">
4573           <type name="none" c:type="void"/>
4574         </return-value>
4575         <parameters>
4576           <parameter name="rect" transfer-ownership="none">
4577             <type name="Rectangle" c:type="PangoRectangle*"/>
4578           </parameter>
4579         </parameters>
4580       </method>
4581       <method name="transform_pixel_rectangle"
4582               c:identifier="pango_matrix_transform_pixel_rectangle"
4583               doc="First transforms the @rect using @matrix, then calculates the bounding box
4584 of the transformed rectangle.  The rectangle should be in device units
4585 (pixels).
4586 This function is useful for example when you want to draw a rotated
4587 should be and how much you should shift the layout when rendering.
4588 For better accuracy, you should use pango_matrix_transform_rectangle() on
4589 original rectangle in Pango units and convert to pixels afterward
4590 using pango_extents_to_pixels()&apos;s first argument."
4591               version="1.16">
4592         <return-value transfer-ownership="none">
4593           <type name="none" c:type="void"/>
4594         </return-value>
4595         <parameters>
4596           <parameter name="rect" transfer-ownership="none">
4597             <type name="Rectangle" c:type="PangoRectangle*"/>
4598           </parameter>
4599         </parameters>
4600       </method>
4601       <method name="get_font_scale_factor"
4602               c:identifier="pango_matrix_get_font_scale_factor"
4603               doc="Returns the scale factor of a matrix on the height of the font.
4604 That is, the scale factor in the direction perpendicular to the
4605 vector that the X coordinate is mapped to.
4606 or 1.0 if @matrix is %NULL."
4607               version="1.12">
4608         <return-value transfer-ownership="none">
4609           <type name="double" c:type="double"/>
4610         </return-value>
4611       </method>
4612     </record>
4613     <record name="ParenStackEntry" c:type="ParenStackEntry">
4614       <field name="pair_index" writable="1">
4615         <type name="int" c:type="int"/>
4616       </field>
4617       <field name="script_code" writable="1">
4618         <type name="Script" c:type="PangoScript"/>
4619       </field>
4620     </record>
4621     <constant name="RENDER_TYPE_NONE" value="PangoRenderNone">
4622       <type name="utf8"/>
4623     </constant>
4624     <record name="Rectangle" c:type="PangoRectangle">
4625       <field name="x" writable="1">
4626         <type name="int" c:type="int"/>
4627       </field>
4628       <field name="y" writable="1">
4629         <type name="int" c:type="int"/>
4630       </field>
4631       <field name="width" writable="1">
4632         <type name="int" c:type="int"/>
4633       </field>
4634       <field name="height" writable="1">
4635         <type name="int" c:type="int"/>
4636       </field>
4637     </record>
4638     <enumeration name="RenderPart"
4639                  doc="#PangoRenderPart defines different items to render for such
4640 purposes as setting colors."
4641                  version="1.8"
4642                  glib:type-name="PangoRenderPart"
4643                  glib:get-type="pango_render_part_get_type"
4644                  c:type="PangoRenderPart">
4645       <member name="foreground"
4646               value="0"
4647               c:identifier="PANGO_RENDER_PART_FOREGROUND"
4648               glib:nick="foreground"/>
4649       <member name="background"
4650               value="1"
4651               c:identifier="PANGO_RENDER_PART_BACKGROUND"
4652               glib:nick="background"/>
4653       <member name="underline"
4654               value="2"
4655               c:identifier="PANGO_RENDER_PART_UNDERLINE"
4656               glib:nick="underline"/>
4657       <member name="strikethrough"
4658               value="3"
4659               c:identifier="PANGO_RENDER_PART_STRIKETHROUGH"
4660               glib:nick="strikethrough"/>
4661     </enumeration>
4662     <class name="Renderer"
4663            c:type="PangoRenderer"
4664            doc="be %NULL, which should be treated the same as the identity matrix.
4665 #PangoRenderer is a base class for objects that are used to
4666 render Pango objects such as #PangoGlyphString and
4667 #PangoLayout."
4668            version="1.8"
4669            parent="GObject.Object"
4670            abstract="1"
4671            glib:type-name="PangoRenderer"
4672            glib:get-type="pango_renderer_get_type"
4673            glib:type-struct="RendererClass">
4674       <virtual-method name="draw_glyphs" invoker="draw_glyphs">
4675         <return-value transfer-ownership="none">
4676           <type name="none" c:type="void"/>
4677         </return-value>
4678         <parameters>
4679           <parameter name="font" transfer-ownership="none">
4680             <type name="Font" c:type="PangoFont*"/>
4681           </parameter>
4682           <parameter name="glyphs" transfer-ownership="none">
4683             <type name="GlyphString" c:type="PangoGlyphString*"/>
4684           </parameter>
4685           <parameter name="x" transfer-ownership="none">
4686             <type name="int" c:type="int"/>
4687           </parameter>
4688           <parameter name="y" transfer-ownership="none">
4689             <type name="int" c:type="int"/>
4690           </parameter>
4691         </parameters>
4692       </virtual-method>
4693       <virtual-method name="draw_rectangle" invoker="draw_rectangle">
4694         <return-value transfer-ownership="none">
4695           <type name="none" c:type="void"/>
4696         </return-value>
4697         <parameters>
4698           <parameter name="part" transfer-ownership="none">
4699             <type name="RenderPart" c:type="PangoRenderPart"/>
4700           </parameter>
4701           <parameter name="x" transfer-ownership="none">
4702             <type name="int" c:type="int"/>
4703           </parameter>
4704           <parameter name="y" transfer-ownership="none">
4705             <type name="int" c:type="int"/>
4706           </parameter>
4707           <parameter name="width" transfer-ownership="none">
4708             <type name="int" c:type="int"/>
4709           </parameter>
4710           <parameter name="height" transfer-ownership="none">
4711             <type name="int" c:type="int"/>
4712           </parameter>
4713         </parameters>
4714       </virtual-method>
4715       <virtual-method name="draw_error_underline"
4716                       invoker="draw_error_underline">
4717         <return-value transfer-ownership="none">
4718           <type name="none" c:type="void"/>
4719         </return-value>
4720         <parameters>
4721           <parameter name="x" transfer-ownership="none">
4722             <type name="int" c:type="int"/>
4723           </parameter>
4724           <parameter name="y" transfer-ownership="none">
4725             <type name="int" c:type="int"/>
4726           </parameter>
4727           <parameter name="width" transfer-ownership="none">
4728             <type name="int" c:type="int"/>
4729           </parameter>
4730           <parameter name="height" transfer-ownership="none">
4731             <type name="int" c:type="int"/>
4732           </parameter>
4733         </parameters>
4734       </virtual-method>
4735       <virtual-method name="draw_shape">
4736         <return-value transfer-ownership="none">
4737           <type name="none" c:type="void"/>
4738         </return-value>
4739         <parameters>
4740           <parameter name="attr" transfer-ownership="none">
4741             <type name="AttrShape" c:type="PangoAttrShape*"/>
4742           </parameter>
4743           <parameter name="x" transfer-ownership="none">
4744             <type name="int" c:type="int"/>
4745           </parameter>
4746           <parameter name="y" transfer-ownership="none">
4747             <type name="int" c:type="int"/>
4748           </parameter>
4749         </parameters>
4750       </virtual-method>
4751       <virtual-method name="draw_trapezoid" invoker="draw_trapezoid">
4752         <return-value transfer-ownership="none">
4753           <type name="none" c:type="void"/>
4754         </return-value>
4755         <parameters>
4756           <parameter name="part" transfer-ownership="none">
4757             <type name="RenderPart" c:type="PangoRenderPart"/>
4758           </parameter>
4759           <parameter name="y1_" transfer-ownership="none">
4760             <type name="double" c:type="double"/>
4761           </parameter>
4762           <parameter name="x11" transfer-ownership="none">
4763             <type name="double" c:type="double"/>
4764           </parameter>
4765           <parameter name="x21" transfer-ownership="none">
4766             <type name="double" c:type="double"/>
4767           </parameter>
4768           <parameter name="y2" transfer-ownership="none">
4769             <type name="double" c:type="double"/>
4770           </parameter>
4771           <parameter name="x12" transfer-ownership="none">
4772             <type name="double" c:type="double"/>
4773           </parameter>
4774           <parameter name="x22" transfer-ownership="none">
4775             <type name="double" c:type="double"/>
4776           </parameter>
4777         </parameters>
4778       </virtual-method>
4779       <virtual-method name="draw_glyph" invoker="draw_glyph">
4780         <return-value transfer-ownership="none">
4781           <type name="none" c:type="void"/>
4782         </return-value>
4783         <parameters>
4784           <parameter name="font" transfer-ownership="none">
4785             <type name="Font" c:type="PangoFont*"/>
4786           </parameter>
4787           <parameter name="glyph" transfer-ownership="none">
4788             <type name="Glyph" c:type="PangoGlyph"/>
4789           </parameter>
4790           <parameter name="x" transfer-ownership="none">
4791             <type name="double" c:type="double"/>
4792           </parameter>
4793           <parameter name="y" transfer-ownership="none">
4794             <type name="double" c:type="double"/>
4795           </parameter>
4796         </parameters>
4797       </virtual-method>
4798       <virtual-method name="part_changed" invoker="part_changed">
4799         <return-value transfer-ownership="none">
4800           <type name="none" c:type="void"/>
4801         </return-value>
4802         <parameters>
4803           <parameter name="part" transfer-ownership="none">
4804             <type name="RenderPart" c:type="PangoRenderPart"/>
4805           </parameter>
4806         </parameters>
4807       </virtual-method>
4808       <virtual-method name="begin">
4809         <return-value transfer-ownership="none">
4810           <type name="none" c:type="void"/>
4811         </return-value>
4812       </virtual-method>
4813       <virtual-method name="end">
4814         <return-value transfer-ownership="none">
4815           <type name="none" c:type="void"/>
4816         </return-value>
4817       </virtual-method>
4818       <virtual-method name="prepare_run">
4819         <return-value transfer-ownership="none">
4820           <type name="none" c:type="void"/>
4821         </return-value>
4822         <parameters>
4823           <parameter name="run" transfer-ownership="none">
4824             <type name="LayoutRun" c:type="PangoLayoutRun*"/>
4825           </parameter>
4826         </parameters>
4827       </virtual-method>
4828       <virtual-method name="draw_glyph_item" invoker="draw_glyph_item">
4829         <return-value transfer-ownership="none">
4830           <type name="none" c:type="void"/>
4831         </return-value>
4832         <parameters>
4833           <parameter name="text" transfer-ownership="none">
4834             <type name="utf8" c:type="char*"/>
4835           </parameter>
4836           <parameter name="glyph_item" transfer-ownership="none">
4837             <type name="GlyphItem" c:type="PangoGlyphItem*"/>
4838           </parameter>
4839           <parameter name="x" transfer-ownership="none">
4840             <type name="int" c:type="int"/>
4841           </parameter>
4842           <parameter name="y" transfer-ownership="none">
4843             <type name="int" c:type="int"/>
4844           </parameter>
4845         </parameters>
4846       </virtual-method>
4847       <method name="draw_layout"
4848               c:identifier="pango_renderer_draw_layout"
4849               doc="in Pango units.
4850 in Pango units.
4851 Draws @layout with the specified #PangoRenderer."
4852               version="1.8">
4853         <return-value transfer-ownership="none">
4854           <type name="none" c:type="void"/>
4855         </return-value>
4856         <parameters>
4857           <parameter name="layout" transfer-ownership="none">
4858             <type name="Layout" c:type="PangoLayout*"/>
4859           </parameter>
4860           <parameter name="x" transfer-ownership="none">
4861             <type name="int" c:type="int"/>
4862           </parameter>
4863           <parameter name="y" transfer-ownership="none">
4864             <type name="int" c:type="int"/>
4865           </parameter>
4866         </parameters>
4867       </method>
4868       <method name="draw_layout_line"
4869               c:identifier="pango_renderer_draw_layout_line"
4870               doc="in Pango units.
4871 in Pango units.
4872 Draws @line with the specified #PangoRenderer."
4873               version="1.8">
4874         <return-value transfer-ownership="none">
4875           <type name="none" c:type="void"/>
4876         </return-value>
4877         <parameters>
4878           <parameter name="line" transfer-ownership="none">
4879             <type name="LayoutLine" c:type="PangoLayoutLine*"/>
4880           </parameter>
4881           <parameter name="x" transfer-ownership="none">
4882             <type name="int" c:type="int"/>
4883           </parameter>
4884           <parameter name="y" transfer-ownership="none">
4885             <type name="int" c:type="int"/>
4886           </parameter>
4887         </parameters>
4888       </method>
4889       <method name="draw_glyphs"
4890               c:identifier="pango_renderer_draw_glyphs"
4891               doc="in Pango units.
4892 in Pango units.
4893 Draws the glyphs in @glyphs with the specified #PangoRenderer."
4894               version="1.8">
4895         <return-value transfer-ownership="none">
4896           <type name="none" c:type="void"/>
4897         </return-value>
4898         <parameters>
4899           <parameter name="font" transfer-ownership="none">
4900             <type name="Font" c:type="PangoFont*"/>
4901           </parameter>
4902           <parameter name="glyphs" transfer-ownership="none">
4903             <type name="GlyphString" c:type="PangoGlyphString*"/>
4904           </parameter>
4905           <parameter name="x" transfer-ownership="none">
4906             <type name="int" c:type="int"/>
4907           </parameter>
4908           <parameter name="y" transfer-ownership="none">
4909             <type name="int" c:type="int"/>
4910           </parameter>
4911         </parameters>
4912       </method>
4913       <method name="draw_glyph_item"
4914               c:identifier="pango_renderer_draw_glyph_item"
4915               doc="in Pango units.
4916 in Pango units.
4917 Draws the glyphs in @glyph_item with the specified #PangoRenderer,
4918 embedding the text associated with the glyphs in the output if the
4919 output format supports it (PDF for example).
4920 Note that @text is the start of the text for layout, which is then
4921 indexed by &lt;literal&gt;@glyph_item-&gt;item-&gt;offset&lt;/literal&gt;.
4922 If @text is %NULL, this simply calls pango_renderer_draw_glyphs().
4923 The default implementation of this method simply falls back to
4924 pango_renderer_draw_glyphs()."
4925               version="1.22">
4926         <return-value transfer-ownership="none">
4927           <type name="none" c:type="void"/>
4928         </return-value>
4929         <parameters>
4930           <parameter name="text" transfer-ownership="none">
4931             <type name="utf8" c:type="char*"/>
4932           </parameter>
4933           <parameter name="glyph_item" transfer-ownership="none">
4934             <type name="GlyphItem" c:type="PangoGlyphItem*"/>
4935           </parameter>
4936           <parameter name="x" transfer-ownership="none">
4937             <type name="int" c:type="int"/>
4938           </parameter>
4939           <parameter name="y" transfer-ownership="none">
4940             <type name="int" c:type="int"/>
4941           </parameter>
4942         </parameters>
4943       </method>
4944       <method name="draw_rectangle"
4945               c:identifier="pango_renderer_draw_rectangle"
4946               doc="Draws an axis-aligned rectangle in user space coordinates with the
4947 specified #PangoRenderer.
4948 This should be called while @renderer is already active.  Use
4949 pango_renderer_activate() to activate a renderer."
4950               version="1.8">
4951         <return-value transfer-ownership="none">
4952           <type name="none" c:type="void"/>
4953         </return-value>
4954         <parameters>
4955           <parameter name="part" transfer-ownership="none">
4956             <type name="RenderPart" c:type="PangoRenderPart"/>
4957           </parameter>
4958           <parameter name="x" transfer-ownership="none">
4959             <type name="int" c:type="int"/>
4960           </parameter>
4961           <parameter name="y" transfer-ownership="none">
4962             <type name="int" c:type="int"/>
4963           </parameter>
4964           <parameter name="width" transfer-ownership="none">
4965             <type name="int" c:type="int"/>
4966           </parameter>
4967           <parameter name="height" transfer-ownership="none">
4968             <type name="int" c:type="int"/>
4969           </parameter>
4970         </parameters>
4971       </method>
4972       <method name="draw_error_underline"
4973               c:identifier="pango_renderer_draw_error_underline"
4974               doc="Draw a squiggly line that approximately covers the given rectangle
4975 in the style of an underline used to indicate a spelling error.
4976 (The width of the underline is rounded to an integer number
4977 of up/down segments and the resulting rectangle is centered
4978 in the original rectangle)
4979 This should be called while @renderer is already active.  Use
4980 pango_renderer_activate() to activate a renderer."
4981               version="1.8">
4982         <return-value transfer-ownership="none">
4983           <type name="none" c:type="void"/>
4984         </return-value>
4985         <parameters>
4986           <parameter name="x" transfer-ownership="none">
4987             <type name="int" c:type="int"/>
4988           </parameter>
4989           <parameter name="y" transfer-ownership="none">
4990             <type name="int" c:type="int"/>
4991           </parameter>
4992           <parameter name="width" transfer-ownership="none">
4993             <type name="int" c:type="int"/>
4994           </parameter>
4995           <parameter name="height" transfer-ownership="none">
4996             <type name="int" c:type="int"/>
4997           </parameter>
4998         </parameters>
4999       </method>
5000       <method name="draw_trapezoid"
5001               c:identifier="pango_renderer_draw_trapezoid"
5002               doc="Draws a trapezoid with the parallel sides aligned with the X axis
5003 using the given #PangoRenderer; coordinates are in device space."
5004               version="1.8">
5005         <return-value transfer-ownership="none">
5006           <type name="none" c:type="void"/>
5007         </return-value>
5008         <parameters>
5009           <parameter name="part" transfer-ownership="none">
5010             <type name="RenderPart" c:type="PangoRenderPart"/>
5011           </parameter>
5012           <parameter name="y1_" transfer-ownership="none">
5013             <type name="double" c:type="double"/>
5014           </parameter>
5015           <parameter name="x11" transfer-ownership="none">
5016             <type name="double" c:type="double"/>
5017           </parameter>
5018           <parameter name="x21" transfer-ownership="none">
5019             <type name="double" c:type="double"/>
5020           </parameter>
5021           <parameter name="y2" transfer-ownership="none">
5022             <type name="double" c:type="double"/>
5023           </parameter>
5024           <parameter name="x12" transfer-ownership="none">
5025             <type name="double" c:type="double"/>
5026           </parameter>
5027           <parameter name="x22" transfer-ownership="none">
5028             <type name="double" c:type="double"/>
5029           </parameter>
5030         </parameters>
5031       </method>
5032       <method name="draw_glyph"
5033               c:identifier="pango_renderer_draw_glyph"
5034               doc="Draws a single glyph with coordinates in device space."
5035               version="1.8">
5036         <return-value transfer-ownership="none">
5037           <type name="none" c:type="void"/>
5038         </return-value>
5039         <parameters>
5040           <parameter name="font" transfer-ownership="none">
5041             <type name="Font" c:type="PangoFont*"/>
5042           </parameter>
5043           <parameter name="glyph" transfer-ownership="none">
5044             <type name="Glyph" c:type="PangoGlyph"/>
5045           </parameter>
5046           <parameter name="x" transfer-ownership="none">
5047             <type name="double" c:type="double"/>
5048           </parameter>
5049           <parameter name="y" transfer-ownership="none">
5050             <type name="double" c:type="double"/>
5051           </parameter>
5052         </parameters>
5053       </method>
5054       <method name="activate"
5055               c:identifier="pango_renderer_activate"
5056               doc="Does initial setup before rendering operations on @renderer.
5057 pango_renderer_deactivate() should be called when done drawing.
5058 Calls such as pango_renderer_draw_layout() automatically
5059 activate the layout before drawing on it. Calls to
5060 pango_renderer_activate() and pango_renderer_deactivate() can
5061 be nested and the renderer will only be initialized and
5062 deinitialized once."
5063               version="1.8">
5064         <return-value transfer-ownership="none">
5065           <type name="none" c:type="void"/>
5066         </return-value>
5067       </method>
5068       <method name="deactivate"
5069               c:identifier="pango_renderer_deactivate"
5070               doc="Cleans up after rendering operations on @renderer. See
5071 docs for pango_renderer_activate()."
5072               version="1.8">
5073         <return-value transfer-ownership="none">
5074           <type name="none" c:type="void"/>
5075         </return-value>
5076       </method>
5077       <method name="part_changed"
5078               c:identifier="pango_renderer_part_changed"
5079               doc="Informs Pango that the way that the rendering is done
5080 for @part has changed in a way that would prevent multiple
5081 pieces being joined together into one drawing call. For
5082 instance, if a subclass of #PangoRenderer was to add a stipple
5083 option for drawing underlines, it needs to call
5084 &lt;informalexample&gt;&lt;programlisting&gt;
5085 pango_renderer_part_changed (render, PANGO_RENDER_PART_UNDERLINE);
5086 &lt;/programlisting&gt;&lt;/informalexample&gt;
5087 When the stipple changes or underlines with different stipples
5088 might be joined together. Pango automatically calls this for
5089 changes to colors. (See pango_renderer_set_color())"
5090               version="1.8">
5091         <return-value transfer-ownership="none">
5092           <type name="none" c:type="void"/>
5093         </return-value>
5094         <parameters>
5095           <parameter name="part" transfer-ownership="none">
5096             <type name="RenderPart" c:type="PangoRenderPart"/>
5097           </parameter>
5098         </parameters>
5099       </method>
5100       <method name="set_color"
5101               c:identifier="pango_renderer_set_color"
5102               doc="Sets the color for part of the rendering."
5103               version="1.8">
5104         <return-value transfer-ownership="none">
5105           <type name="none" c:type="void"/>
5106         </return-value>
5107         <parameters>
5108           <parameter name="part" transfer-ownership="none">
5109             <type name="RenderPart" c:type="PangoRenderPart"/>
5110           </parameter>
5111           <parameter name="color" transfer-ownership="none">
5112             <type name="Color" c:type="PangoColor*"/>
5113           </parameter>
5114         </parameters>
5115       </method>
5116       <method name="get_color"
5117               c:identifier="pango_renderer_get_color"
5118               doc="Gets the current rendering color for the specified part.
5119 if it hasn&apos;t been set and should be inherited from the
5120 environment."
5121               version="1.8">
5122         <return-value transfer-ownership="full">
5123           <type name="Color" c:type="PangoColor*"/>
5124         </return-value>
5125         <parameters>
5126           <parameter name="part" transfer-ownership="none">
5127             <type name="RenderPart" c:type="PangoRenderPart"/>
5128           </parameter>
5129         </parameters>
5130       </method>
5131       <method name="set_matrix"
5132               c:identifier="pango_renderer_set_matrix"
5133               doc="(No matrix set is the same as setting the identity matrix.)
5134 Sets the transformation matrix that will be applied when rendering."
5135               version="1.8">
5136         <return-value transfer-ownership="none">
5137           <type name="none" c:type="void"/>
5138         </return-value>
5139         <parameters>
5140           <parameter name="matrix" transfer-ownership="none">
5141             <type name="Matrix" c:type="PangoMatrix*"/>
5142           </parameter>
5143         </parameters>
5144       </method>
5145       <method name="get_matrix"
5146               c:identifier="pango_renderer_get_matrix"
5147               doc="Gets the transformation matrix that will be applied when
5148 rendering. See pango_renderer_set_matrix().
5149 (which is the same as the identity matrix). The returned
5150 matrix is owned by Pango and must not be modified or
5151 freed."
5152               version="1.8">
5153         <return-value transfer-ownership="none">
5154           <type name="Matrix" c:type="PangoMatrix*"/>
5155         </return-value>
5156       </method>
5157       <method name="get_layout"
5158               c:identifier="pango_renderer_get_layout"
5159               doc="Gets the layout currently being rendered using @renderer.
5160 Calling this function only makes sense from inside a subclass&apos;s
5161 methods, like in its draw_shape&lt;!----&gt;() for example.
5162 The returned layout should not be modified while still being
5163 rendered.
5164 rendered using @renderer at this time."
5165               version="1.20">
5166         <return-value transfer-ownership="full">
5167           <type name="Layout" c:type="PangoLayout*"/>
5168         </return-value>
5169       </method>
5170       <method name="get_layout_line"
5171               c:identifier="pango_renderer_get_layout_line"
5172               doc="Gets the layout line currently being rendered using @renderer.
5173 Calling this function only makes sense from inside a subclass&apos;s
5174 methods, like in its draw_shape&lt;!----&gt;() for example.
5175 The returned layout line should not be modified while still being
5176 rendered.
5177 rendered using @renderer at this time."
5178               version="1.20">
5179         <return-value transfer-ownership="full">
5180           <type name="LayoutLine" c:type="PangoLayoutLine*"/>
5181         </return-value>
5182       </method>
5183       <field name="parent_instance">
5184         <type name="GObject.Object" c:type="GObject"/>
5185       </field>
5186       <field name="underline">
5187         <type name="Underline" c:type="PangoUnderline"/>
5188       </field>
5189       <field name="strikethrough">
5190         <type name="boolean" c:type="gboolean"/>
5191       </field>
5192       <field name="active_count">
5193         <type name="int" c:type="int"/>
5194       </field>
5195       <field name="matrix">
5196         <type name="Matrix" c:type="PangoMatrix*"/>
5197       </field>
5198       <field name="priv">
5199         <type name="RendererPrivate" c:type="PangoRendererPrivate*"/>
5200       </field>
5201     </class>
5202     <record name="RendererClass"
5203             c:type="PangoRendererClass"
5204             glib:is-gtype-struct-for="Renderer"
5205             doc="covers the given rectangle in the style of an underline used to
5206 indicate a spelling error.
5207 in user coordinates.
5208 attributes change
5209 Class structure for #PangoRenderer."
5210             version="1.8">
5211       <field name="parent_class">
5212         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
5213       </field>
5214       <field name="draw_glyphs">
5215         <callback name="draw_glyphs" c:type="draw_glyphs">
5216           <return-value transfer-ownership="none">
5217             <type name="none" c:type="void"/>
5218           </return-value>
5219           <parameters>
5220             <parameter name="renderer" transfer-ownership="none">
5221               <type name="Renderer" c:type="PangoRenderer*"/>
5222             </parameter>
5223             <parameter name="font" transfer-ownership="none">
5224               <type name="Font" c:type="PangoFont*"/>
5225             </parameter>
5226             <parameter name="glyphs" transfer-ownership="none">
5227               <type name="GlyphString" c:type="PangoGlyphString*"/>
5228             </parameter>
5229             <parameter name="x" transfer-ownership="none">
5230               <type name="int" c:type="int"/>
5231             </parameter>
5232             <parameter name="y" transfer-ownership="none">
5233               <type name="int" c:type="int"/>
5234             </parameter>
5235           </parameters>
5236         </callback>
5237       </field>
5238       <field name="draw_rectangle">
5239         <callback name="draw_rectangle" c:type="draw_rectangle">
5240           <return-value transfer-ownership="none">
5241             <type name="none" c:type="void"/>
5242           </return-value>
5243           <parameters>
5244             <parameter name="renderer" transfer-ownership="none">
5245               <type name="Renderer" c:type="PangoRenderer*"/>
5246             </parameter>
5247             <parameter name="part" transfer-ownership="none">
5248               <type name="RenderPart" c:type="PangoRenderPart"/>
5249             </parameter>
5250             <parameter name="x" transfer-ownership="none">
5251               <type name="int" c:type="int"/>
5252             </parameter>
5253             <parameter name="y" transfer-ownership="none">
5254               <type name="int" c:type="int"/>
5255             </parameter>
5256             <parameter name="width" transfer-ownership="none">
5257               <type name="int" c:type="int"/>
5258             </parameter>
5259             <parameter name="height" transfer-ownership="none">
5260               <type name="int" c:type="int"/>
5261             </parameter>
5262           </parameters>
5263         </callback>
5264       </field>
5265       <field name="draw_error_underline">
5266         <callback name="draw_error_underline" c:type="draw_error_underline">
5267           <return-value transfer-ownership="none">
5268             <type name="none" c:type="void"/>
5269           </return-value>
5270           <parameters>
5271             <parameter name="renderer" transfer-ownership="none">
5272               <type name="Renderer" c:type="PangoRenderer*"/>
5273             </parameter>
5274             <parameter name="x" transfer-ownership="none">
5275               <type name="int" c:type="int"/>
5276             </parameter>
5277             <parameter name="y" transfer-ownership="none">
5278               <type name="int" c:type="int"/>
5279             </parameter>
5280             <parameter name="width" transfer-ownership="none">
5281               <type name="int" c:type="int"/>
5282             </parameter>
5283             <parameter name="height" transfer-ownership="none">
5284               <type name="int" c:type="int"/>
5285             </parameter>
5286           </parameters>
5287         </callback>
5288       </field>
5289       <field name="draw_shape">
5290         <callback name="draw_shape" c:type="draw_shape">
5291           <return-value transfer-ownership="none">
5292             <type name="none" c:type="void"/>
5293           </return-value>
5294           <parameters>
5295             <parameter name="renderer" transfer-ownership="none">
5296               <type name="Renderer" c:type="PangoRenderer*"/>
5297             </parameter>
5298             <parameter name="attr" transfer-ownership="none">
5299               <type name="AttrShape" c:type="PangoAttrShape*"/>
5300             </parameter>
5301             <parameter name="x" transfer-ownership="none">
5302               <type name="int" c:type="int"/>
5303             </parameter>
5304             <parameter name="y" transfer-ownership="none">
5305               <type name="int" c:type="int"/>
5306             </parameter>
5307           </parameters>
5308         </callback>
5309       </field>
5310       <field name="draw_trapezoid">
5311         <callback name="draw_trapezoid" c:type="draw_trapezoid">
5312           <return-value transfer-ownership="none">
5313             <type name="none" c:type="void"/>
5314           </return-value>
5315           <parameters>
5316             <parameter name="renderer" transfer-ownership="none">
5317               <type name="Renderer" c:type="PangoRenderer*"/>
5318             </parameter>
5319             <parameter name="part" transfer-ownership="none">
5320               <type name="RenderPart" c:type="PangoRenderPart"/>
5321             </parameter>
5322             <parameter name="y1_" transfer-ownership="none">
5323               <type name="double" c:type="double"/>
5324             </parameter>
5325             <parameter name="x11" transfer-ownership="none">
5326               <type name="double" c:type="double"/>
5327             </parameter>
5328             <parameter name="x21" transfer-ownership="none">
5329               <type name="double" c:type="double"/>
5330             </parameter>
5331             <parameter name="y2" transfer-ownership="none">
5332               <type name="double" c:type="double"/>
5333             </parameter>
5334             <parameter name="x12" transfer-ownership="none">
5335               <type name="double" c:type="double"/>
5336             </parameter>
5337             <parameter name="x22" transfer-ownership="none">
5338               <type name="double" c:type="double"/>
5339             </parameter>
5340           </parameters>
5341         </callback>
5342       </field>
5343       <field name="draw_glyph">
5344         <callback name="draw_glyph" c:type="draw_glyph">
5345           <return-value transfer-ownership="none">
5346             <type name="none" c:type="void"/>
5347           </return-value>
5348           <parameters>
5349             <parameter name="renderer" transfer-ownership="none">
5350               <type name="Renderer" c:type="PangoRenderer*"/>
5351             </parameter>
5352             <parameter name="font" transfer-ownership="none">
5353               <type name="Font" c:type="PangoFont*"/>
5354             </parameter>
5355             <parameter name="glyph" transfer-ownership="none">
5356               <type name="Glyph" c:type="PangoGlyph"/>
5357             </parameter>
5358             <parameter name="x" transfer-ownership="none">
5359               <type name="double" c:type="double"/>
5360             </parameter>
5361             <parameter name="y" transfer-ownership="none">
5362               <type name="double" c:type="double"/>
5363             </parameter>
5364           </parameters>
5365         </callback>
5366       </field>
5367       <field name="part_changed">
5368         <callback name="part_changed" c:type="part_changed">
5369           <return-value transfer-ownership="none">
5370             <type name="none" c:type="void"/>
5371           </return-value>
5372           <parameters>
5373             <parameter name="renderer" transfer-ownership="none">
5374               <type name="Renderer" c:type="PangoRenderer*"/>
5375             </parameter>
5376             <parameter name="part" transfer-ownership="none">
5377               <type name="RenderPart" c:type="PangoRenderPart"/>
5378             </parameter>
5379           </parameters>
5380         </callback>
5381       </field>
5382       <field name="begin">
5383         <callback name="begin" c:type="begin">
5384           <return-value transfer-ownership="none">
5385             <type name="none" c:type="void"/>
5386           </return-value>
5387           <parameters>
5388             <parameter name="renderer" transfer-ownership="none">
5389               <type name="Renderer" c:type="PangoRenderer*"/>
5390             </parameter>
5391           </parameters>
5392         </callback>
5393       </field>
5394       <field name="end">
5395         <callback name="end" c:type="end">
5396           <return-value transfer-ownership="none">
5397             <type name="none" c:type="void"/>
5398           </return-value>
5399           <parameters>
5400             <parameter name="renderer" transfer-ownership="none">
5401               <type name="Renderer" c:type="PangoRenderer*"/>
5402             </parameter>
5403           </parameters>
5404         </callback>
5405       </field>
5406       <field name="prepare_run">
5407         <callback name="prepare_run" c:type="prepare_run">
5408           <return-value transfer-ownership="none">
5409             <type name="none" c:type="void"/>
5410           </return-value>
5411           <parameters>
5412             <parameter name="renderer" transfer-ownership="none">
5413               <type name="Renderer" c:type="PangoRenderer*"/>
5414             </parameter>
5415             <parameter name="run" transfer-ownership="none">
5416               <type name="LayoutRun" c:type="PangoLayoutRun*"/>
5417             </parameter>
5418           </parameters>
5419         </callback>
5420       </field>
5421       <field name="draw_glyph_item">
5422         <callback name="draw_glyph_item" c:type="draw_glyph_item">
5423           <return-value transfer-ownership="none">
5424             <type name="none" c:type="void"/>
5425           </return-value>
5426           <parameters>
5427             <parameter name="renderer" transfer-ownership="none">
5428               <type name="Renderer" c:type="PangoRenderer*"/>
5429             </parameter>
5430             <parameter name="text" transfer-ownership="none">
5431               <type name="utf8" c:type="char*"/>
5432             </parameter>
5433             <parameter name="glyph_item" transfer-ownership="none">
5434               <type name="GlyphItem" c:type="PangoGlyphItem*"/>
5435             </parameter>
5436             <parameter name="x" transfer-ownership="none">
5437               <type name="int" c:type="int"/>
5438             </parameter>
5439             <parameter name="y" transfer-ownership="none">
5440               <type name="int" c:type="int"/>
5441             </parameter>
5442           </parameters>
5443         </callback>
5444       </field>
5445       <field name="pango_reserved2">
5446         <callback name="pango_reserved2" c:type="_pango_reserved2">
5447           <return-value transfer-ownership="none">
5448             <type name="none" c:type="void"/>
5449           </return-value>
5450         </callback>
5451       </field>
5452       <field name="pango_reserved3">
5453         <callback name="pango_reserved3" c:type="_pango_reserved3">
5454           <return-value transfer-ownership="none">
5455             <type name="none" c:type="void"/>
5456           </return-value>
5457         </callback>
5458       </field>
5459       <field name="pango_reserved4">
5460         <callback name="pango_reserved4" c:type="_pango_reserved4">
5461           <return-value transfer-ownership="none">
5462             <type name="none" c:type="void"/>
5463           </return-value>
5464         </callback>
5465       </field>
5466     </record>
5467     <record name="RendererPrivate" c:type="PangoRendererPrivate">
5468     </record>
5469     <constant name="SCALE" value="1024">
5470       <type name="int"/>
5471     </constant>
5472     <enumeration name="Script"
5473                  glib:type-name="PangoScript"
5474                  glib:get-type="pango_script_get_type"
5475                  c:type="PangoScript">
5476       <member name="invalid_code"
5477               value="-1"
5478               c:identifier="PANGO_SCRIPT_INVALID_CODE"
5479               glib:nick="invalid-code"/>
5480       <member name="common"
5481               value="0"
5482               c:identifier="PANGO_SCRIPT_COMMON"
5483               glib:nick="common"/>
5484       <member name="inherited"
5485               value="1"
5486               c:identifier="PANGO_SCRIPT_INHERITED"
5487               glib:nick="inherited"/>
5488       <member name="arabic"
5489               value="2"
5490               c:identifier="PANGO_SCRIPT_ARABIC"
5491               glib:nick="arabic"/>
5492       <member name="armenian"
5493               value="3"
5494               c:identifier="PANGO_SCRIPT_ARMENIAN"
5495               glib:nick="armenian"/>
5496       <member name="bengali"
5497               value="4"
5498               c:identifier="PANGO_SCRIPT_BENGALI"
5499               glib:nick="bengali"/>
5500       <member name="bopomofo"
5501               value="5"
5502               c:identifier="PANGO_SCRIPT_BOPOMOFO"
5503               glib:nick="bopomofo"/>
5504       <member name="cherokee"
5505               value="6"
5506               c:identifier="PANGO_SCRIPT_CHEROKEE"
5507               glib:nick="cherokee"/>
5508       <member name="coptic"
5509               value="7"
5510               c:identifier="PANGO_SCRIPT_COPTIC"
5511               glib:nick="coptic"/>
5512       <member name="cyrillic"
5513               value="8"
5514               c:identifier="PANGO_SCRIPT_CYRILLIC"
5515               glib:nick="cyrillic"/>
5516       <member name="deseret"
5517               value="9"
5518               c:identifier="PANGO_SCRIPT_DESERET"
5519               glib:nick="deseret"/>
5520       <member name="devanagari"
5521               value="10"
5522               c:identifier="PANGO_SCRIPT_DEVANAGARI"
5523               glib:nick="devanagari"/>
5524       <member name="ethiopic"
5525               value="11"
5526               c:identifier="PANGO_SCRIPT_ETHIOPIC"
5527               glib:nick="ethiopic"/>
5528       <member name="georgian"
5529               value="12"
5530               c:identifier="PANGO_SCRIPT_GEORGIAN"
5531               glib:nick="georgian"/>
5532       <member name="gothic"
5533               value="13"
5534               c:identifier="PANGO_SCRIPT_GOTHIC"
5535               glib:nick="gothic"/>
5536       <member name="greek"
5537               value="14"
5538               c:identifier="PANGO_SCRIPT_GREEK"
5539               glib:nick="greek"/>
5540       <member name="gujarati"
5541               value="15"
5542               c:identifier="PANGO_SCRIPT_GUJARATI"
5543               glib:nick="gujarati"/>
5544       <member name="gurmukhi"
5545               value="16"
5546               c:identifier="PANGO_SCRIPT_GURMUKHI"
5547               glib:nick="gurmukhi"/>
5548       <member name="han"
5549               value="17"
5550               c:identifier="PANGO_SCRIPT_HAN"
5551               glib:nick="han"/>
5552       <member name="hangul"
5553               value="18"
5554               c:identifier="PANGO_SCRIPT_HANGUL"
5555               glib:nick="hangul"/>
5556       <member name="hebrew"
5557               value="19"
5558               c:identifier="PANGO_SCRIPT_HEBREW"
5559               glib:nick="hebrew"/>
5560       <member name="hiragana"
5561               value="20"
5562               c:identifier="PANGO_SCRIPT_HIRAGANA"
5563               glib:nick="hiragana"/>
5564       <member name="kannada"
5565               value="21"
5566               c:identifier="PANGO_SCRIPT_KANNADA"
5567               glib:nick="kannada"/>
5568       <member name="katakana"
5569               value="22"
5570               c:identifier="PANGO_SCRIPT_KATAKANA"
5571               glib:nick="katakana"/>
5572       <member name="khmer"
5573               value="23"
5574               c:identifier="PANGO_SCRIPT_KHMER"
5575               glib:nick="khmer"/>
5576       <member name="lao"
5577               value="24"
5578               c:identifier="PANGO_SCRIPT_LAO"
5579               glib:nick="lao"/>
5580       <member name="latin"
5581               value="25"
5582               c:identifier="PANGO_SCRIPT_LATIN"
5583               glib:nick="latin"/>
5584       <member name="malayalam"
5585               value="26"
5586               c:identifier="PANGO_SCRIPT_MALAYALAM"
5587               glib:nick="malayalam"/>
5588       <member name="mongolian"
5589               value="27"
5590               c:identifier="PANGO_SCRIPT_MONGOLIAN"
5591               glib:nick="mongolian"/>
5592       <member name="myanmar"
5593               value="28"
5594               c:identifier="PANGO_SCRIPT_MYANMAR"
5595               glib:nick="myanmar"/>
5596       <member name="ogham"
5597               value="29"
5598               c:identifier="PANGO_SCRIPT_OGHAM"
5599               glib:nick="ogham"/>
5600       <member name="old_italic"
5601               value="30"
5602               c:identifier="PANGO_SCRIPT_OLD_ITALIC"
5603               glib:nick="old-italic"/>
5604       <member name="oriya"
5605               value="31"
5606               c:identifier="PANGO_SCRIPT_ORIYA"
5607               glib:nick="oriya"/>
5608       <member name="runic"
5609               value="32"
5610               c:identifier="PANGO_SCRIPT_RUNIC"
5611               glib:nick="runic"/>
5612       <member name="sinhala"
5613               value="33"
5614               c:identifier="PANGO_SCRIPT_SINHALA"
5615               glib:nick="sinhala"/>
5616       <member name="syriac"
5617               value="34"
5618               c:identifier="PANGO_SCRIPT_SYRIAC"
5619               glib:nick="syriac"/>
5620       <member name="tamil"
5621               value="35"
5622               c:identifier="PANGO_SCRIPT_TAMIL"
5623               glib:nick="tamil"/>
5624       <member name="telugu"
5625               value="36"
5626               c:identifier="PANGO_SCRIPT_TELUGU"
5627               glib:nick="telugu"/>
5628       <member name="thaana"
5629               value="37"
5630               c:identifier="PANGO_SCRIPT_THAANA"
5631               glib:nick="thaana"/>
5632       <member name="thai"
5633               value="38"
5634               c:identifier="PANGO_SCRIPT_THAI"
5635               glib:nick="thai"/>
5636       <member name="tibetan"
5637               value="39"
5638               c:identifier="PANGO_SCRIPT_TIBETAN"
5639               glib:nick="tibetan"/>
5640       <member name="canadian_aboriginal"
5641               value="40"
5642               c:identifier="PANGO_SCRIPT_CANADIAN_ABORIGINAL"
5643               glib:nick="canadian-aboriginal"/>
5644       <member name="yi"
5645               value="41"
5646               c:identifier="PANGO_SCRIPT_YI"
5647               glib:nick="yi"/>
5648       <member name="tagalog"
5649               value="42"
5650               c:identifier="PANGO_SCRIPT_TAGALOG"
5651               glib:nick="tagalog"/>
5652       <member name="hanunoo"
5653               value="43"
5654               c:identifier="PANGO_SCRIPT_HANUNOO"
5655               glib:nick="hanunoo"/>
5656       <member name="buhid"
5657               value="44"
5658               c:identifier="PANGO_SCRIPT_BUHID"
5659               glib:nick="buhid"/>
5660       <member name="tagbanwa"
5661               value="45"
5662               c:identifier="PANGO_SCRIPT_TAGBANWA"
5663               glib:nick="tagbanwa"/>
5664       <member name="braille"
5665               value="46"
5666               c:identifier="PANGO_SCRIPT_BRAILLE"
5667               glib:nick="braille"/>
5668       <member name="cypriot"
5669               value="47"
5670               c:identifier="PANGO_SCRIPT_CYPRIOT"
5671               glib:nick="cypriot"/>
5672       <member name="limbu"
5673               value="48"
5674               c:identifier="PANGO_SCRIPT_LIMBU"
5675               glib:nick="limbu"/>
5676       <member name="osmanya"
5677               value="49"
5678               c:identifier="PANGO_SCRIPT_OSMANYA"
5679               glib:nick="osmanya"/>
5680       <member name="shavian"
5681               value="50"
5682               c:identifier="PANGO_SCRIPT_SHAVIAN"
5683               glib:nick="shavian"/>
5684       <member name="linear_b"
5685               value="51"
5686               c:identifier="PANGO_SCRIPT_LINEAR_B"
5687               glib:nick="linear-b"/>
5688       <member name="tai_le"
5689               value="52"
5690               c:identifier="PANGO_SCRIPT_TAI_LE"
5691               glib:nick="tai-le"/>
5692       <member name="ugaritic"
5693               value="53"
5694               c:identifier="PANGO_SCRIPT_UGARITIC"
5695               glib:nick="ugaritic"/>
5696       <member name="new_tai_lue"
5697               value="54"
5698               c:identifier="PANGO_SCRIPT_NEW_TAI_LUE"
5699               glib:nick="new-tai-lue"/>
5700       <member name="buginese"
5701               value="55"
5702               c:identifier="PANGO_SCRIPT_BUGINESE"
5703               glib:nick="buginese"/>
5704       <member name="glagolitic"
5705               value="56"
5706               c:identifier="PANGO_SCRIPT_GLAGOLITIC"
5707               glib:nick="glagolitic"/>
5708       <member name="tifinagh"
5709               value="57"
5710               c:identifier="PANGO_SCRIPT_TIFINAGH"
5711               glib:nick="tifinagh"/>
5712       <member name="syloti_nagri"
5713               value="58"
5714               c:identifier="PANGO_SCRIPT_SYLOTI_NAGRI"
5715               glib:nick="syloti-nagri"/>
5716       <member name="old_persian"
5717               value="59"
5718               c:identifier="PANGO_SCRIPT_OLD_PERSIAN"
5719               glib:nick="old-persian"/>
5720       <member name="kharoshthi"
5721               value="60"
5722               c:identifier="PANGO_SCRIPT_KHAROSHTHI"
5723               glib:nick="kharoshthi"/>
5724       <member name="unknown"
5725               value="61"
5726               c:identifier="PANGO_SCRIPT_UNKNOWN"
5727               glib:nick="unknown"/>
5728       <member name="balinese"
5729               value="62"
5730               c:identifier="PANGO_SCRIPT_BALINESE"
5731               glib:nick="balinese"/>
5732       <member name="cuneiform"
5733               value="63"
5734               c:identifier="PANGO_SCRIPT_CUNEIFORM"
5735               glib:nick="cuneiform"/>
5736       <member name="phoenician"
5737               value="64"
5738               c:identifier="PANGO_SCRIPT_PHOENICIAN"
5739               glib:nick="phoenician"/>
5740       <member name="phags_pa"
5741               value="65"
5742               c:identifier="PANGO_SCRIPT_PHAGS_PA"
5743               glib:nick="phags-pa"/>
5744       <member name="nko"
5745               value="66"
5746               c:identifier="PANGO_SCRIPT_NKO"
5747               glib:nick="nko"/>
5748       <member name="kayah_li"
5749               value="67"
5750               c:identifier="PANGO_SCRIPT_KAYAH_LI"
5751               glib:nick="kayah-li"/>
5752       <member name="lepcha"
5753               value="68"
5754               c:identifier="PANGO_SCRIPT_LEPCHA"
5755               glib:nick="lepcha"/>
5756       <member name="rejang"
5757               value="69"
5758               c:identifier="PANGO_SCRIPT_REJANG"
5759               glib:nick="rejang"/>
5760       <member name="sundanese"
5761               value="70"
5762               c:identifier="PANGO_SCRIPT_SUNDANESE"
5763               glib:nick="sundanese"/>
5764       <member name="saurashtra"
5765               value="71"
5766               c:identifier="PANGO_SCRIPT_SAURASHTRA"
5767               glib:nick="saurashtra"/>
5768       <member name="cham"
5769               value="72"
5770               c:identifier="PANGO_SCRIPT_CHAM"
5771               glib:nick="cham"/>
5772       <member name="ol_chiki"
5773               value="73"
5774               c:identifier="PANGO_SCRIPT_OL_CHIKI"
5775               glib:nick="ol-chiki"/>
5776       <member name="vai"
5777               value="74"
5778               c:identifier="PANGO_SCRIPT_VAI"
5779               glib:nick="vai"/>
5780       <member name="carian"
5781               value="75"
5782               c:identifier="PANGO_SCRIPT_CARIAN"
5783               glib:nick="carian"/>
5784       <member name="lycian"
5785               value="76"
5786               c:identifier="PANGO_SCRIPT_LYCIAN"
5787               glib:nick="lycian"/>
5788       <member name="lydian"
5789               value="77"
5790               c:identifier="PANGO_SCRIPT_LYDIAN"
5791               glib:nick="lydian"/>
5792     </enumeration>
5793     <record name="ScriptForLang" c:type="_PangoScriptForLang">
5794       <field name="lang" writable="1">
5795         <array zero-terminated="0" c:type="char" fixed-size="7">
5796           <type name="int8"/>
5797         </array>
5798       </field>
5799       <field name="scripts" writable="1">
5800         <array zero-terminated="0" c:type="PangoScript" fixed-size="3">
5801           <type name="Script"/>
5802         </array>
5803       </field>
5804     </record>
5805     <record name="ScriptIter"
5806             c:type="PangoScriptIter"
5807             doc="A #PangoScriptIter is used to iterate through a string
5808 and identify ranges in different scripts.">
5809       <field name="text_start" writable="1">
5810         <type name="utf8" c:type="gchar*"/>
5811       </field>
5812       <field name="text_end" writable="1">
5813         <type name="utf8" c:type="gchar*"/>
5814       </field>
5815       <field name="script_start" writable="1">
5816         <type name="utf8" c:type="gchar*"/>
5817       </field>
5818       <field name="script_end" writable="1">
5819         <type name="utf8" c:type="gchar*"/>
5820       </field>
5821       <field name="script_code" writable="1">
5822         <type name="Script" c:type="PangoScript"/>
5823       </field>
5824       <field name="paren_stack" writable="1">
5825         <array zero-terminated="0" c:type="ParenStackEntry" fixed-size="128">
5826           <type name="ParenStackEntry"/>
5827         </array>
5828       </field>
5829       <field name="paren_sp" writable="1">
5830         <type name="int" c:type="int"/>
5831       </field>
5832       <constructor name="new"
5833                    c:identifier="pango_script_iter_new"
5834                    doc="Create a new #PangoScriptIter, used to break a string of
5835 Unicode into runs by text. No copy is made of @text, so
5836 the caller needs to make sure it remains valid until
5837 the iterator is freed with pango_script_iter_free().
5838 to point at the first range in the text, which should be
5839 freed with pango_script_iter_free(). If the string is
5840 empty, it will point at an empty range."
5841                    version="1.4">
5842         <return-value transfer-ownership="full">
5843           <type name="ScriptIter" c:type="PangoScriptIter*"/>
5844         </return-value>
5845         <parameters>
5846           <parameter name="text" transfer-ownership="none">
5847             <type name="utf8" c:type="char*"/>
5848           </parameter>
5849           <parameter name="length" transfer-ownership="none">
5850             <type name="int" c:type="int"/>
5851           </parameter>
5852         </parameters>
5853       </constructor>
5854       <method name="get_range"
5855               c:identifier="pango_script_iter_get_range"
5856               doc="Gets information about the range to which @iter currently points.
5857 The range is the set of locations p where *start &lt;= p &lt; *end.
5858 (That is, it doesn&apos;t include the character stored at *end)"
5859               version="1.4">
5860         <return-value transfer-ownership="none">
5861           <type name="none" c:type="void"/>
5862         </return-value>
5863         <parameters>
5864           <parameter name="start" transfer-ownership="none">
5865             <array c:type="char**">
5866               <type name="utf8"/>
5867             </array>
5868           </parameter>
5869           <parameter name="end" transfer-ownership="none">
5870             <array c:type="char**">
5871               <type name="utf8"/>
5872             </array>
5873           </parameter>
5874           <parameter name="script" transfer-ownership="none">
5875             <type name="Script" c:type="PangoScript*"/>
5876           </parameter>
5877         </parameters>
5878       </method>
5879       <method name="next"
5880               c:identifier="pango_script_iter_next"
5881               doc="Advances a #PangoScriptIter to the next range. If @iter
5882 is already at the end, it is left unchanged and %FALSE
5883 is returned."
5884               version="1.4">
5885         <return-value transfer-ownership="none">
5886           <type name="boolean" c:type="gboolean"/>
5887         </return-value>
5888       </method>
5889       <method name="free"
5890               c:identifier="pango_script_iter_free"
5891               doc="Frees a #PangoScriptIter created with pango_script_iter_new()."
5892               version="1.4">
5893         <return-value transfer-ownership="none">
5894           <type name="none" c:type="void"/>
5895         </return-value>
5896       </method>
5897     </record>
5898     <enumeration name="Stretch"
5899                  glib:type-name="PangoStretch"
5900                  glib:get-type="pango_stretch_get_type"
5901                  c:type="PangoStretch">
5902       <member name="ultra_condensed"
5903               value="0"
5904               c:identifier="PANGO_STRETCH_ULTRA_CONDENSED"
5905               glib:nick="ultra-condensed"/>
5906       <member name="extra_condensed"
5907               value="1"
5908               c:identifier="PANGO_STRETCH_EXTRA_CONDENSED"
5909               glib:nick="extra-condensed"/>
5910       <member name="condensed"
5911               value="2"
5912               c:identifier="PANGO_STRETCH_CONDENSED"
5913               glib:nick="condensed"/>
5914       <member name="semi_condensed"
5915               value="3"
5916               c:identifier="PANGO_STRETCH_SEMI_CONDENSED"
5917               glib:nick="semi-condensed"/>
5918       <member name="normal"
5919               value="4"
5920               c:identifier="PANGO_STRETCH_NORMAL"
5921               glib:nick="normal"/>
5922       <member name="semi_expanded"
5923               value="5"
5924               c:identifier="PANGO_STRETCH_SEMI_EXPANDED"
5925               glib:nick="semi-expanded"/>
5926       <member name="expanded"
5927               value="6"
5928               c:identifier="PANGO_STRETCH_EXPANDED"
5929               glib:nick="expanded"/>
5930       <member name="extra_expanded"
5931               value="7"
5932               c:identifier="PANGO_STRETCH_EXTRA_EXPANDED"
5933               glib:nick="extra-expanded"/>
5934       <member name="ultra_expanded"
5935               value="8"
5936               c:identifier="PANGO_STRETCH_ULTRA_EXPANDED"
5937               glib:nick="ultra-expanded"/>
5938     </enumeration>
5939     <enumeration name="Style"
5940                  doc="An enumeration specifying the various slant styles possible for a font."
5941                  glib:type-name="PangoStyle"
5942                  glib:get-type="pango_style_get_type"
5943                  c:type="PangoStyle">
5944       <member name="normal"
5945               value="0"
5946               c:identifier="PANGO_STYLE_NORMAL"
5947               glib:nick="normal"/>
5948       <member name="oblique"
5949               value="1"
5950               c:identifier="PANGO_STYLE_OBLIQUE"
5951               glib:nick="oblique"/>
5952       <member name="italic"
5953               value="2"
5954               c:identifier="PANGO_STYLE_ITALIC"
5955               glib:nick="italic"/>
5956     </enumeration>
5957     <enumeration name="TabAlign"
5958                  glib:type-name="PangoTabAlign"
5959                  glib:get-type="pango_tab_align_get_type"
5960                  c:type="PangoTabAlign">
5961       <member name="left"
5962               value="0"
5963               c:identifier="PANGO_TAB_LEFT"
5964               glib:nick="left"/>
5965     </enumeration>
5966     <record name="TabArray"
5967             c:type="PangoTabArray"
5968             glib:type-name="PangoTabArray"
5969             glib:get-type="pango_tab_array_get_type">
5970       <constructor name="new"
5971                    c:identifier="pango_tab_array_new"
5972                    doc="Creates an array of @initial_size tab stops. Tab stops are specified in
5973 pixel units if @positions_in_pixels is %TRUE, otherwise in Pango
5974 units. All stops are initially at position 0.
5975 be freed with pango_tab_array_free().">
5976         <return-value transfer-ownership="full">
5977           <type name="TabArray" c:type="PangoTabArray*"/>
5978         </return-value>
5979         <parameters>
5980           <parameter name="initial_size" transfer-ownership="none">
5981             <type name="int" c:type="gint"/>
5982           </parameter>
5983           <parameter name="positions_in_pixels" transfer-ownership="none">
5984             <type name="boolean" c:type="gboolean"/>
5985           </parameter>
5986         </parameters>
5987       </constructor>
5988       <constructor name="new_with_positions"
5989                    c:identifier="pango_tab_array_new_with_positions"
5990                    doc="This is a convenience function that creates a #PangoTabArray
5991 and allows you to specify the alignment and position of each
5992 tab stop. You &lt;emphasis&gt;must&lt;/emphasis&gt; provide an alignment
5993 and position for @size tab stops.
5994 be freed with pango_tab_array_free().">
5995         <return-value transfer-ownership="full">
5996           <type name="TabArray" c:type="PangoTabArray*"/>
5997         </return-value>
5998         <parameters>
5999           <parameter name="size" transfer-ownership="none">
6000             <type name="int" c:type="gint"/>
6001           </parameter>
6002           <parameter name="positions_in_pixels" transfer-ownership="none">
6003             <type name="boolean" c:type="gboolean"/>
6004           </parameter>
6005           <parameter name="first_alignment" transfer-ownership="none">
6006             <type name="TabAlign" c:type="PangoTabAlign"/>
6007           </parameter>
6008           <parameter name="first_position" transfer-ownership="none">
6009             <type name="int" c:type="gint"/>
6010           </parameter>
6011           <parameter transfer-ownership="none">
6012             <varargs>
6013             </varargs>
6014           </parameter>
6015         </parameters>
6016       </constructor>
6017       <method name="copy"
6018               c:identifier="pango_tab_array_copy"
6019               doc="Copies a #PangoTabArray
6020 be freed with pango_tab_array_free().">
6021         <return-value transfer-ownership="full">
6022           <type name="TabArray" c:type="PangoTabArray*"/>
6023         </return-value>
6024       </method>
6025       <method name="free"
6026               c:identifier="pango_tab_array_free"
6027               doc="Frees a tab array and associated resources.">
6028         <return-value transfer-ownership="none">
6029           <type name="none" c:type="void"/>
6030         </return-value>
6031       </method>
6032       <method name="get_size"
6033               c:identifier="pango_tab_array_get_size"
6034               doc="Gets the number of tab stops in @tab_array.">
6035         <return-value transfer-ownership="none">
6036           <type name="int" c:type="gint"/>
6037         </return-value>
6038       </method>
6039       <method name="resize"
6040               c:identifier="pango_tab_array_resize"
6041               doc="Resizes a tab array. You must subsequently initialize any tabs that
6042 were added as a result of growing the array.">
6043         <return-value transfer-ownership="none">
6044           <type name="none" c:type="void"/>
6045         </return-value>
6046         <parameters>
6047           <parameter name="new_size" transfer-ownership="none">
6048             <type name="int" c:type="gint"/>
6049           </parameter>
6050         </parameters>
6051       </method>
6052       <method name="set_tab"
6053               c:identifier="pango_tab_array_set_tab"
6054               doc="Sets the alignment and location of a tab stop.
6055 implementation.">
6056         <return-value transfer-ownership="none">
6057           <type name="none" c:type="void"/>
6058         </return-value>
6059         <parameters>
6060           <parameter name="tab_index" transfer-ownership="none">
6061             <type name="int" c:type="gint"/>
6062           </parameter>
6063           <parameter name="alignment" transfer-ownership="none">
6064             <type name="TabAlign" c:type="PangoTabAlign"/>
6065           </parameter>
6066           <parameter name="location" transfer-ownership="none">
6067             <type name="int" c:type="gint"/>
6068           </parameter>
6069         </parameters>
6070       </method>
6071       <method name="get_tab"
6072               c:identifier="pango_tab_array_get_tab"
6073               doc="Gets the alignment and position of a tab stop.">
6074         <return-value transfer-ownership="none">
6075           <type name="none" c:type="void"/>
6076         </return-value>
6077         <parameters>
6078           <parameter name="tab_index" transfer-ownership="none">
6079             <type name="int" c:type="gint"/>
6080           </parameter>
6081           <parameter name="alignment" transfer-ownership="none">
6082             <type name="TabAlign" c:type="PangoTabAlign*"/>
6083           </parameter>
6084           <parameter name="location" direction="out" transfer-ownership="full">
6085             <type name="int" c:type="gint*"/>
6086           </parameter>
6087         </parameters>
6088       </method>
6089       <method name="get_tabs"
6090               c:identifier="pango_tab_array_get_tabs"
6091               doc="If non-%NULL, @alignments and @locations are filled with allocated
6092 arrays of length pango_tab_array_get_size(). You must free the
6093 returned array.">
6094         <return-value transfer-ownership="none">
6095           <type name="none" c:type="void"/>
6096         </return-value>
6097         <parameters>
6098           <parameter name="alignments" transfer-ownership="none">
6099             <type name="TabAlign" c:type="PangoTabAlign**"/>
6100           </parameter>
6101           <parameter name="locations"
6102                      direction="out"
6103                      transfer-ownership="full">
6104             <type name="int" c:type="gint**"/>
6105           </parameter>
6106         </parameters>
6107       </method>
6108       <method name="get_positions_in_pixels"
6109               c:identifier="pango_tab_array_get_positions_in_pixels"
6110               doc="Returns %TRUE if the tab positions are in pixels, %FALSE if they are
6111 in Pango units.">
6112         <return-value transfer-ownership="none">
6113           <type name="boolean" c:type="gboolean"/>
6114         </return-value>
6115       </method>
6116     </record>
6117     <constant name="UNKNOWN_GLYPH_HEIGHT" value="14">
6118       <type name="int"/>
6119     </constant>
6120     <constant name="UNKNOWN_GLYPH_WIDTH" value="10">
6121       <type name="int"/>
6122     </constant>
6123     <enumeration name="Underline"
6124                  glib:type-name="PangoUnderline"
6125                  glib:get-type="pango_underline_get_type"
6126                  c:type="PangoUnderline">
6127       <member name="none"
6128               value="0"
6129               c:identifier="PANGO_UNDERLINE_NONE"
6130               glib:nick="none"/>
6131       <member name="single"
6132               value="1"
6133               c:identifier="PANGO_UNDERLINE_SINGLE"
6134               glib:nick="single"/>
6135       <member name="double"
6136               value="2"
6137               c:identifier="PANGO_UNDERLINE_DOUBLE"
6138               glib:nick="double"/>
6139       <member name="low"
6140               value="3"
6141               c:identifier="PANGO_UNDERLINE_LOW"
6142               glib:nick="low"/>
6143       <member name="error"
6144               value="4"
6145               c:identifier="PANGO_UNDERLINE_ERROR"
6146               glib:nick="error"/>
6147     </enumeration>
6148     <enumeration name="Variant"
6149                  glib:type-name="PangoVariant"
6150                  glib:get-type="pango_variant_get_type"
6151                  c:type="PangoVariant">
6152       <member name="normal"
6153               value="0"
6154               c:identifier="PANGO_VARIANT_NORMAL"
6155               glib:nick="normal"/>
6156       <member name="small_caps"
6157               value="1"
6158               c:identifier="PANGO_VARIANT_SMALL_CAPS"
6159               glib:nick="small-caps"/>
6160     </enumeration>
6161     <enumeration name="Weight"
6162                  glib:type-name="PangoWeight"
6163                  glib:get-type="pango_weight_get_type"
6164                  c:type="PangoWeight">
6165       <member name="thin"
6166               value="100"
6167               c:identifier="PANGO_WEIGHT_THIN"
6168               glib:nick="thin"/>
6169       <member name="ultralight"
6170               value="200"
6171               c:identifier="PANGO_WEIGHT_ULTRALIGHT"
6172               glib:nick="ultralight"/>
6173       <member name="light"
6174               value="300"
6175               c:identifier="PANGO_WEIGHT_LIGHT"
6176               glib:nick="light"/>
6177       <member name="book"
6178               value="380"
6179               c:identifier="PANGO_WEIGHT_BOOK"
6180               glib:nick="book"/>
6181       <member name="normal"
6182               value="400"
6183               c:identifier="PANGO_WEIGHT_NORMAL"
6184               glib:nick="normal"/>
6185       <member name="medium"
6186               value="500"
6187               c:identifier="PANGO_WEIGHT_MEDIUM"
6188               glib:nick="medium"/>
6189       <member name="semibold"
6190               value="600"
6191               c:identifier="PANGO_WEIGHT_SEMIBOLD"
6192               glib:nick="semibold"/>
6193       <member name="bold"
6194               value="700"
6195               c:identifier="PANGO_WEIGHT_BOLD"
6196               glib:nick="bold"/>
6197       <member name="ultrabold"
6198               value="800"
6199               c:identifier="PANGO_WEIGHT_ULTRABOLD"
6200               glib:nick="ultrabold"/>
6201       <member name="heavy"
6202               value="900"
6203               c:identifier="PANGO_WEIGHT_HEAVY"
6204               glib:nick="heavy"/>
6205       <member name="ultraheavy"
6206               value="1000"
6207               c:identifier="PANGO_WEIGHT_ULTRAHEAVY"
6208               glib:nick="ultraheavy"/>
6209     </enumeration>
6210     <enumeration name="WrapMode"
6211                  glib:type-name="PangoWrapMode"
6212                  glib:get-type="pango_wrap_mode_get_type"
6213                  c:type="PangoWrapMode">
6214       <member name="word"
6215               value="0"
6216               c:identifier="PANGO_WRAP_WORD"
6217               glib:nick="word"/>
6218       <member name="char"
6219               value="1"
6220               c:identifier="PANGO_WRAP_CHAR"
6221               glib:nick="char"/>
6222       <member name="word_char"
6223               value="2"
6224               c:identifier="PANGO_WRAP_WORD_CHAR"
6225               glib:nick="word-char"/>
6226     </enumeration>
6227     <function name="attr_background_new"
6228               c:identifier="pango_attr_background_new"
6229               doc="Create a new background color attribute.
6230 freed with pango_attribute_destroy().">
6231       <return-value transfer-ownership="full">
6232         <type name="Attribute" c:type="PangoAttribute*"/>
6233       </return-value>
6234       <parameters>
6235         <parameter name="red" transfer-ownership="none">
6236           <type name="uint16" c:type="guint16"/>
6237         </parameter>
6238         <parameter name="green" transfer-ownership="none">
6239           <type name="uint16" c:type="guint16"/>
6240         </parameter>
6241         <parameter name="blue" transfer-ownership="none">
6242           <type name="uint16" c:type="guint16"/>
6243         </parameter>
6244       </parameters>
6245     </function>
6246     <function name="attr_fallback_new"
6247               c:identifier="pango_attr_fallback_new"
6248               doc="for characters the active font is missing.
6249 Create a new font fallback attribute.
6250 If fallback is disabled, characters will only be used from the
6251 closest matching font on the system. No fallback will be done to
6252 other fonts on the system that might contain the characters in the
6253 text.
6254 freed with pango_attribute_destroy()."
6255               version="1.4">
6256       <return-value transfer-ownership="full">
6257         <type name="Attribute" c:type="PangoAttribute*"/>
6258       </return-value>
6259       <parameters>
6260         <parameter name="enable_fallback" transfer-ownership="none">
6261           <type name="boolean" c:type="gboolean"/>
6262         </parameter>
6263       </parameters>
6264     </function>
6265     <function name="attr_family_new"
6266               c:identifier="pango_attr_family_new"
6267               doc="Create a new font family attribute.
6268 freed with pango_attribute_destroy().">
6269       <return-value transfer-ownership="full">
6270         <type name="Attribute" c:type="PangoAttribute*"/>
6271       </return-value>
6272       <parameters>
6273         <parameter name="family" transfer-ownership="none">
6274           <type name="utf8" c:type="char*"/>
6275         </parameter>
6276       </parameters>
6277     </function>
6278     <function name="attr_foreground_new"
6279               c:identifier="pango_attr_foreground_new"
6280               doc="Create a new foreground color attribute.
6281 freed with pango_attribute_destroy().">
6282       <return-value transfer-ownership="full">
6283         <type name="Attribute" c:type="PangoAttribute*"/>
6284       </return-value>
6285       <parameters>
6286         <parameter name="red" transfer-ownership="none">
6287           <type name="uint16" c:type="guint16"/>
6288         </parameter>
6289         <parameter name="green" transfer-ownership="none">
6290           <type name="uint16" c:type="guint16"/>
6291         </parameter>
6292         <parameter name="blue" transfer-ownership="none">
6293           <type name="uint16" c:type="guint16"/>
6294         </parameter>
6295       </parameters>
6296     </function>
6297     <function name="attr_gravity_hint_new"
6298               c:identifier="pango_attr_gravity_hint_new"
6299               doc="Create a new gravity hint attribute.
6300 freed with pango_attribute_destroy()."
6301               version="1.16">
6302       <return-value transfer-ownership="full">
6303         <type name="Attribute" c:type="PangoAttribute*"/>
6304       </return-value>
6305       <parameters>
6306         <parameter name="hint" transfer-ownership="none">
6307           <type name="GravityHint" c:type="PangoGravityHint"/>
6308         </parameter>
6309       </parameters>
6310     </function>
6311     <function name="attr_gravity_new"
6312               c:identifier="pango_attr_gravity_new"
6313               doc="Create a new gravity attribute.
6314 freed with pango_attribute_destroy()."
6315               version="1.16">
6316       <return-value transfer-ownership="full">
6317         <type name="Attribute" c:type="PangoAttribute*"/>
6318       </return-value>
6319       <parameters>
6320         <parameter name="gravity" transfer-ownership="none">
6321           <type name="Gravity" c:type="PangoGravity"/>
6322         </parameter>
6323       </parameters>
6324     </function>
6325     <function name="attr_letter_spacing_new"
6326               c:identifier="pango_attr_letter_spacing_new"
6327               doc="of the text, in Pango units.
6328 Create a new letter-spacing attribute.
6329 freed with pango_attribute_destroy()."
6330               version="1.6">
6331       <return-value transfer-ownership="full">
6332         <type name="Attribute" c:type="PangoAttribute*"/>
6333       </return-value>
6334       <parameters>
6335         <parameter name="letter_spacing" transfer-ownership="none">
6336           <type name="int" c:type="int"/>
6337         </parameter>
6338       </parameters>
6339     </function>
6340     <function name="attr_rise_new"
6341               c:identifier="pango_attr_rise_new"
6342               doc="in Pango units. Positive values displace the text upwards.
6343 Create a new baseline displacement attribute.
6344 freed with pango_attribute_destroy().">
6345       <return-value transfer-ownership="full">
6346         <type name="Attribute" c:type="PangoAttribute*"/>
6347       </return-value>
6348       <parameters>
6349         <parameter name="rise" transfer-ownership="none">
6350           <type name="int" c:type="int"/>
6351         </parameter>
6352       </parameters>
6353     </function>
6354     <function name="attr_scale_new"
6355               c:identifier="pango_attr_scale_new"
6356               doc="Create a new font size scale attribute. The base font for the
6357 affected text will have its size multiplied by @scale_factor.
6358 freed with pango_attribute_destroy().">
6359       <return-value transfer-ownership="full">
6360         <type name="Attribute" c:type="PangoAttribute*"/>
6361       </return-value>
6362       <parameters>
6363         <parameter name="scale_factor" transfer-ownership="none">
6364           <type name="double" c:type="double"/>
6365         </parameter>
6366       </parameters>
6367     </function>
6368     <function name="attr_stretch_new"
6369               c:identifier="pango_attr_stretch_new"
6370               doc="Create a new font stretch attribute
6371 freed with pango_attribute_destroy().">
6372       <return-value transfer-ownership="full">
6373         <type name="Attribute" c:type="PangoAttribute*"/>
6374       </return-value>
6375       <parameters>
6376         <parameter name="stretch" transfer-ownership="none">
6377           <type name="Stretch" c:type="PangoStretch"/>
6378         </parameter>
6379       </parameters>
6380     </function>
6381     <function name="attr_strikethrough_color_new"
6382               c:identifier="pango_attr_strikethrough_color_new"
6383               doc="Create a new strikethrough color attribute. This attribute
6384 modifies the color of strikethrough lines. If not set, strikethrough
6385 lines will use the foreground color.
6386 freed with pango_attribute_destroy()."
6387               version="1.8">
6388       <return-value transfer-ownership="full">
6389         <type name="Attribute" c:type="PangoAttribute*"/>
6390       </return-value>
6391       <parameters>
6392         <parameter name="red" transfer-ownership="none">
6393           <type name="uint16" c:type="guint16"/>
6394         </parameter>
6395         <parameter name="green" transfer-ownership="none">
6396           <type name="uint16" c:type="guint16"/>
6397         </parameter>
6398         <parameter name="blue" transfer-ownership="none">
6399           <type name="uint16" c:type="guint16"/>
6400         </parameter>
6401       </parameters>
6402     </function>
6403     <function name="attr_strikethrough_new"
6404               c:identifier="pango_attr_strikethrough_new"
6405               doc="Create a new strike-through attribute.
6406 freed with pango_attribute_destroy().">
6407       <return-value transfer-ownership="full">
6408         <type name="Attribute" c:type="PangoAttribute*"/>
6409       </return-value>
6410       <parameters>
6411         <parameter name="strikethrough" transfer-ownership="none">
6412           <type name="boolean" c:type="gboolean"/>
6413         </parameter>
6414       </parameters>
6415     </function>
6416     <function name="attr_style_new"
6417               c:identifier="pango_attr_style_new"
6418               doc="Create a new font slant style attribute.
6419 freed with pango_attribute_destroy().">
6420       <return-value transfer-ownership="full">
6421         <type name="Attribute" c:type="PangoAttribute*"/>
6422       </return-value>
6423       <parameters>
6424         <parameter name="style" transfer-ownership="none">
6425           <type name="Style" c:type="PangoStyle"/>
6426         </parameter>
6427       </parameters>
6428     </function>
6429     <function name="attr_type_get_name"
6430               c:identifier="pango_attr_type_get_name"
6431               doc="Fetches the attribute type name passed in when registering the type using
6432 pango_attr_type_register().
6433 The returned value is an interned string (see g_intern_string() for what
6434 that means) that should not be modified or freed.
6435 a built-in Pango attribute type or invalid."
6436               version="1.22">
6437       <return-value transfer-ownership="none" doc="or %NULL if @type is">
6438         <type name="utf8" c:type="char*"/>
6439       </return-value>
6440       <parameters>
6441         <parameter name="type" transfer-ownership="none">
6442           <type name="AttrType" c:type="PangoAttrType"/>
6443         </parameter>
6444       </parameters>
6445     </function>
6446     <function name="attr_type_register"
6447               c:identifier="pango_attr_type_register"
6448               doc="Allocate a new attribute type ID.  The attribute type name can be accessed
6449 later by using pango_attr_type_get_name().">
6450       <return-value transfer-ownership="full">
6451         <type name="AttrType" c:type="PangoAttrType"/>
6452       </return-value>
6453       <parameters>
6454         <parameter name="name" transfer-ownership="none">
6455           <type name="utf8" c:type="gchar*"/>
6456         </parameter>
6457       </parameters>
6458     </function>
6459     <function name="attr_underline_color_new"
6460               c:identifier="pango_attr_underline_color_new"
6461               doc="Create a new underline color attribute. This attribute
6462 modifies the color of underlines. If not set, underlines
6463 will use the foreground color.
6464 freed with pango_attribute_destroy()."
6465               version="1.8">
6466       <return-value transfer-ownership="full">
6467         <type name="Attribute" c:type="PangoAttribute*"/>
6468       </return-value>
6469       <parameters>
6470         <parameter name="red" transfer-ownership="none">
6471           <type name="uint16" c:type="guint16"/>
6472         </parameter>
6473         <parameter name="green" transfer-ownership="none">
6474           <type name="uint16" c:type="guint16"/>
6475         </parameter>
6476         <parameter name="blue" transfer-ownership="none">
6477           <type name="uint16" c:type="guint16"/>
6478         </parameter>
6479       </parameters>
6480     </function>
6481     <function name="attr_underline_new"
6482               c:identifier="pango_attr_underline_new"
6483               doc="Create a new underline-style attribute.
6484 freed with pango_attribute_destroy().">
6485       <return-value transfer-ownership="full">
6486         <type name="Attribute" c:type="PangoAttribute*"/>
6487       </return-value>
6488       <parameters>
6489         <parameter name="underline" transfer-ownership="none">
6490           <type name="Underline" c:type="PangoUnderline"/>
6491         </parameter>
6492       </parameters>
6493     </function>
6494     <function name="attr_variant_new"
6495               c:identifier="pango_attr_variant_new"
6496               doc="Create a new font variant attribute (normal or small caps)
6497 freed with pango_attribute_destroy().">
6498       <return-value transfer-ownership="full">
6499         <type name="Attribute" c:type="PangoAttribute*"/>
6500       </return-value>
6501       <parameters>
6502         <parameter name="variant" transfer-ownership="none">
6503           <type name="Variant" c:type="PangoVariant"/>
6504         </parameter>
6505       </parameters>
6506     </function>
6507     <function name="attr_weight_new"
6508               c:identifier="pango_attr_weight_new"
6509               doc="Create a new font weight attribute.
6510 freed with pango_attribute_destroy().">
6511       <return-value transfer-ownership="full">
6512         <type name="Attribute" c:type="PangoAttribute*"/>
6513       </return-value>
6514       <parameters>
6515         <parameter name="weight" transfer-ownership="none">
6516           <type name="Weight" c:type="PangoWeight"/>
6517         </parameter>
6518       </parameters>
6519     </function>
6520     <function name="bidi_type_for_unichar"
6521               c:identifier="pango_bidi_type_for_unichar">
6522       <return-value transfer-ownership="full">
6523         <type name="BidiType" c:type="PangoBidiType"/>
6524       </return-value>
6525       <parameters>
6526         <parameter name="ch" transfer-ownership="none">
6527           <type name="GLib.unichar" c:type="gunichar"/>
6528         </parameter>
6529       </parameters>
6530     </function>
6531     <function name="break"
6532               c:identifier="pango_break"
6533               doc="Determines possible line, word, and character breaks
6534 for a string of Unicode text with a single analysis.  For most
6535 purposes you may want to use pango_get_log_attrs().">
6536       <return-value transfer-ownership="none">
6537         <type name="none" c:type="void"/>
6538       </return-value>
6539       <parameters>
6540         <parameter name="text" transfer-ownership="none">
6541           <type name="utf8" c:type="gchar*"/>
6542         </parameter>
6543         <parameter name="length" transfer-ownership="none">
6544           <type name="int" c:type="int"/>
6545         </parameter>
6546         <parameter name="analysis" transfer-ownership="none">
6547           <type name="Analysis" c:type="PangoAnalysis*"/>
6548         </parameter>
6549         <parameter name="attrs" transfer-ownership="none">
6550           <type name="LogAttr" c:type="PangoLogAttr*"/>
6551         </parameter>
6552         <parameter name="attrs_len" transfer-ownership="none">
6553           <type name="int" c:type="int"/>
6554         </parameter>
6555       </parameters>
6556     </function>
6557     <function name="coverage_from_bytes"
6558               c:identifier="pango_coverage_from_bytes"
6559               doc="Convert data generated from pango_converage_to_bytes() back
6560 to a #PangoCoverage
6561 the data was invalid.">
6562       <return-value transfer-ownership="full">
6563         <type name="Coverage" c:type="PangoCoverage*"/>
6564       </return-value>
6565       <parameters>
6566         <parameter name="bytes" transfer-ownership="none">
6567           <array c:type="guchar*">
6568             <type name="uint8"/>
6569           </array>
6570         </parameter>
6571         <parameter name="n_bytes" transfer-ownership="none">
6572           <type name="int" c:type="int"/>
6573         </parameter>
6574       </parameters>
6575     </function>
6576     <function name="extents_to_pixels"
6577               c:identifier="pango_extents_to_pixels"
6578               doc="Converts extents from Pango units to device units, dividing by the
6579 %PANGO_SCALE factor and performing rounding.
6580 The @inclusive rectangle is converted by flooring the x/y coordinates and extending
6581 width/height, such that the final rectangle completely includes the original
6582 rectangle.
6583 The @nearest rectangle is converted by rounding the coordinates
6584 of the rectangle to the nearest device unit (pixel).
6585 rectangle to completely contain the original rectangle, pass it in as @inclusive.
6586 If you want two touching-but-not-overlapping rectangles stay
6587 touching-but-not-overlapping after rounding to device units, pass them in
6588 as @nearest."
6589               version="1.16">
6590       <return-value transfer-ownership="none">
6591         <type name="none" c:type="void"/>
6592       </return-value>
6593       <parameters>
6594         <parameter name="inclusive" transfer-ownership="none">
6595           <type name="Rectangle" c:type="PangoRectangle*"/>
6596         </parameter>
6597         <parameter name="nearest" transfer-ownership="none">
6598           <type name="Rectangle" c:type="PangoRectangle*"/>
6599         </parameter>
6600       </parameters>
6601     </function>
6602     <function name="find_base_dir"
6603               c:identifier="pango_find_base_dir"
6604               doc="Searches a string the first character that has a strong
6605 direction, according to the Unicode bidirectional algorithm.
6606 If no such character is found, then %PANGO_DIRECTION_NEUTRAL is returned."
6607               version="1.4">
6608       <return-value transfer-ownership="full">
6609         <type name="Direction" c:type="PangoDirection"/>
6610       </return-value>
6611       <parameters>
6612         <parameter name="text" transfer-ownership="none">
6613           <type name="utf8" c:type="gchar*"/>
6614         </parameter>
6615         <parameter name="length" transfer-ownership="none">
6616           <type name="int" c:type="gint"/>
6617         </parameter>
6618       </parameters>
6619     </function>
6620     <function name="find_paragraph_boundary"
6621               c:identifier="pango_find_paragraph_boundary"
6622               doc="Locates a paragraph boundary in @text. A boundary is caused by
6623 delimiter characters, such as a newline, carriage return, carriage
6624 return-newline pair, or Unicode paragraph separator character.  The
6625 index of the run of delimiters is returned in
6626 (index after all delimiters) is stored in @next_paragraph_start.
6627 If no delimiters are found, both @paragraph_delimiter_index and
6628 off the end).">
6629       <return-value transfer-ownership="none">
6630         <type name="none" c:type="void"/>
6631       </return-value>
6632       <parameters>
6633         <parameter name="text" transfer-ownership="none">
6634           <type name="utf8" c:type="gchar*"/>
6635         </parameter>
6636         <parameter name="length" transfer-ownership="none">
6637           <type name="int" c:type="gint"/>
6638         </parameter>
6639         <parameter name="paragraph_delimiter_index"
6640                    direction="out"
6641                    transfer-ownership="full">
6642           <type name="int" c:type="gint*"/>
6643         </parameter>
6644         <parameter name="next_paragraph_start"
6645                    direction="out"
6646                    transfer-ownership="full">
6647           <type name="int" c:type="gint*"/>
6648         </parameter>
6649       </parameters>
6650     </function>
6651     <function name="get_log_attrs"
6652               c:identifier="pango_get_log_attrs"
6653               doc="Computes a #PangoLogAttr for each character in @text. The @log_attrs
6654 array must have one #PangoLogAttr for each position in @text; if
6655 last position at the end of the text. @text should be an entire
6656 paragraph; logical attributes can&apos;t be computed without context
6657 (for example you need to see spaces on either side of a word to know
6658 the word is a word).">
6659       <return-value transfer-ownership="none">
6660         <type name="none" c:type="void"/>
6661       </return-value>
6662       <parameters>
6663         <parameter name="text" transfer-ownership="none">
6664           <type name="utf8" c:type="char*"/>
6665         </parameter>
6666         <parameter name="length" transfer-ownership="none">
6667           <type name="int" c:type="int"/>
6668         </parameter>
6669         <parameter name="level" transfer-ownership="none">
6670           <type name="int" c:type="int"/>
6671         </parameter>
6672         <parameter name="language" transfer-ownership="none">
6673           <type name="Language" c:type="PangoLanguage*"/>
6674         </parameter>
6675         <parameter name="log_attrs" transfer-ownership="none">
6676           <type name="LogAttr" c:type="PangoLogAttr*"/>
6677         </parameter>
6678         <parameter name="attrs_len" transfer-ownership="none">
6679           <type name="int" c:type="int"/>
6680         </parameter>
6681       </parameters>
6682     </function>
6683     <function name="get_mirror_char"
6684               c:identifier="pango_get_mirror_char"
6685               doc="If @ch has the Unicode mirrored property and there is another Unicode
6686 character that typically has a glyph that is the mirror image of @ch&apos;s
6687 glyph, puts that character in the address pointed to by @mirrored_ch.
6688 Use g_unichar_get_mirror_char() instead; the docs for that function
6689 provide full details.
6690 filled in, %FALSE otherwise">
6691       <return-value transfer-ownership="none">
6692         <type name="boolean" c:type="gboolean"/>
6693       </return-value>
6694       <parameters>
6695         <parameter name="ch" transfer-ownership="none">
6696           <type name="GLib.unichar" c:type="gunichar"/>
6697         </parameter>
6698         <parameter name="mirrored_ch" transfer-ownership="none">
6699           <type name="GLib.unichar" c:type="gunichar*"/>
6700         </parameter>
6701       </parameters>
6702     </function>
6703     <function name="gravity_get_for_matrix"
6704               c:identifier="pango_gravity_get_for_matrix"
6705               doc="Finds the gravity that best matches the rotation component
6706 in a #PangoMatrix.
6707 %PANGO_GRAVITY_AUTO, or %PANGO_GRAVITY_SOUTH if @matrix is %NULL"
6708               version="1.16">
6709       <return-value transfer-ownership="full">
6710         <type name="Gravity" c:type="PangoGravity"/>
6711       </return-value>
6712       <parameters>
6713         <parameter name="matrix" transfer-ownership="none">
6714           <type name="Matrix" c:type="PangoMatrix*"/>
6715         </parameter>
6716       </parameters>
6717     </function>
6718     <function name="gravity_get_for_script"
6719               c:identifier="pango_gravity_get_for_script"
6720               doc="Based on the script, base gravity, and hint, returns actual gravity
6721 to use in laying out a single #PangoItem.
6722 If @base_gravity is %PANGO_GRAVITY_AUTO, it is first replaced with the
6723 preferred gravity of @script.  To get the preferred gravity of a script,
6724 pass %PANGO_GRAVITY_AUTO and %PANGO_GRAVITY_HINT_STRONG in.
6725 with @script."
6726               version="1.16">
6727       <return-value transfer-ownership="full">
6728         <type name="Gravity" c:type="PangoGravity"/>
6729       </return-value>
6730       <parameters>
6731         <parameter name="script" transfer-ownership="none">
6732           <type name="Script" c:type="PangoScript"/>
6733         </parameter>
6734         <parameter name="base_gravity" transfer-ownership="none">
6735           <type name="Gravity" c:type="PangoGravity"/>
6736         </parameter>
6737         <parameter name="hint" transfer-ownership="none">
6738           <type name="GravityHint" c:type="PangoGravityHint"/>
6739         </parameter>
6740       </parameters>
6741     </function>
6742     <function name="gravity_get_for_script_and_width"
6743               c:identifier="pango_gravity_get_for_script_and_width"
6744               doc="Based on the script, East Asian width, base gravity, and hint,
6745 returns actual gravity to use in laying out a single character
6746 or #PangoItem.
6747 This function is similar to pango_gravity_get_for_script() except
6748 that this function makes a distinction between narrow/half-width and
6749 wide/full-width characters also.  Wide/full-width characters always
6750 stand &lt;emph&gt;upright&lt;/emph&gt;, that is, they always take the base gravity,
6751 whereas narrow/full-width characters are always rotated in vertical
6752 context.
6753 If @base_gravity is %PANGO_GRAVITY_AUTO, it is first replaced with the
6754 preferred gravity of @script.
6755 with @script and @wide."
6756               version="1.26">
6757       <return-value transfer-ownership="full">
6758         <type name="Gravity" c:type="PangoGravity"/>
6759       </return-value>
6760       <parameters>
6761         <parameter name="script" transfer-ownership="none">
6762           <type name="Script" c:type="PangoScript"/>
6763         </parameter>
6764         <parameter name="wide" transfer-ownership="none">
6765           <type name="boolean" c:type="gboolean"/>
6766         </parameter>
6767         <parameter name="base_gravity" transfer-ownership="none">
6768           <type name="Gravity" c:type="PangoGravity"/>
6769         </parameter>
6770         <parameter name="hint" transfer-ownership="none">
6771           <type name="GravityHint" c:type="PangoGravityHint"/>
6772         </parameter>
6773       </parameters>
6774     </function>
6775     <function name="gravity_to_rotation"
6776               c:identifier="pango_gravity_to_rotation"
6777               doc="Converts a #PangoGravity value to its natural rotation in radians.
6778 Note that pango_matrix_rotate() takes angle in degrees, not radians.
6779 So, to call pango_matrix_rotate() with the output of this function
6780 you should multiply it by (180. / G_PI)."
6781               version="1.16">
6782       <return-value transfer-ownership="none">
6783         <type name="double" c:type="double"/>
6784       </return-value>
6785       <parameters>
6786         <parameter name="gravity" transfer-ownership="none">
6787           <type name="Gravity" c:type="PangoGravity"/>
6788         </parameter>
6789       </parameters>
6790     </function>
6791     <function name="is_zero_width"
6792               c:identifier="pango_is_zero_width"
6793               doc="Checks @ch to see if it is a character that should not be
6794 normally rendered on the screen.  This includes all Unicode characters
6795 with &quot;ZERO WIDTH&quot; in their name, as well as &lt;firstterm&gt;bidi&lt;/firstterm&gt; formatting characters, and
6796 a few other ones.  This is totally different from g_unichar_iszerowidth()
6797 and is at best misnamed."
6798               version="1.10">
6799       <return-value transfer-ownership="none">
6800         <type name="boolean" c:type="gboolean"/>
6801       </return-value>
6802       <parameters>
6803         <parameter name="ch" transfer-ownership="none">
6804           <type name="GLib.unichar" c:type="gunichar"/>
6805         </parameter>
6806       </parameters>
6807     </function>
6808     <function name="itemize"
6809               c:identifier="pango_itemize"
6810               doc="e itemization process.
6811 after @start_index.
6812 This must be &gt;= 0.
6813 Breaks a piece of text into segments with consistent
6814 directional level and shaping engine. Each byte of @text will
6815 be contained in exactly one of the items in the returned list;
6816 the generated list of items will be in logical order (the start
6817 offsets of the items are ascending).
6818 range before or containing @start_index; @cached_iter will be advanced to
6819 the range covering the position just after @start_index + @length.
6820 (i.e. if itemizing in a loop, just keep passing in the same @cached_iter).">
6821       <return-value transfer-ownership="full">
6822         <type name="GLib.List" c:type="GList*"/>
6823       </return-value>
6824       <parameters>
6825         <parameter name="context" transfer-ownership="none">
6826           <type name="Context" c:type="PangoContext*"/>
6827         </parameter>
6828         <parameter name="text" transfer-ownership="none">
6829           <type name="utf8" c:type="char*"/>
6830         </parameter>
6831         <parameter name="start_index" transfer-ownership="none">
6832           <type name="int" c:type="int"/>
6833         </parameter>
6834         <parameter name="length" transfer-ownership="none" doc="to process">
6835           <type name="int" c:type="int"/>
6836         </parameter>
6837         <parameter name="attrs" transfer-ownership="none">
6838           <type name="AttrList" c:type="PangoAttrList*"/>
6839         </parameter>
6840         <parameter name="cached_iter" transfer-ownership="none">
6841           <type name="AttrIterator" c:type="PangoAttrIterator*"/>
6842         </parameter>
6843       </parameters>
6844     </function>
6845     <function name="itemize_with_base_dir"
6846               c:identifier="pango_itemize_with_base_dir"
6847               doc="e itemization process.
6848 after @start_index.
6849 This must be &gt;= 0.
6850 Like pango_itemize(), but the base direction to use when
6851 computing bidirectional levels (see pango_context_set_base_dir ()),
6852 is specified explicitly rather than gotten from the #PangoContext.
6853 freed using pango_item_free() probably in combination with g_list_foreach(),
6854 and the list itself using g_list_free()."
6855               version="1.4">
6856       <return-value transfer-ownership="full">
6857         <type name="GLib.List" c:type="GList*"/>
6858       </return-value>
6859       <parameters>
6860         <parameter name="context" transfer-ownership="none">
6861           <type name="Context" c:type="PangoContext*"/>
6862         </parameter>
6863         <parameter name="base_dir" transfer-ownership="none">
6864           <type name="Direction" c:type="PangoDirection"/>
6865         </parameter>
6866         <parameter name="text" transfer-ownership="none">
6867           <type name="utf8" c:type="char*"/>
6868         </parameter>
6869         <parameter name="start_index" transfer-ownership="none">
6870           <type name="int" c:type="int"/>
6871         </parameter>
6872         <parameter name="length" transfer-ownership="none" doc="to process">
6873           <type name="int" c:type="int"/>
6874         </parameter>
6875         <parameter name="attrs" transfer-ownership="none">
6876           <type name="AttrList" c:type="PangoAttrList*"/>
6877         </parameter>
6878         <parameter name="cached_iter" transfer-ownership="none">
6879           <type name="AttrIterator" c:type="PangoAttrIterator*"/>
6880         </parameter>
6881       </parameters>
6882     </function>
6883     <function name="language_from_string"
6884               c:identifier="pango_language_from_string"
6885               doc="Take a RFC-3066 format language tag as a string and convert it to a
6886 #PangoLanguage pointer that can be efficiently copied (copy the
6887 pointer) and compared with other language tags (compare the
6888 pointer.)
6889 This function first canonicalizes the string by converting it to
6890 lowercase, mapping &apos;_&apos; to &apos;-&apos;, and stripping all characters other
6891 than letters and &apos;-&apos;.
6892 Use pango_language_get_default() if you want to get the #PangoLanguage for
6893 the current locale of the process.
6894 if @language was %NULL.  The returned pointer will be valid
6895 forever after, and should not be freed.">
6896       <return-value transfer-ownership="full">
6897         <type name="Language" c:type="PangoLanguage*"/>
6898       </return-value>
6899       <parameters>
6900         <parameter name="language" transfer-ownership="none">
6901           <type name="utf8" c:type="char*"/>
6902         </parameter>
6903       </parameters>
6904     </function>
6905     <function name="language_get_default"
6906               c:identifier="pango_language_get_default"
6907               doc="Returns the #PangoLanguage for the current locale of the process.
6908 Note that this can change over the life of an application.
6909 On Unix systems, this is the return value is derived from
6910 &lt;literal&gt;setlocale(LC_CTYPE, NULL)&lt;/literal&gt;, and the user can
6911 affect this through the environment variables LC_ALL, LC_CTYPE or
6912 LANG (checked in that order). The locale string typically is in
6913 the form lang_COUNTRY, where lang is an ISO-639 language code, and
6914 COUNTRY is an ISO-3166 country code. For instance, sv_FI for
6915 Swedish as written in Finland or pt_BR for Portuguese as written in
6916 Brazil.
6917 On Windows, the C library does not use any such environment
6918 variables, and setting them won&apos;t affect the behavior of functions
6919 like ctime(). The user sets the locale through the Regional Options
6920 in the Control Panel. The C library (in the setlocale() function)
6921 does not use country and language codes, but country and language
6922 names spelled out in English.
6923 However, this function does check the above environment
6924 variables, and does return a Unix-style locale string based on
6925 either said environment variables or the thread&apos;s current locale.
6926 Your application should call &lt;literal&gt;setlocale(LC_ALL, &quot;&quot;);&lt;/literal&gt;
6927 for the user settings to take effect.  Gtk+ does this in its initialization
6928 functions automatically (by calling gtk_set_locale()).
6929 See &lt;literal&gt;man setlocale&lt;/literal&gt; for more details.
6930 freed."
6931               version="1.16">
6932       <return-value transfer-ownership="full">
6933         <type name="Language" c:type="PangoLanguage*"/>
6934       </return-value>
6935     </function>
6936     <function name="log2vis_get_embedding_levels"
6937               c:identifier="pango_log2vis_get_embedding_levels"
6938               doc="if @text is nul-terminated and the length should be calculated.
6939 This will return the bidirectional embedding levels of the input paragraph
6940 as defined by the Unicode Bidirectional Algorithm available at:
6941 http://www.unicode.org/reports/tr9/
6942 If the input base direction is a weak direction, the direction of the
6943 characters in the text will determine the final resolved direction.
6944 character (not byte), that should be freed using g_free."
6945               version="1.4">
6946       <return-value transfer-ownership="full">
6947         <array c:type="guint8*">
6948           <type name="uint8"/>
6949         </array>
6950       </return-value>
6951       <parameters>
6952         <parameter name="text" transfer-ownership="none">
6953           <type name="utf8" c:type="gchar*"/>
6954         </parameter>
6955         <parameter name="length"
6956                    transfer-ownership="none"
6957                    doc="to process, or -1">
6958           <type name="int" c:type="int"/>
6959         </parameter>
6960         <parameter name="pbase_dir" transfer-ownership="none">
6961           <type name="Direction" c:type="PangoDirection*"/>
6962         </parameter>
6963       </parameters>
6964     </function>
6965     <function name="parse_enum"
6966               c:identifier="pango_parse_enum"
6967               doc="Parses an enum type and stores the result in @value.
6968 If @str does not match the nick name of any of the possible values for the
6969 enum and is not an integer, %FALSE is returned, a warning is issued
6970 if @warn is %TRUE, and a
6971 string representing the list of possible values is stored in
6972 &quot;none/start/middle/end&quot;.  If failed and @possible_values is not %NULL,
6973 returned string should be freed using g_free()."
6974               version="1.16">
6975       <return-value transfer-ownership="none">
6976         <type name="boolean" c:type="gboolean"/>
6977       </return-value>
6978       <parameters>
6979         <parameter name="type" transfer-ownership="none">
6980           <type name="GType" c:type="GType"/>
6981         </parameter>
6982         <parameter name="str" transfer-ownership="none">
6983           <type name="utf8" c:type="char*"/>
6984         </parameter>
6985         <parameter name="value" direction="out" transfer-ownership="full">
6986           <type name="int" c:type="int*"/>
6987         </parameter>
6988         <parameter name="warn" transfer-ownership="none" doc="on bad input.">
6989           <type name="boolean" c:type="gboolean"/>
6990         </parameter>
6991         <parameter name="possible_values" transfer-ownership="none">
6992           <array c:type="char**">
6993             <type name="utf8"/>
6994           </array>
6995         </parameter>
6996       </parameters>
6997     </function>
6998     <function name="parse_markup"
6999               c:identifier="pango_parse_markup"
7000               doc="Parses marked-up text (see
7001 &lt;link linkend=&quot;PangoMarkupFormat&quot;&gt;markup format&lt;/link&gt;) to create
7002 a plain-text string and an attribute list.
7003 If @accel_marker is nonzero, the given character will mark the
7004 character following it as an accelerator. For example, @accel_marker
7005 might be an ampersand or underscore. All characters marked
7006 as an accelerator will receive a %PANGO_UNDERLINE_LOW attribute,
7007 and the first character so marked will be returned in @accel_char.
7008 Two @accel_marker characters following each other produce a single
7009 literal @accel_marker character.
7010 If any error happens, none of the output arguments are touched except
7011 for @error."
7012               throws="1">
7013       <return-value transfer-ownership="none">
7014         <type name="boolean" c:type="gboolean"/>
7015       </return-value>
7016       <parameters>
7017         <parameter name="markup_text" transfer-ownership="none">
7018           <type name="utf8" c:type="char*"/>
7019         </parameter>
7020         <parameter name="length" transfer-ownership="none">
7021           <type name="int" c:type="int"/>
7022         </parameter>
7023         <parameter name="accel_marker" transfer-ownership="none">
7024           <type name="GLib.unichar" c:type="gunichar"/>
7025         </parameter>
7026         <parameter name="attr_list" transfer-ownership="none">
7027           <type name="AttrList" c:type="PangoAttrList**"/>
7028         </parameter>
7029         <parameter name="text" transfer-ownership="none">
7030           <array c:type="char**">
7031             <type name="utf8"/>
7032           </array>
7033         </parameter>
7034         <parameter name="accel_char" transfer-ownership="none">
7035           <type name="GLib.unichar" c:type="gunichar*"/>
7036         </parameter>
7037       </parameters>
7038     </function>
7039     <function name="parse_stretch"
7040               c:identifier="pango_parse_stretch"
7041               doc="Parses a font stretch. The allowed values are
7042 &quot;ultra_condensed&quot;, &quot;extra_condensed&quot;, &quot;condensed&quot;,
7043 &quot;semi_condensed&quot;, &quot;normal&quot;, &quot;semi_expanded&quot;, &quot;expanded&quot;,
7044 &quot;extra_expanded&quot; and &quot;ultra_expanded&quot;. Case variations are
7045 ignored and the &apos;_&apos; characters may be omitted.">
7046       <return-value transfer-ownership="none">
7047         <type name="boolean" c:type="gboolean"/>
7048       </return-value>
7049       <parameters>
7050         <parameter name="str" transfer-ownership="none">
7051           <type name="utf8" c:type="char*"/>
7052         </parameter>
7053         <parameter name="stretch" transfer-ownership="none">
7054           <type name="Stretch" c:type="PangoStretch*"/>
7055         </parameter>
7056         <parameter name="warn" transfer-ownership="none" doc="on bad input.">
7057           <type name="boolean" c:type="gboolean"/>
7058         </parameter>
7059       </parameters>
7060     </function>
7061     <function name="parse_style"
7062               c:identifier="pango_parse_style"
7063               doc="Parses a font style. The allowed values are &quot;normal&quot;,
7064 &quot;italic&quot; and &quot;oblique&quot;, case variations being
7065 ignored.">
7066       <return-value transfer-ownership="none">
7067         <type name="boolean" c:type="gboolean"/>
7068       </return-value>
7069       <parameters>
7070         <parameter name="str" transfer-ownership="none">
7071           <type name="utf8" c:type="char*"/>
7072         </parameter>
7073         <parameter name="style" transfer-ownership="none">
7074           <type name="Style" c:type="PangoStyle*"/>
7075         </parameter>
7076         <parameter name="warn" transfer-ownership="none" doc="on bad input.">
7077           <type name="boolean" c:type="gboolean"/>
7078         </parameter>
7079       </parameters>
7080     </function>
7081     <function name="parse_variant"
7082               c:identifier="pango_parse_variant"
7083               doc="Parses a font variant. The allowed values are &quot;normal&quot;
7084 and &quot;smallcaps&quot; or &quot;small_caps&quot;, case variations being
7085 ignored.">
7086       <return-value transfer-ownership="none">
7087         <type name="boolean" c:type="gboolean"/>
7088       </return-value>
7089       <parameters>
7090         <parameter name="str" transfer-ownership="none">
7091           <type name="utf8" c:type="char*"/>
7092         </parameter>
7093         <parameter name="variant" transfer-ownership="none">
7094           <type name="Variant" c:type="PangoVariant*"/>
7095         </parameter>
7096         <parameter name="warn" transfer-ownership="none" doc="on bad input.">
7097           <type name="boolean" c:type="gboolean"/>
7098         </parameter>
7099       </parameters>
7100     </function>
7101     <function name="parse_weight"
7102               c:identifier="pango_parse_weight"
7103               doc="Parses a font weight. The allowed values are &quot;heavy&quot;,
7104 &quot;ultrabold&quot;, &quot;bold&quot;, &quot;normal&quot;, &quot;light&quot;, &quot;ultraleight&quot;
7105 and integers. Case variations are ignored.">
7106       <return-value transfer-ownership="none">
7107         <type name="boolean" c:type="gboolean"/>
7108       </return-value>
7109       <parameters>
7110         <parameter name="str" transfer-ownership="none">
7111           <type name="utf8" c:type="char*"/>
7112         </parameter>
7113         <parameter name="weight" transfer-ownership="none">
7114           <type name="Weight" c:type="PangoWeight*"/>
7115         </parameter>
7116         <parameter name="warn" transfer-ownership="none" doc="on bad input.">
7117           <type name="boolean" c:type="gboolean"/>
7118         </parameter>
7119       </parameters>
7120     </function>
7121     <function name="quantize_line_geometry"
7122               c:identifier="pango_quantize_line_geometry"
7123               doc="Quantizes the thickness and position of a line, typically an
7124 underline or strikethrough, to whole device pixels, that is integer
7125 multiples of %PANGO_SCALE. The purpose of this function is to avoid
7126 such lines looking blurry.
7127 Care is taken to make sure @thickness is at least one pixel when this
7128 function returns, but returned @position may become zero as a result
7129 of rounding."
7130               version="1.12">
7131       <return-value transfer-ownership="none">
7132         <type name="none" c:type="void"/>
7133       </return-value>
7134       <parameters>
7135         <parameter name="thickness" direction="out" transfer-ownership="full">
7136           <type name="int" c:type="int*"/>
7137         </parameter>
7138         <parameter name="position" direction="out" transfer-ownership="full">
7139           <type name="int" c:type="int*"/>
7140         </parameter>
7141       </parameters>
7142     </function>
7143     <function name="reorder_items"
7144               c:identifier="pango_reorder_items"
7145               doc="From a list of items in logical order and the associated
7146 directional levels, produce a list in visual order.
7147 The original list is unmodified.
7148 (Please open a bug if you use this function.
7149 It is not a particularly convenient interface, and the code
7150 is duplicated elsewhere in Pango for that reason.)">
7151       <return-value transfer-ownership="full">
7152         <type name="GLib.List" c:type="GList*"/>
7153       </return-value>
7154       <parameters>
7155         <parameter name="logical_items" transfer-ownership="none">
7156           <type name="GLib.List" c:type="GList*"/>
7157         </parameter>
7158       </parameters>
7159     </function>
7160     <function name="scan_int"
7161               c:identifier="pango_scan_int"
7162               doc="Scans an integer.
7163 Leading white space is skipped.">
7164       <return-value transfer-ownership="none">
7165         <type name="boolean" c:type="gboolean"/>
7166       </return-value>
7167       <parameters>
7168         <parameter name="pos" transfer-ownership="none">
7169           <array c:type="char**">
7170             <type name="utf8"/>
7171           </array>
7172         </parameter>
7173         <parameter name="out" direction="out" transfer-ownership="full">
7174           <type name="int" c:type="int*"/>
7175         </parameter>
7176       </parameters>
7177     </function>
7178     <function name="scan_string"
7179               c:identifier="pango_scan_string"
7180               doc="Scans a string into a #GString buffer. The string may either
7181 be a sequence of non-white-space characters, or a quoted
7182 string with &apos;&quot;&apos;. Instead a quoted string, &apos;\&quot;&apos; represents
7183 a literal quote. Leading white space outside of quotes is skipped.">
7184       <return-value transfer-ownership="none">
7185         <type name="boolean" c:type="gboolean"/>
7186       </return-value>
7187       <parameters>
7188         <parameter name="pos" transfer-ownership="none">
7189           <array c:type="char**">
7190             <type name="utf8"/>
7191           </array>
7192         </parameter>
7193         <parameter name="out" transfer-ownership="none">
7194           <type name="GLib.String" c:type="GString*"/>
7195         </parameter>
7196       </parameters>
7197     </function>
7198     <function name="scan_word"
7199               c:identifier="pango_scan_word"
7200               doc="Scans a word into a #GString buffer. A word consists
7201 of [A-Za-z_] followed by zero or more [A-Za-z_0-9]
7202 Leading white space is skipped.">
7203       <return-value transfer-ownership="none">
7204         <type name="boolean" c:type="gboolean"/>
7205       </return-value>
7206       <parameters>
7207         <parameter name="pos" transfer-ownership="none">
7208           <array c:type="char**">
7209             <type name="utf8"/>
7210           </array>
7211         </parameter>
7212         <parameter name="out" transfer-ownership="none">
7213           <type name="GLib.String" c:type="GString*"/>
7214         </parameter>
7215       </parameters>
7216     </function>
7217     <function name="script_for_unichar"
7218               c:identifier="pango_script_for_unichar"
7219               doc="Looks up the #PangoScript for a particular character (as defined by
7220 Unicode Standard Annex #24). No check is made for @ch being a
7221 valid Unicode character; if you pass in invalid character, the
7222 result is undefined.
7223 As of Pango 1.18, this function simply returns the return value of
7224 g_unichar_get_script()."
7225               version="1.4">
7226       <return-value transfer-ownership="full">
7227         <type name="Script" c:type="PangoScript"/>
7228       </return-value>
7229       <parameters>
7230         <parameter name="ch" transfer-ownership="none">
7231           <type name="GLib.unichar" c:type="gunichar"/>
7232         </parameter>
7233       </parameters>
7234     </function>
7235     <function name="script_get_sample_language"
7236               c:identifier="pango_script_get_sample_language"
7237               doc="Given a script, finds a language tag that is reasonably
7238 representative of that script. This will usually be the
7239 most widely spoken or used language written in that script:
7240 for instance, the sample language for %PANGO_SCRIPT_CYRILLIC
7241 is &lt;literal&gt;ru&lt;/literal&gt; (Russian), the sample language
7242 for %PANGO_SCRIPT_ARABIC is &lt;literal&gt;ar&lt;/literal&gt;.
7243 For some
7244 scripts, no sample language will be returned because there
7245 is no language that is sufficiently representative. The best
7246 example of this is %PANGO_SCRIPT_HAN, where various different
7247 variants of written Chinese, Japanese, and Korean all use
7248 significantly different sets of Han characters and forms
7249 of shared characters. No sample language can be provided
7250 for many historical scripts as well.
7251 As of 1.18, this function checks the environment variables
7252 PANGO_LANGUAGE and LANGUAGE (checked in that order) first.
7253 If one of them is set, it is parsed as a list of language tags
7254 separated by colons or other separators.  This function
7255 will return the first language in the parsed list that Pango
7256 believes may use @script for writing.  This last predicate
7257 is tested using pango_language_includes_script().  This can
7258 be used to control Pango&apos;s font selection for non-primary
7259 languages.  For example, a PANGO_LANGUAGE enviroment variable
7260 set to &quot;en:fa&quot; makes Pango choose fonts suitable for Persian (fa)
7261 instead of Arabic (ar) when a segment of Arabic text is found
7262 in an otherwise non-Arabic text.  The same trick can be used to
7263 choose a default language for %PANGO_SCRIPT_HAN when setting
7264 context language is not feasible.
7265 of the script, or %NULL if no such language exists."
7266               version="1.4">
7267       <return-value transfer-ownership="full">
7268         <type name="Language" c:type="PangoLanguage*"/>
7269       </return-value>
7270       <parameters>
7271         <parameter name="script" transfer-ownership="none">
7272           <type name="Script" c:type="PangoScript"/>
7273         </parameter>
7274       </parameters>
7275     </function>
7276     <function name="shape"
7277               c:identifier="pango_shape"
7278               doc="Given a segment of text and the corresponding
7279 #PangoAnalysis structure returned from pango_itemize(),
7280 convert the characters into glyphs. You may also pass
7281 in only a substring of the item from pango_itemize().">
7282       <return-value transfer-ownership="none">
7283         <type name="none" c:type="void"/>
7284       </return-value>
7285       <parameters>
7286         <parameter name="text" transfer-ownership="none">
7287           <type name="utf8" c:type="gchar*"/>
7288         </parameter>
7289         <parameter name="length" transfer-ownership="none" doc="of @text">
7290           <type name="int" c:type="gint"/>
7291         </parameter>
7292         <parameter name="analysis" transfer-ownership="none">
7293           <type name="Analysis" c:type="PangoAnalysis*"/>
7294         </parameter>
7295         <parameter name="glyphs" transfer-ownership="none">
7296           <type name="GlyphString" c:type="PangoGlyphString*"/>
7297         </parameter>
7298       </parameters>
7299     </function>
7300     <function name="skip_space"
7301               c:identifier="pango_skip_space"
7302               doc="Skips 0 or more characters of white space.
7303 the position at a &apos;\0&apos; character.">
7304       <return-value transfer-ownership="none">
7305         <type name="boolean" c:type="gboolean"/>
7306       </return-value>
7307       <parameters>
7308         <parameter name="pos" transfer-ownership="none">
7309           <array c:type="char**">
7310             <type name="utf8"/>
7311           </array>
7312         </parameter>
7313       </parameters>
7314     </function>
7315     <function name="split_file_list"
7316               c:identifier="pango_split_file_list"
7317               doc="Splits a %G_SEARCHPATH_SEPARATOR-separated list of files, stripping
7318 white space and substituting ~/ with $HOME/.">
7319       <return-value transfer-ownership="full">
7320         <array c:type="char**">
7321           <type name="utf8"/>
7322         </array>
7323       </return-value>
7324       <parameters>
7325         <parameter name="str" transfer-ownership="none">
7326           <type name="utf8" c:type="char*"/>
7327         </parameter>
7328       </parameters>
7329     </function>
7330     <function name="trim_string"
7331               c:identifier="pango_trim_string"
7332               doc="Trims leading and trailing whitespace from a string.">
7333       <return-value transfer-ownership="full">
7334         <type name="utf8" c:type="char*"/>
7335       </return-value>
7336       <parameters>
7337         <parameter name="str" transfer-ownership="none">
7338           <type name="utf8" c:type="char*"/>
7339         </parameter>
7340       </parameters>
7341     </function>
7342     <function name="unichar_direction"
7343               c:identifier="pango_unichar_direction"
7344               doc="Determines the inherent direction of a character; either
7345 %PANGO_DIRECTION_LTR, %PANGO_DIRECTION_RTL, or
7346 %PANGO_DIRECTION_NEUTRAL.
7347 This function is useful to categorize characters into left-to-right
7348 letters, right-to-left letters, and everything else.  If full
7349 Unicode bidirectional type of a character is needed,
7350 pango_bidi_type_for_gunichar() can be used instead.">
7351       <return-value transfer-ownership="full">
7352         <type name="Direction" c:type="PangoDirection"/>
7353       </return-value>
7354       <parameters>
7355         <parameter name="ch" transfer-ownership="none">
7356           <type name="GLib.unichar" c:type="gunichar"/>
7357         </parameter>
7358       </parameters>
7359     </function>
7360     <function name="units_from_double"
7361               c:identifier="pango_units_from_double"
7362               doc="it by %PANGO_SCALE and rounds to nearest integer."
7363               version="1.16">
7364       <return-value transfer-ownership="none">
7365         <type name="int" c:type="int"/>
7366       </return-value>
7367       <parameters>
7368         <parameter name="d" transfer-ownership="none">
7369           <type name="double" c:type="double"/>
7370         </parameter>
7371       </parameters>
7372     </function>
7373     <function name="units_to_double"
7374               c:identifier="pango_units_to_double"
7375               doc="it by %PANGO_SCALE."
7376               version="1.16">
7377       <return-value transfer-ownership="none">
7378         <type name="double" c:type="double"/>
7379       </return-value>
7380       <parameters>
7381         <parameter name="i" transfer-ownership="none">
7382           <type name="int" c:type="int"/>
7383         </parameter>
7384       </parameters>
7385     </function>
7386     <function name="version"
7387               c:identifier="pango_version"
7388               doc="This is similar to the macro %PANGO_VERSION except that
7389 it returns the encoded version of Pango available at run-time,
7390 as opposed to the version available at compile-time.
7391 A version number can be encoded into an integer using
7392 PANGO_VERSION_ENCODE().
7393 available at run time."
7394               version="1.16">
7395       <return-value transfer-ownership="none">
7396         <type name="int" c:type="int"/>
7397       </return-value>
7398     </function>
7399     <function name="version_check"
7400               c:identifier="pango_version_check"
7401               doc="Checks that the Pango library in use is compatible with the
7402 given version. Generally you would pass in the constants
7403 %PANGO_VERSION_MAJOR, %PANGO_VERSION_MINOR, %PANGO_VERSION_MICRO
7404 as the three arguments to this function; that produces
7405 a check that the library in use at run-time is compatible with
7406 the version of Pango the application or module was compiled against.
7407 of the running library is newer than the version
7408 the running library must be binary compatible with the
7409 version @required_major.required_minor.@required_micro
7410 (same major version.)
7411 For compile-time version checking use PANGO_VERSION_CHECK().
7412 given version, or a string describing the version mismatch.
7413 The returned string is owned by Pango and should not be modified
7414 or freed."
7415               version="1.16">
7416       <return-value transfer-ownership="none">
7417         <type name="utf8" c:type="char*"/>
7418       </return-value>
7419       <parameters>
7420         <parameter name="required_major" transfer-ownership="none">
7421           <type name="int" c:type="int"/>
7422         </parameter>
7423         <parameter name="required_minor" transfer-ownership="none">
7424           <type name="int" c:type="int"/>
7425         </parameter>
7426         <parameter name="required_micro" transfer-ownership="none">
7427           <type name="int" c:type="int"/>
7428         </parameter>
7429       </parameters>
7430     </function>
7431     <function name="version_string"
7432               c:identifier="pango_version_string"
7433               doc="This is similar to the macro %PANGO_VERSION_STRING except that
7434 it returns the version of Pango available at run-time, as opposed to
7435 the version available at compile-time.
7436 available at run time.
7437 The returned string is owned by Pango and should not be modified
7438 or freed."
7439               version="1.16">
7440       <return-value transfer-ownership="none">
7441         <type name="utf8" c:type="char*"/>
7442       </return-value>
7443     </function>
7444   </namespace>
7445 </repository>