pango-Text-Processing: Rendering
Description
Functions to run the rendering pipelineMethods and Functions
pangoItemize(context, text, start.index, length, attrs, cached.iter = NULL)
pangoItemizeWithBaseDir(context, base.dir, text, start.index, length, attrs, cached.iter = NULL)
pangoItemCopy(item)
pangoItemNew()
pangoItemSplit(orig, split.index, split.offset)
pangoReorderItems(logical.items)
pangoContextSetFontMap(object, font.map)
pangoContextGetFontMap(object)
pangoContextGetFontDescription(object)
pangoContextSetFontDescription(object, desc)
pangoContextGetLanguage(object)
pangoContextSetLanguage(object, language)
pangoContextGetBaseDir(object)
pangoContextSetBaseDir(object, direction)
pangoContextGetBaseGravity(object)
pangoContextSetBaseGravity(object, gravity)
pangoContextGetGravity(object)
pangoContextGetGravityHint(object)
pangoContextSetGravityHint(object, hint)
pangoContextGetMatrix(object)
pangoContextSetMatrix(object, matrix)
pangoContextLoadFont(object, desc)
pangoContextLoadFontset(object, desc, language)
pangoContextGetMetrics(object, desc, language = NULL)
pangoContextListFamilies(object)
pangoBreak(text, analysis)
pangoGetLogAttrs(text, level, language)
pangoFindParagraphBoundary(text, length = -1)
pangoShape(text, analysis, glyphs)
Hierarchy
GObject
+----PangoContext
Detailed Description
The Pango rendering pipeline takes a string of
Unicode characters and converts it into glyphs.
The functions described in this section accomplish
various steps of this process.Structures
PangoContext
-
The
PangoContext
structure stores global information
used to control the itemization process. PangoItem
-
The
PangoItem
structure stores information about
a segment of text. It contains the following fields:
offset
- [integer] the offset of the segment from the beginning of the
string in bytes.
length
- [integer] the length of the segment in bytes.
numChars
- [integer] the length of the segment in characters.
analysis
- [
PangoAnalysis
] the properties of the segment.
PangoAnalysis
-
The
PangoAnalysis
structure stores information about
the properties of a segment of text. It has the following
fields:
font
- [
PangoFont
] the engine for doing rendering-system-dependent processing. level
- [raw] the engine for doing rendering-system-independent processing.
language
- [
PangoLanguage
] the font for this segment. extraAttrs
- [list] the bidirectional level for this segment.
PangoLogAttr
-
The
PangoLogAttr
structure stores information
about the attributes of a single character.
isLineBreak
- [numeric] if set, can break line in front of character
isMandatoryBreak
- [numeric] if set, must break line in front of character
isCharBreak
- [numeric] if set, can break here when doing character wrapping
isWhite
- [numeric] is whitespace character
isCursorPosition
- [numeric] if set, cursor can appear in front of character.
i.e. this is a grapheme boundary, or the first character
in the text.
This flag implements Unicode's
Grapheme
Cluster Boundaries (http://www.unicode.org/reports/tr29/) semantics.
isWordStart
- [numeric] is first character in a word
isWordEnd
- [numeric] is first non-word char after a word
Note that in degenerate cases, you could have both
is.word.start
and is.word.end
set for some character. isSentenceBoundary
- [numeric] is a sentence boundary.
There are two ways to divide sentences. The first assigns all
inter-sentence whitespace/control/format chars to some sentence,
so all chars are in some sentence;
is.sentence.boundary
denotes
the boundaries there. The second way doesn't assign
between-sentence spaces, etc. to any sentence, so
is.sentence.start
/is.sentence.end
mark the boundaries
of those sentences. isSentenceStart
- [numeric] is first character in a sentence
isSentenceEnd
- [numeric] is first char after a sentence.
Note that in degenerate cases, you could have both
is.sentence.start
and is.sentence.end
set for some character. (e.g. no space after a
period, so the next sentence starts right away) backspaceDeletesCharacter
- [numeric] if set, backspace deletes one character
rather than the entire grapheme cluster. This
field is only meaningful on grapheme
boundaries (where
is.cursor.position
is
set). In some languages, the full grapheme
(e.g. letter + diacritics) is considered a
unit, while in others, each decomposed
character in the grapheme is a unit. In the
default implementation of pangoBreak
, this
bit is set on all grapheme boundaries except
those following Latin, Cyrillic or Greek base
characters.