Pango – 1.0
Description: Reference for Pango-1.0

### Namespace

# Pango – 1.0

Internationalized text layout and rendering

Version | 1.51.2
Authors | Owen Taylor, Behdad Esfahbod
License | LGPL-2.1-or-later
Website | https://www.pango.org
Source | https://gitlab.gnome.org/GNOME/pango/

#### Build

C headers | `pango/pango.h`
pkg-config files | `pango`

#### Dependencies

GObject—2.0 | The base type system library
| Browse documentation
HarfBuzz—0.0 | A text shaping library
| Browse documentation

#### Related libraries

PangoCairo | Cairo support for Pango
| Browse documentation
PangoFc | Fontconfig support for Pango
| Browse documentation
PangoFT2 | FreeType support for Pango
| Browse documentation
PangoOT | OpenType support for Pango
| Browse documentation
PangoXft | Xft support for Pango
| Browse documentation

#### Additional documentation

- The Rendering Pipeline
- Text Attributes and Markup
- Fonts and Glyphs
- Bidirectional and Vertical Text
- Classes Hierarchy

#### Classes

Context | A `PangoContext` stores global information used to control the itemization process. since: 1.0
Coverage | A `PangoCoverage` structure is a map from Unicode characters to `PangoCoverageLevel` values. since: 1.0
Font | A `PangoFont` is used to represent a font in a rendering-system-independent manner. since: 1.0
FontFace | A `PangoFontFace` is used to represent a group of fonts with the same family, slant, weight, and width, but varying sizes. since: 1.0
FontFamily | A `PangoFontFamily` is used to represent a family of related font faces. since: 1.0
FontMap | A `PangoFontMap` represents the set of fonts available for a particular rendering system. since: 1.0
Fontset | A `PangoFontset` represents a set of `PangoFont` to use when rendering text. since: 1.0
FontsetSimple | `PangoFontsetSimple` is a implementation of the abstract `PangoFontset` base class as an array of fonts. since: 1.0
Layout | A `PangoLayout` structure represents an entire paragraph of text. since: 1.0
Renderer | `PangoRenderer` is a base class for objects that can render text provided as `PangoGlyphString` or `PangoLayout`. since: 1.8

#### Structs

Analysis | The `PangoAnalysis` structure stores information about the properties of a segment of text. since: 1.0
AttrClass | The `PangoAttrClass` structure stores the type and operations for a particular type of attribute. since: 1.0
AttrColor | The `PangoAttrColor` structure is used to represent attributes that are colors. since: 1.0
AttrFloat | The `PangoAttrFloat` structure is used to represent attributes with a float or double value. since: 1.0
AttrFontDesc | The `PangoAttrFontDesc` structure is used to store an attribute that sets all aspects of the font description at once. since: 1.0
AttrFontFeatures | The `PangoAttrFontFeatures` structure is used to represent OpenType font features as an attribute. since: 1.38
Attribute | The `PangoAttribute` structure represents the common portions of all attributes. since: 1.0
AttrInt | The `PangoAttrInt` structure is used to represent attributes with an integer or enumeration value. since: 1.0
AttrIterator | A `PangoAttrIterator` is used to iterate through a `PangoAttrList`. since: 1.0
AttrLanguage | The `PangoAttrLanguage` structure is used to represent attributes that are languages. since: 1.0
AttrList | A `PangoAttrList` represents a list of attributes that apply to a section of text. since: 1.0
AttrShape | The `PangoAttrShape` structure is used to represent attributes which impose shape restrictions. since: 1.0
AttrSize | The `PangoAttrSize` structure is used to represent attributes which set font size. since: 1.0
AttrString | The `PangoAttrString` structure is used to represent attributes with a string value. since: 1.0
Color | The `PangoColor` structure is used to represent a color in an uncalibrated RGB color-space. since: 1.0
FontDescription | A `PangoFontDescription` describes a font in an implementation-independent manner. since: 1.0
FontMetrics | A `PangoFontMetrics` structure holds the overall metric information for a font. since: 1.0
GlyphGeometry | The `PangoGlyphGeometry` structure contains width and positioning information for a single glyph. since: 1.0
GlyphInfo | A `PangoGlyphInfo` structure represents a single glyph with positioning information and visual attributes. since: 1.0
GlyphItem | A `PangoGlyphItem` is a pair of a `PangoItem` and the glyphs resulting from shaping the items text. since: 1.0
GlyphItemIter | A `PangoGlyphItemIter` is an iterator over the clusters in a `PangoGlyphItem`. since: 1.22
GlyphString | A `PangoGlyphString` is used to store strings of glyphs with geometry and visual attribute information. since: 1.0
GlyphVisAttr | A `PangoGlyphVisAttr` structure communicates information between the shaping and rendering phases. since: 1.0
Item | The `PangoItem` structure stores information about a segment of text. since: 1.0
Language | The `PangoLanguage` structure is used to represent a language. since: 1.0
LayoutIter | A `PangoLayoutIter` can be used to iterate over the visual extents of a `PangoLayout`. since: 1.0
LayoutLine | A `PangoLayoutLine` represents one of the lines resulting from laying out a paragraph via `PangoLayout`. since: 1.0
LogAttr | The `PangoLogAttr` structure stores information about the attributes of a single character. since: 1.0
Matrix | A `PangoMatrix` specifies a transformation between user-space and device coordinates. since: 1.6
Rectangle | The `PangoRectangle` structure represents a rectangle. since: 1.0
ScriptIter | A `PangoScriptIter` is used to iterate through a string and identify ranges in different scripts. since: 1.0
TabArray | A `PangoTabArray` contains an array of tab stops. since: 1.0

