pango- Binding to the Pango text rendering engine.
Portabilityportable (depends on GHC)
Safe HaskellNone




This module defines PangoContexts, an environment that provides information on available fonts, internationalization and output capabilities of the medium. Given such a context, text can be rendered into strings of glyphs (see Rendering) or, at a more abstract level, using layouts (see Layout).

  • A PangoContext is a prerequisite for all text rendering functions. A context can be created from scratch or, more conveniently, by using default settings that are already used in the application. When text is rendered through Gdk, use widgetCreatePangoContext, if you use the Cairo rendering engine, a new context can be acquired using cairoCreateContext.
  • The properties of a PangoContext can be changed which, in turn, has an effect on how text is rendered. To reflect such a change in the rendered text, call layoutContextChanged.


Types and Methods for PangoContexts

contextListFamilies :: PangoContext -> IO [FontFamily] Source

Retrieve a list of all available font families.

  • A font family is the name of the font without further attributes like slant, variant or size.

contextGetMetrics :: PangoContext -> FontDescription -> Language -> IO FontMetrics Source

Query the metrics of the given font implied by the font description.

data Language Source

An RFC-3066 language designator to choose scripts.


emptyLanguage :: Language Source

Specifying no particular language.

languageFromString :: GlibString string => string -> IO Language Source

Take a RFC-3066 format language tag as a string and convert it to a Language type that can be efficiently passed around and compared with other language tags.

  • This function first canonicalizes the string by converting it to lowercase, mapping '_' to '-', and stripping all characters other than letters and '-'.

contextSetLanguage :: PangoContext -> Language -> IO () Source

Set the default Language of this context.

contextGetLanguage :: PangoContext -> IO Language Source

Get the current Language of this context.

contextSetTextDir :: PangoContext -> PangoDirection -> IO () Source

Set the default text direction of this context.

contextGetTextDir :: PangoContext -> IO PangoDirection Source

Get the current text direction of this context.

contextSetTextGravity :: PangoContext -> PangoGravity -> IO () Source

Set the text gravity of this context. If the given value is PangoGravityAuto then the gravity is derived from the current rotation matrix.

contextGetTextGravity :: PangoContext -> IO PangoGravity Source

Get the current text gravity of this context.

contextSetTextGravityHint :: PangoContext -> PangoGravityHint -> IO () Source

Set the text gravity hint of this context.

contextGetTextGravityHint :: PangoContext -> IO PangoGravityHint Source

Get the current text gravity of this context.

contextGetMatrix :: PangoContext -> IO Matrix Source

Gets the transformation matrix that will be applied when rendering with this context.

  • Since Pango 1.6

contextSetMatrix :: PangoContext -> Matrix -> IO () Source

Sets the transformation matrix that will be applied when rendering with this context. Note that any metrics reported by other functions are in user space coordinates before the application of the matrix, not device-space coordinates after the application of the matrix. So, they don't scale with the matrix, though they may change slightly for different matrices, depending on how the text is fit to the pixel grid.

  • Since Pango 1.6