The ascent is the distance from the baseline to the logical top
of a line of text. (The logical top may be above or below the
top of the actual drawn ink. It is necessary to lay out the
text to figure where the ink will be.)

The descent is the distance from the baseline to the logical
bottom of a line of text. (The logical bottom may be above or
below the bottom of the actual drawn ink. It is necessary to
lay out the text to figure where the ink will be.)

The approximate character width. This is merely a
representative value useful, for example, for determining the
initial size for a window. Actual characters in text will be
wider and narrower than this.

The approximate digit width. This is merely a representative
value useful, for example, for determining the initial size for
a window. Actual digits in text can be wider and narrower than
this, though this value is generally somewhat more accurate
than approximateCharWidth.

The suggested position to draw the underline. The value returned is
the distance above the baseline of the top of the underline. Since
most fonts have underline positions beneath the baseline, this value
is typically negative.

The PangoDirection type represents a direction in the Unicode
bidirectional algorithm.

The "weak" values denote a left-to-right or right-to-left direction
only if there is no character with a strong direction in a paragraph.
An example is a sequence of special, graphical characters which are
neutral with respect to their rendering direction. A fresh
PangoContext is by default weakly
left-to-right.

The EllipsizeMode type describes what sort of (if any) ellipsization
should be applied to a line of text. In the ellipsization process characters
are removed from the text in order to make it fit to a given width and
replaced with an ellipsis.

The PangoGravity type represents the orientation of glyphs in a
segment of text. The value GravitySouth, for instance, indicates that the
text stands upright, i.e. that the base of the letter is directed
downwards.

This is useful when rendering vertical text layouts. In those situations,
the layout is rotated using a non-identity PangoMatrix, and then glyph
orientation is controlled using PangoGravity. Not every value in this
enumeration makes sense for every usage of Gravity; for example,
PangoGravityAuto only can be passed to pangoContextSetBaseGravity and
can only be returned by pangoContextGetBaseGravity.

PangoGravityHintLine: for scripts not in their natural direction (eg.
Latin in East gravity), choose per-script gravity such that every script
respects the line progression. This means, Latin and Arabic will take
opposite gravities and both flow top-to-bottom for example.