#### Aliases

Glyph | A `PangoGlyph` represents a single glyph in the output form of a string. since: 1.0
GlyphUnit | The `PangoGlyphUnit` type is used to store dimensions within Pango. since: 1.0
LayoutRun | A `PangoLayoutRun` represents a single run within a `PangoLayoutLine`. since: 1.0

#### Enumerations

Alignment | `PangoAlignment` describes how to align the lines of a `PangoLayout` within the available space. since: 1.0
AttrType | The `PangoAttrType` distinguishes between different types of attributes. since: 1.0
BaselineShift | An enumeration that affects baseline shifts between runs. since: 1.50
BidiType | `PangoBidiType` represents the bidirectional character type of a Unicode character. deprecated: 1.44 since: 1.22
CoverageLevel | `PangoCoverageLevel` is used to indicate how well a font can represent a particular Unicode character for a particular script. since: 1.0
Direction | `PangoDirection` represents a direction in the Unicode bidirectional algorithm. since: 1.0
EllipsizeMode | `PangoEllipsizeMode` describes what sort of ellipsization should be applied to text. since: 1.0
FontScale | An enumeration that affects font sizes for superscript and subscript positioning and for (emulated) Small Caps. since: 1.50
Gravity | `PangoGravity` represents the orientation of glyphs in a segment of text. since: 1.16
GravityHint | `PangoGravityHint` defines how horizontal scripts should behave in a vertical context. since: 1.16
Overline | The `PangoOverline` enumeration is used to specify whether text should be overlined, and if so, the type of line. since: 1.46
RenderPart | `PangoRenderPart` defines different items to render for such purposes as setting colors. since: 1.8
Script | The `PangoScript` enumeration identifies different writing systems. since: 1.0
Stretch | An enumeration specifying the width of the font relative to other designs within a family. since: 1.0
Style | An enumeration specifying the various slant styles possible for a font. since: 1.0
TabAlign | `PangoTabAlign` specifies where the text appears relative to the tab stop position. since: 1.0
TextTransform | An enumeration that affects how Pango treats characters during shaping. since: 1.50
Underline | The `PangoUnderline` enumeration is used to specify whether text should be underlined, and if so, the type of underlining. since: 1.0
Variant | An enumeration specifying capitalization variant of the font. since: 1.0
Weight | An enumeration specifying the weight (boldness) of a font. since: 1.0
WrapMode | `PangoWrapMode` describes how to wrap the lines of a `PangoLayout` to the desired width. since: 1.0

#### Bitfields

FontMask | The bits in a `PangoFontMask` correspond to the set fields in a `PangoFontDescription`. since: 1.0
LayoutDeserializeFlags | Flags that influence the behavior of `pango_layout_deserialize()`. since: 1.50
LayoutSerializeFlags | Flags that influence the behavior of `pango_layout_serialize()`. since: 1.50
ShapeFlags | Flags influencing the shaping process. since: 1.44
ShowFlags | These flags affect how Pango treats characters that are normally not visible in the output. since: 1.44

#### Error Domains

LayoutDeserializeError | Errors that can be returned by `pango_layout_deserialize()`. since: 1.50

#### Callbacks

