PgContext

The PangoContext structure stores global information used to control the itemization process.

class PgContext : ObjectG {}

Constructors

this
this(PangoContext* pangoContext, bool ownedRef = false)

Sets our main struct and passes it to the parent class.

this
this()

Creates a new PangoContext initialized to default values.

Members

Functions

changed
void changed()

Forces a change in the context, which will cause any PangoLayout using this context to re-layout.

getBaseDir
PangoDirection getBaseDir()

Retrieves the base direction for the context. See pango_context_set_base_dir().

getBaseGravity
PangoGravity getBaseGravity()

Retrieves the base gravity for the context. See pango_context_set_base_gravity().

getFontDescription
PgFontDescription getFontDescription()

Retrieve the default font description for the context.

getFontMap
PgFontMap getFontMap()

Gets the PangoFontMap used to look up fonts for this context.

getGravity
PangoGravity getGravity()

Retrieves the gravity for the context. This is similar to pango_context_get_base_gravity(), except for when the base gravity is PANGO_GRAVITY_AUTO for which pango_gravity_get_for_matrix() is used to return the gravity from the current context matrix.

getGravityHint
PangoGravityHint getGravityHint()

Retrieves the gravity hint for the context. See pango_context_set_gravity_hint() for details.

getLanguage
PgLanguage getLanguage()

Retrieves the global language tag for the context.

getMatrix
PgMatrix getMatrix()

Gets the transformation matrix that will be applied when rendering with this context. See pango_context_set_matrix().

getMetrics
PgFontMetrics getMetrics(PgFontDescription desc, PgLanguage language)

Get overall metric information for a particular font description. Since the metrics may be substantially different for different scripts, a language tag can be provided to indicate that the metrics should be retrieved that correspond to the script(s) used by that language.

getPgContextStruct
PangoContext* getPgContextStruct(bool transferOwnership = false)

Get the main Gtk struct

getSerial
uint getSerial()

Returns the current serial number of context. The serial number is initialized to an small number larger than zero when a new context is created and is increased whenever the context is changed using any of the setter functions, or the PangoFontMap it uses to find fonts has changed. The serial may wrap, but will never have the value 0. Since it can wrap, never compare it with "less than", always use "not equals".

getStruct
void* getStruct()

the main Gtk struct as a void*

listFamilies
void listFamilies(out PgFontFamily[] families)

List all families for a context.

loadFont
PgFont loadFont(PgFontDescription desc)

Loads the font in one of the fontmaps in the context that is the closest match for desc.

loadFontset
PgFontset loadFontset(PgFontDescription desc, PgLanguage language)

Load a set of fonts in the context that can be used to render a font matching desc.

setBaseDir
void setBaseDir(PangoDirection direction)

Sets the base direction for the context.

setBaseGravity
void setBaseGravity(PangoGravity gravity)

Sets the base gravity for the context.

setFontDescription
void setFontDescription(PgFontDescription desc)

Set the default font description for the context

setFontMap
void setFontMap(PgFontMap fontMap)

Sets the font map to be searched when fonts are looked-up in this context. This is only for internal use by Pango backends, a PangoContext obtained via one of the recommended methods should already have a suitable font map.

setGravityHint
void setGravityHint(PangoGravityHint hint)

Sets the gravity hint for the context.

setLanguage
void setLanguage(PgLanguage language)

Sets the global language tag for the context. The default language for the locale of the running process can be found using pango_language_get_default().

setMatrix
void setMatrix(PgMatrix matrix)

Sets the transformation matrix that will be applied when rendering with this context. Note that reported metrics are in the 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.

Static functions

bidiTypeForUnichar
PangoBidiType bidiTypeForUnichar(dchar ch)

Determines the normative bidirectional character type of a character, as specified in the Unicode Character Database.

defaultBreak
void defaultBreak(string text, int length, PangoAnalysis* analysis, PangoLogAttr* attrs, int attrsLen)

This is the default break algorithm, used if no language engine overrides it. Normally you should use pango_break() instead. Unlike pango_break(), analysis can be NULL, but only do that if you know what you're doing. If you need an analysis to pass to pango_break(), you need to pango_itemize(). In most cases however you should simply use pango_get_log_attrs().

findBaseDir
PangoDirection findBaseDir(string text, int length)

Searches a string the first character that has a strong direction, according to the Unicode bidirectional algorithm.

findParagraphBoundary
void findParagraphBoundary(string text, int length, out int paragraphDelimiterIndex, out int nextParagraphStart)

Locates a paragraph boundary in text. A boundary is caused by delimiter characters, such as a newline, carriage return, carriage return-newline pair, or Unicode paragraph separator character. The index of the run of delimiters is returned in paragraph_delimiter_index. The index of the start of the paragraph (index after all delimiters) is stored in next_paragraph_start.

getLogAttrs
void getLogAttrs(string text, int length, int level, PgLanguage language, PangoLogAttr[] logAttrs)

Computes a PangoLogAttr for each character in text. The log_attrs array must have one PangoLogAttr for each position in text; if text contains N characters, it has N+1 positions, including the last position at the end of the text. text should be an entire paragraph; logical attributes can't be computed without context (for example you need to see spaces on either side of a word to know the word is a word).

getMirrorChar
bool getMirrorChar(dchar ch, dchar* mirroredCh)

If ch has the Unicode mirrored property and there is another Unicode character that typically has a glyph that is the mirror image of ch's glyph, puts that character in the address pointed to by mirrored_ch.

getType
GType getType()
itemize
ListG itemize(PgContext context, string text, int startIndex, int length, PgAttributeList attrs, PgAttributeIterator cachedIter)

Breaks a piece of text into segments with consistent directional level and shaping engine. Each byte of text will be contained in exactly one of the items in the returned list; the generated list of items will be in logical order (the start offsets of the items are ascending).

itemizeWithBaseDir
ListG itemizeWithBaseDir(PgContext context, PangoDirection baseDir, string text, int startIndex, int length, PgAttributeList attrs, PgAttributeIterator cachedIter)

Like pango_itemize(), but the base direction to use when computing bidirectional levels (see pango_context_set_base_dir ()), is specified explicitly rather than gotten from the PangoContext

pangoBreak
void pangoBreak(string text, int length, PangoAnalysis* analysis, PangoLogAttr[] attrs)

Determines possible line, word, and character breaks for a string of Unicode text with a single analysis. For most purposes you may want to use pango_get_log_attrs().

reorderItems
ListG reorderItems(ListG logicalItems)

From a list of items in logical order and the associated directional levels, produce a list in visual order. The original list is unmodified.

shape
void shape(string text, int length, PangoAnalysis* analysis, PgGlyphString glyphs)

Given a segment of text and the corresponding PangoAnalysis structure returned from pango_itemize(), convert the characters into glyphs. You may also pass in only a substring of the item from pango_itemize().

shapeFull
void shapeFull(string itemText, int itemLength, string paragraphText, int paragraphLength, PangoAnalysis* analysis, PgGlyphString glyphs)

Given a segment of text and the corresponding PangoAnalysis structure returned from pango_itemize(), convert the characters into glyphs. You may also pass in only a substring of the item from pango_itemize().

unicharDirection
PangoDirection unicharDirection(dchar ch)

Determines the inherent direction of a character; either PANGO_DIRECTION_LTR, PANGO_DIRECTION_RTL, or PANGO_DIRECTION_NEUTRAL.

Variables

pangoContext
PangoContext* pangoContext;

the main Gtk struct