pangoUnitsToDouble(i)
pangoUnitsFromDouble(d)
pangoExtentsToPixels(inclusive, nearest)
pangoMatrixCopy(object)
pangoMatrixTranslate(object, tx, ty)
pangoMatrixScale(object, scale.x, scale.y)
pangoMatrixRotate(object, degrees)
pangoMatrixConcat(object, new.matrix)
pangoMatrixTransformPoint(object, x, y)
pangoMatrixTransformDistance(object, dx, dy)
pangoMatrixTransformRectangle(object, rect)
pangoMatrixTransformPixelRectangle(object, rect)
pangoMatrixGetFontScaleFactor(object)
pangoGlyphStringNew()
pangoGlyphStringCopy(object)
pangoGlyphStringSetSize(object, new.len)
pangoGlyphStringExtents(object, font)
pangoGlyphStringExtentsRange(object, start, end, font)
pangoGlyphStringGetWidth(object)
pangoGlyphStringIndexToX(object, text, analysis, index, trailing)
pangoGlyphStringXToIndex(object, text, analysis, x.pos)
pangoGlyphStringGetLogicalWidths(object, text, embedding.level)
pangoGlyphItemSplit(orig, text, split.index)
pangoGlyphItemApplyAttrs(glyph.item, text, list)
pangoGlyphItemLetterSpace(glyph.item, text, log.attrs)
pangoGlyphItemGetLogicalWidths(glyph.item, text)
pangoGlyphItemIterInitStart(object, glyph.item, text)
pangoGlyphItemIterInitEnd(object, glyph.item, text)
pangoGlyphItemIterNextCluster(object)
pangoGlyphItemIterPrevCluster(object)
pangoShape
produces a string of glyphs which
can be measured or drawn to the screen. The following
structures are used to store information about
glyphs.PangoRectangle
PangoRectangle
structure represents a rectangle. It is frequently
used to represent the logical or ink extents of a single glyph or section
of text. (See, for instance, pangoFontGetGlyphExtents
)
PangoRectangle
is a transparent-type. x
y
width
height
PangoMatrix
x_device = x_user * matrix->xx + y_user * matrix->xy + matrix->x0; y_device = x_user * matrix->yx + y_user * matrix->yy + matrix->y0;Since 1.6
xx
xy
yx
yy
x0
y0
PangoGlyphInfo
PangoGlyphInfo
structure represents a single glyph together with
positioning information and visual attributes.
It contains the following fields. glyph
geometry
PangoGlyphGeometry
] the positional information about the glyph.attr
PangoGlyphVisAttr
] the visual attributes of the glyph.PangoGlyphGeometry
PangoGlyphGeometry
structure contains width and positioning
information for a single glyph. width
xOffset
yOffset
PangoGlyphVisAttr
PangoGlyphString
PangoGlyphString
structure is used to store strings
of glyphs with geometry and visual attribute information.
The storage for the glyph information is owned
by the structure which simplifies memory management. numGlyphs
glyphs
PangoGlyphInfo
] a list of PangoGlyphInfo
structures of length num_glyphs
.logClusters
PangoGlyphItem
PangoGlyphItem
is a pair of a PangoItem
and the glyphs
resulting from shaping the text corresponding to an item.
As an example of the usage of PangoGlyphItem
, the results
of shaping text with PangoLayout
is a list of PangoLayoutLine
,
each of which contains a list of PangoGlyphItem
. item
PangoItem
] a PangoItem
structure that provides information
about a segment of text.glyphs
PangoGlyphString
] the glyphs obtained by shaping the text
corresponding to item
.PangoGlyphItemIter
PangoGlyphItemIter
is an iterator over the clusters in a
PangoGlyphItem
. The forward direction of the
iterator is the logical direction of text. That is, with increasing
start.index
and start.char
values. If glyph.item
is right-to-left
(that is, if glyph_item->item->analysis.level
is odd),
then start.glyph
decreases as the iterator moves forward. Moreover,
in right-to-left cases, start.glyph
is greater than end.glyph
.
An iterator should be initialized using either of
pangoGlyphItemIterInitStart
and
pangoGlyphItemIterInitEnd
, for forward and backward iteration
respectively, and walked over using any desired mixture of
pangoGlyphItemIterNextCluster
and
pangoGlyphItemIterPrevCluster
. A common idiom for doing a
forward iteration over the clusters is:
PangoGlyphItemIter cluster_iter; gboolean have_cluster; for (have_cluster = pango_glyph_item_iter_init_start (&cluster_iter, glyph_item, text); have_cluster; have_cluster = pango_glyph_item_iter_next_cluster (&cluster_iter)) { ... }Note that
text
is the start of the text for layout, which is then
indexed by glyph_item->item->offset
to get to the
text of glyph.item
. The start.index
and end.index
values can directly
index into text
. The start.glyph
, end.glyph
, start.char
, and end.char
values however are zero-based for the glyph.item
. For each cluster, the
item pointed at by the start variables is included in the cluster while
the one pointed at by end variables is not.
None of the members of a PangoGlyphItemIter
should be modified manually.
Since 1.22 glyph_item
PangoGlyphItem
] the PangoGlyphItem
this iterator iterates overtext
glyph.item
refers tostart_glyph
start_index
start_char
end_glyph
end_index
end_char