AttrDataCopyFunc | Type of a function that can duplicate user data for an attribute. since: 1.0
AttrFilterFunc | Type of a function filtering a list of attributes. since: 1.0
FontsetForeachFunc | Callback used when enumerating fonts in a fontset. since: 1.4

#### Functions

attr_allow_breaks_new | Create a new allow-breaks attribute. since: 1.44
attr_background_alpha_new | Create a new background alpha attribute. since: 1.38
attr_background_new | Create a new background color attribute. since: 1.0
attr_baseline_shift_new | Create a new baseline displacement attribute. since: 1.50
attr_break | Apply customization from attributes to the breaks in `attrs`. since: 1.50
attr_fallback_new | Create a new font fallback attribute. since: 1.4
attr_family_new | Create a new font family attribute. since: 1.0
attr_font_scale_new | Create a new font scale attribute. since: 1.50
attr_foreground_alpha_new | Create a new foreground alpha attribute. since: 1.38
attr_foreground_new | Create a new foreground color attribute. since: 1.0
attr_gravity_hint_new | Create a new gravity hint attribute. since: 1.16
attr_gravity_new | Create a new gravity attribute. since: 1.16
attr_insert_hyphens_new | Create a new insert-hyphens attribute. since: 1.44
attr_letter_spacing_new | Create a new letter-spacing attribute. since: 1.6
attr_line_height_new | Modify the height of logical line extents by a factor. since: 1.50
attr_line_height_new_absolute | Override the height of logical line extents to be `height`. since: 1.50
attr_overline_color_new | Create a new overline color attribute. since: 1.46
attr_overline_new | Create a new overline-style attribute. since: 1.46
attr_rise_new | Create a new baseline displacement attribute. since: 1.0
attr_scale_new | Create a new font size scale attribute. since: 1.0
attr_sentence_new | Marks the range of the attribute as a single sentence. since: 1.50
attr_show_new | Create a new attribute that influences how invisible characters are rendered. since: 1.44
attr_stretch_new | Create a new font stretch attribute. since: 1.0
attr_strikethrough_color_new | Create a new strikethrough color attribute. since: 1.8
attr_strikethrough_new | Create a new strike-through attribute. since: 1.0
attr_style_new | Create a new font slant style attribute. since: 1.0
attr_text_transform_new | Create a new attribute that influences how characters are transformed during shaping. since: 1.50
attr_underline_color_new | Create a new underline color attribute. since: 1.8
attr_underline_new | Create a new underline-style attribute. since: 1.0
attr_variant_new | Create a new font variant attribute (normal or small caps). since: 1.0
attr_weight_new | Create a new font weight attribute. since: 1.0
attr_word_new | Marks the range of the attribute as a single word. since: 1.50
break | Determines possible line, word, and character breaks for a string of Unicode text with a single analysis. deprecated: 1.44 since: 1.0
default_break | This is the default break algorithm. since: 1.0
extents_to_pixels | Converts extents from Pango units to device units. since: 1.16
find_base_dir | Searches a string the first character that has a strong direction, according to the Unicode bidirectional algorithm. since: 1.4
find_paragraph_boundary | Locates a paragraph boundary in `text`. since: 1.0
get_log_attrs | Computes a `PangoLogAttr` for each character in `text`. since: 1.0
get_mirror_char | Returns the mirrored character of a Unicode character. deprecated: 1.30 since: 1.0
is_zero_width | Checks if a character that should not be normally rendered. since: 1.10
itemize | Breaks a piece of text into segments with consistent directional level and font. since: 1.0
itemize_with_base_dir | Like `pango_itemize()`, but with an explicitly specified base direction. since: 1.4
log2vis_get_embedding_levels | Return the bidirectional embedding levels of the input paragraph. since: 1.4
markup_parser_finish | Finishes parsing markup. since: 1.31.0
markup_parser_new | Incrementally parses marked-up text to create a plain-text string and an attribute list. since: 1.31.0
parse_enum | Parses an enum type and stores the result in `value`. deprecated: 1.38 since: 1.16
parse_markup | Parses marked-up text to create a plain-text string and an attribute list. since: 1.0
parse_stretch | Parses a font stretch. since: 1.0
parse_style | Parses a font style. since: 1.0
parse_variant | Parses a font variant. since: 1.0
parse_weight | Parses a font weight. since: 1.0
quantize_line_geometry | Quantizes the thickness and position of a line to whole device pixels. since: 1.12
read_line | Reads an entire line from a file into a buffer. deprecated: 1.38 since: 1.0
reorder_items | Reorder items from logical order to visual order. since: 1.0
scan_int | Scans an integer. deprecated: 1.38 since: 1.0
scan_string | Scans a string into a `GString` buffer. deprecated: 1.38 since: 1.0
scan_word | Scans a word into a `GString` buffer. deprecated: 1.38 since: 1.0
shape | Convert the characters in `text` into glyphs. since: 1.0
shape_full | Convert the characters in `text` into glyphs. since: 1.32
shape_item | Convert the characters in `item` into glyphs. since: 1.50
shape_with_flags | Convert the characters in `text` into glyphs. since: 1.44
skip_space | Skips 0 or more characters of white space. deprecated: 1.38 since: 1.0
split_file_list | Splits a `G_SEARCHPATH_SEPARATOR`-separated list of files, stripping white space and substituting ~/ with $HOME/. deprecated: 1.38 since: 1.0
tailor_break | Apply language-specific tailoring to the breaks in `attrs`. since: 1.44
trim_string | Trims leading and trailing whitespace from a string. deprecated: 1.38 since: 1.0
unichar_direction | Determines the inherent direction of a character. since: 1.0
units_from_double | Converts a floating-point number to Pango units. since: 1.16
units_to_double | Converts a number in Pango units to floating-point. since: 1.16
version | Returns the encoded version of Pango available at run-time. since: 1.16
version_check | Checks that the Pango library in use is compatible with the given version. since: 1.16
version_string | Returns the version of Pango available at run-time. since: 1.16

