PgMiscellaneous

The functions and utilities in this section are mostly used from Pango backends and modules, but may be useful for other purposes too.

Members

Static functions

configKeyGet
string configKeyGet(string key)

Looks up a key in the Pango config database (pseudo-win.ini style, read from $sysconfdir/pango/pangorc, $XDG_CONFIG_HOME/pango/pangorc, and getenv (PANGO_RC_FILE).)

configKeyGetSystem
string configKeyGetSystem(string key)

Looks up a key, consulting only the Pango system config database in $sysconfdir/pango/pangorc.

getLibSubdirectory
string getLibSubdirectory()

On Unix, returns the name of the "pango" subdirectory of LIBDIR (which is set at compile time). On Windows, returns the lib\pango subdirectory of the Pango installation directory (which is deduced at run time from the DLL's location).

getSysconfSubdirectory
string getSysconfSubdirectory()

On Unix, returns the name of the "pango" subdirectory of SYSCONFDIR (which is set at compile time). On Windows, returns the etc\pango subdirectory of the Pango installation directory (which is deduced at run time from the DLL's location).

isZeroWidth
int isZeroWidth(gunichar ch)

Checks ch to see if it is a character that should not be normally rendered on the screen. This includes all Unicode characters with "ZERO WIDTH" in their name, as well as bidi formatting characters, and a few other ones. This is totally different from g_unichar_iszerowidth() and is at best misnamed. Since 1.10

log2visGetEmbeddingLevels
ubyte* log2visGetEmbeddingLevels(string text, int length, PangoDirection pbaseDir)

This will return the bidirectional embedding levels of the input paragraph Since 1.4

lookupAliases
void lookupAliases(string fontname, string[] families)

Warning pango_lookup_aliases has been deprecated since version 1.32 and should not be used in newly-written code. This function is not thread-safe. Look up all user defined aliases for the alias fontname. The resulting font family names will be stored in families, and the number of families in n_families.

parseEnum
int parseEnum(GType type, string str, int value, int warn, string possibleValues)

Parses an enum type and stores the result in value. If str does not match the nick name of any of the possible values for the enum and is not an integer, FALSE is returned, a warning is issued if warn is TRUE, and a string representing the list of possible values is stored in possible_values. The list is slash-separated, eg. "none/start/middle/end". If failed and possible_values is not NULL, returned string should be freed using g_free(). Since 1.16

parseStretch
int parseStretch(string str, PangoStretch stretch, int warn)

Parses a font stretch. The allowed values are "ultra_condensed", "extra_condensed", "condensed", "semi_condensed", "normal", "semi_expanded", "expanded", "extra_expanded" and "ultra_expanded". Case variations are ignored and the '_' characters may be omitted.

parseStyle
int parseStyle(string str, PangoStyle style, int warn)

Parses a font style. The allowed values are "normal", "italic" and "oblique", case variations being ignored.

parseVariant
int parseVariant(string str, PangoVariant variant, int warn)

Parses a font variant. The allowed values are "normal" and "smallcaps" or "small_caps", case variations being ignored.

parseWeight
int parseWeight(string str, PangoWeight weight, int warn)

Parses a font weight. The allowed values are "heavy", "ultrabold", "bold", "normal", "light", "ultraleight" and integers. Case variations are ignored.

quantizeLineGeometry
void quantizeLineGeometry(int thickness, int position)

Quantizes the thickness and position of a line, typically an underline or strikethrough, to whole device pixels, that is integer multiples of PANGO_SCALE. The purpose of this function is to avoid such lines looking blurry. Care is taken to make sure thickness is at least one pixel when this function returns, but returned position may become zero as a result of rounding. Since 1.12

readLine
int readLine(FILE* stream, StringG str)

Reads an entire line from a file into a buffer. Lines may be delimited with '\n', '\r', '\n\r', or '\r\n'. The delimiter is not written into the buffer. Text after a '#' character is treated as a comment and skipped. '\' can be used to escape a # character. '\' proceeding a line delimiter combines adjacent lines. A '\' proceeding any other character is ignored and written into the output buffer unmodified.

scanInt
int scanInt(string pos, int f_out)

Scans an integer. Leading white space is skipped.

scanString
int scanString(string pos, StringG f_out)

Scans a string into a GString buffer. The string may either be a sequence of non-white-space characters, or a quoted string with '"'. Instead a quoted string, '\"' represents a literal quote. Leading white space outside of quotes is skipped.

scanWord
int scanWord(string pos, StringG f_out)

Scans a word into a GString buffer. A word consists of [A-Za-z_] followed by zero or more [A-Za-z_0-9] Leading white space is skipped.

skipSpace
int skipSpace(string pos)

Skips 0 or more characters of white space.

splitFileList
string[] splitFileList(string str)

Splits a G_SEARCHPATH_SEPARATOR-separated list of files, stripping white space and substituting ~/ with $HOME/.

trimString
string trimString(string str)

Trims leading and trailing whitespace from a string.

Meta