#### Function Macros

ASCENT | Extracts the ascent from a `PangoRectangle` representing glyph extents. since: 1.0
DESCENT | Extracts the descent from a `PangoRectangle` representing glyph extents. since: 1.0
LBEARING | Extracts the left bearing from a `PangoRectangle` representing glyph extents. since: 1.0
PIXELS | Converts a dimension to device units by rounding. since: 1.0
PIXELS_CEIL | Converts a dimension to device units by ceiling. since: 1.14
PIXELS_FLOOR | Converts a dimension to device units by flooring. since: 1.14
RBEARING | Extracts the right bearing from a `PangoRectangle` representing glyph extents. since: 1.0
UNITS_CEIL | Rounds a dimension up to whole device units, but does not convert it to device units. since: 1.50
UNITS_FLOOR | Rounds a dimension down to whole device units, but does not convert it to device units. since: 1.50
UNITS_ROUND | Rounds a dimension to whole device units, but does not convert it to device units. since: 1.18
VERSION_CHECK | Checks that the version of Pango available at compile-time is not older than the provided version number. since: 1.0
VERSION_ENCODE | This macro encodes the given Pango version into an integer. The numbers returned by `PANGO_VERSION` and `pango_version()` are encoded using this macro. Two encoded version numbers can be compared as integers. since: 1.0

#### Constants

ANALYSIS_FLAG_CENTERED_BASELINE | Whether the segment should be shifted to center around the baseline. since: 1.0
ANALYSIS_FLAG_IS_ELLIPSIS | Whether this run holds ellipsized text. since: 1.0
ANALYSIS_FLAG_NEED_HYPHEN | Whether to add a hyphen at the end of the run during shaping. since: 1.0
ATTR_INDEX_FROM_TEXT_BEGINNING | Value for `start_index` in `PangoAttribute` that indicates the beginning of the text. since: 1.0
ATTR_INDEX_TO_TEXT_END | Value for `end_index` in `PangoAttribute` that indicates the end of the text. since: 1.0
GLYPH_EMPTY | A `PangoGlyph` value that indicates a zero-width empty glpyh. since: 1.0
GLYPH_INVALID_INPUT | A `PangoGlyph` value for invalid input. since: 1.0
GLYPH_UNKNOWN_FLAG | Flag used in `PangoGlyph` to turn a `gunichar` value of a valid Unicode character into an unknown-character glyph for that `gunichar`. since: 1.0
SCALE | The scale between dimensions used for Pango distances and device units. since: 1.0
VERSION_MAJOR | The major component of the version of Pango available at compile-time. since: 1.0
VERSION_MICRO | The micro component of the version of Pango available at compile-time. since: 1.0
VERSION_MINOR | The minor component of the version of Pango available at compile-time. since: 1.0
VERSION_STRING | A string literal containing the version of Pango available at compile-time. since: 1.0