# Packages

Package color implements a tool to generate the values of common colors supported by pango.
Package fcfonts is an implementation of the font tooling required by Pango, using textlayout/fontconfig and textlayout/fonts.

# Functions

AsUnknownGlyph returns a `Glyph` value that means no glyph was found for `wc`.
ComputeCharacterAttributes computes a `CharAttr` for each character in `text`.
DefaultLanguage calls language.DefaultLanguage.
FontGetMetrics gets overall metric information for a font.
LoadFont calls `LoadFontset` and select the first font, or nil if not found.
NewAttrAbsoluteLineHeight overrides the height of logical line extents to be `height`, in `Scale`-ths of a point This affects the values returned by LayoutLine.getExtents(), LayoutLine.getPixelExtents() and LayoutIter.getLineExtents() methods.
NewAttrAbsoluteSize creates a new font-size attribute in device units.
NewAttrAllowBreaks creates a new allow-breaks attribute.
NewAttrBackground creates a new background color attribute.
NewAttrBackgroundAlpha creates a new background alpha attribute.
NewAttrBaselineShift creates a new baseline displacement attribute.
NewAttrFallback creates a new font fallback attribute.
NewAttrFamily creates a new font family attribute: `family` is the family or comma separated list of families.
NewAttrFontDescription creates a new font description attribute.
NewAttrFontFeatures creates a new font features tag attribute, from a string with OpenType font features, in CSS syntax.
NewAttrFontScale creates a new font scale attribute.
NewAttrForeground creates a new foreground color attribute.
NewAttrForegroundAlpha creates a new foreground alpha attribute.
NewAttrGravity creates a new gravity attribute, which should not be `PANGO_GRAVITY_AUTO`.
NewAttrGravityHint creates a new gravity_hint attribute.
NewAttrInsertHyphens creates a new insert-hyphens attribute.
NewAttrLanguage creates a new language tag attribute.
NewAttrLetterSpacing creates a new letter-spacing attribute, the amount of extra space to add between graphemes of the text, in Pango units.
NewAttrLineHeight modifies the height of logical line extents by a factor.
NewAttrOverline creates a new overline-style attribute.
NewAttrOverlineColor creates a new overline color attribute.
NewAttrRise creates a new baseline displacement attribute: `rise` is the amount that the text should be displaced vertically, in Pango units.
NewAttrScale creates a new font size scale attribute.
NewAttrSentence marks the range of the attribute as a single sentence.
NewAttrShape creates a new shape attribute.
NewAttrShow creates a new attribute that influences how invisible characters are rendered.
NewAttrSize creates a new font-size attribute in fractional points.
NewAttrStretch creates a new font stretch attribute.
NewAttrStrikethrough creates a new strikethrough-style attribute.
NewAttrStrikethroughColor creates a new strikethrough color attribute.
NewAttrStyle creates a new font slant style attribute.
NewAttrTextTransform marks the range of the attribute as a single sentence.
NewAttrUnderline creates a new underline-style attribute.
NewAttrUnderlineColor creates a new underline color attribute.
NewAttrVariant creates a new font variant attribute (normal or small caps).
NewAttrWeight creates a new font weight attribute.
NewAttrWord marks the range of the attribute as a single word.
NewContext creates a `Context` connected to `fontmap`, and initialized to default values.
NewFontDescription creates a new font description structure with all fields unset, but with default values.
NewFontDescriptionFrom creates a new font description from a string representation in the form "[FAMILY-LIST] [STYLE-OPTIONS] [SIZE] [VARIATIONS]", where FAMILY-LIST is a comma-separated list of families optionally terminated by a comma, STYLE_OPTIONS is a whitespace-separated list of words where each word Describes one of style, variant, weight, stretch, or gravity, and SIZE is a decimal number (size in points) or optionally followed by the unit modifier "px" for absolute size.
NewLayout creates a new `Layout` object with attributes initialized to default values for a particular `Context`.
ParseMarkup parses marked-up text to create a plain-text string and an attribute list.
SampleString get a string that is representative of the characters needed to render a particular language.

# Constants

Whether the segment should be shifted to center around the baseline.
Used to mark runs that hold ellipsized text in an ellipsized layout.
Add an hyphen at the end of the run during shaping.
Center the line within the available space.
Put all available space on the right.
Put all available space on the left.
line height (AttrInt).
font size in pixels scaled by `Scale` (AttrInt).
whether breaks are allowed (AttrInt).
background color (AttrColor).
background alpha (AttrInt).
baseline displacement (AttrInt).
whether fallback is enabled (AttrInt).
font family name list (AttrString).
font description (AttrFontDesc).
OpenType font features (AttrString).
font-relative size change (AttrInt).
foreground color (AttrColor).
foreground alpha (AttrInt).
base text gravity (AttrInt).
gravity hint (AttrInt).
whether to insert hyphens at intra-word line breaks (AttrInt).
does not happen.
language (AttrString).
letter spacing (AttrInt).
line height factor (AttrFloat).
whether the text has an overline (AttrInt).
overline color (AttrColor).
baseline displacement (AttrInt).
font size scale factor (AttrFloat).
override segmentation to classify the range of the attribute as a single sentence (AttrInt).
shape (AttrShape).
how to render invisible characters (AttrInt).
font size in points scaled by `Scale` (AttrInt).
font stretch (AttrInt).
whether the text is struck-through (AttrInt).
strikethrough color (AttrColor).
font slant style (AttrInt).
(AttrInt).
whether the text has an underline (AttrInt).
underline color (AttrColor).
font variant (normal or small caps) (AttrInt).
font weight (AttrInt).
override segmentation to classify the range of the attribute as a single word (AttrInt).
No description provided by the author
Leave the baseline unchanged.
Shift the baseline to the subscript position, relative to the previous run.
Shift the baseline to the superscript position, relative to the previous run.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
A strong left-to-right direction.
No direction specified.
A strong right-to-left direction.
A weak left-to-right direction.
A weak right-to-left direction.
Omit characters at the end of the text.
Omit characters in the middle of the text.
No ellipsization.
Omit characters at the start of the text.
No description provided by the author
the font family is specified.
the font gravity is specified (Since: 1.16.).
the font size is specified.
the font stretch is specified.
the font style is specified.
the font variant is specified.
OpenType font variations are specified (Since: 1.42).
the font weight is specified.
Leave the font size unchanged.
Change the font to a size suitable for Small Caps.
Change the font to a size suitable for subscripts.
Change the font to a size suitable for superscripts.
`GLYPH_EMPTY` represents a `Glyph` value that has a special meaning, which is a zero-width empty glyph.
`GLYPH_INVALID_INPUT` represents a `Glyph` value that has a special meaning of invalid input.
`GLYPH_UNKNOWN_FLAG` is a flag value that can be added to a rune value of a valid Unicode character, to produce a `Glyph` value, representing an unknown-character glyph for the respective rune.
Gravity is resolved from the context matrix.
Glyphs are rotated 90 degrees clockwise.
For scripts not in their natural direction (eg.
scripts will take their natural gravity based on the base gravity and the script.
always use the base gravity set, regardless of the script.
Glyphs are upside-down.
Glyphs stand upright (default).
Glyphs are rotated 90 degrees counter-clockwise.
No description provided by the author
No description provided by the author
MaxInt is used as a sentinel value to represent unbounded ranges.
no overline should be drawn.
Draw a single line above the ink extents of the text being underlined.
Scale represents the scale between dimensions used for Pango distances and device units.
The scale factor for one magnification step (1.2).
The scale factor for normal size (1.0).
The scale factor for one shrinking step (1 / 1.2).
The scale factor for two magnification steps (1.2 * 1.2).
The scale factor for two shrinking steps (1 / (1.2 * 1.2)).
The scale factor for three magnification steps (1.2 * 1.2 * 1.2).
The scale factor for three shrinking steps (1 / (1.2 * 1.2 * 1.2)).
No description provided by the author
No description provided by the author
No description provided by the author
Render default-ignorable Unicode characters visibly.
Render line breaks visibly.
No special treatment for invisible characters.
Render spaces, tabs and newlines visibly.
condensed width.
expanded width.
extra condensed width.
extra expanded width.
the normal width.
semi condensed width.
semi expanded width.
ultra condensed width.
ultra expanded width.
the font is slanted in an italic style.
the font is upright.
the font is slanted, but in a roman style.
the text is centered at the tab stop position until the available space is filled.
text before the first '.' appears to the left of the tab stop position (until the available space is filled), the rest to the right.
the tab stop appears to the left of the text.
the text appears to the left of the tab stop position until the available space is filled.
Display the first character of a word.
Display letters and numbers as lowercase.
Leave text unchanged.
Display letters and numbers as uppercase.
a double underline should be drawn.
like UNDERLINE_DOUBLE, but drawn continuously across multiple runs.
a wavy underline should be drawn below.
like UNDERLINE_ERROR, but drawn continuously across multiple runs.
a single underline should be drawn at a position beneath the ink extents of the text being underlined.
no underline should be drawn.
a single underline should be drawn.
like UNDERLINE_SINGLE, but drawn continuously across multiple runs.
A font with all characters replaced by smaller variants of the capital characters.
A font with all characters replaced by smaller variants of the capital characters.
A normal font.
A font with the lower case characters replaced by smaller variants of the capital characters.
A font with the lower case characters replaced by smaller variants of the capital characters.
A font with capital letters that are more suitable for all-uppercase titles.
A font with the upper case characters replaced by smaller variants of the capital letters.
the bold weight (= 700).
the book weight (= 380; Since: 1.24).
the heavy weight (= 900).
the light weight (= 300).
the normal weight (= 500; Since: 1.24).
the default weight (= 400).
the semibold weight (= 600).
the semilight weight (= 350; Since: 1.36.7).
the thin weight (= 100; Since: 1.24).
the ultrabold weight (= 800).
the ultraheavy weight (= 1000; Since: 1.24).
the ultralight weight (= 200).
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
wrap lines at character boundaries.
wrap lines at word boundaries.
wrap lines at word boundaries, but fall back to character boundaries if there is not enough space for a full word.

# Variables

GravityMap exposes the string representation for the Graviy values.
No description provided by the author
StretchMap provides string identifier for the Stretch enumeration.
StyleMap provides string identifier for the Style enumeration.

# Structs

Analysis stores information about the properties of a segment of text.
AttrColor is used to represent a color in an uncalibrated RGB color-space.
Attribute are used as the input to the itemization process and also when creating a `Layout`.
AttrShape is used to represent attributes which impose shape restrictions.
Context stores global information used to control the itemization process.
No description provided by the author
FontDescription represents the description of an ideal font.
FontMetrics holds the overall metric information for a font (possibly restricted to a script).
GlyphGeometry contains width and positioning information for a single glyph.
GlyphInfo represents a single glyph together with positioning information and visual attributes.
GlyphItem is a pair of a Item and the glyphs resulting from shaping the text corresponding to an item.
GlyphItemIter is an iterator over the clusters in a `GlyphItem`.
GlyphString structure is used to store strings of glyphs with geometry and visual attribute information - ready for drawing.
Item stores information about a segment of text.
ItemList is a single linked list of Item elements.
Layout represents an entire paragraph of text.
LayoutIter is a structure that can be used to iterate over the visual extents of a `Layout`.
LayoutLine represents one of the lines resulting from laying out a paragraph via `Layout`.
Matrix is a transformation between user-space coordinates and device coordinates.
ParsedMarkup exposes the result of parsing a simple markup language for text with attributes.
Rectangle represents a rectangle.
RunList is a linked list of `GlyphItem`.
No description provided by the author
A `TabArray` struct contains an array of tab stops.

# Interfaces

AttrData stores the type specific value of an attribute.
Coverage represents a set of Unicode characters.
Font is used to represent a font in a rendering-system-independent matter.
FontMap represents the set of fonts available for a particular rendering system.
Fontset represents a set of Font to use when rendering text.

# Type aliases

Alignment describes how to align the lines of a `Layout` within the available space.
AttrFloat is a float.
AttrInt is an int.
AttrKind is an enum for the supported attributes (see the constants).
No description provided by the author
AttrString is a string.
BaselineShift affects baseline shifts between runs.
CharAttr is a flag storing information about the attributes of a single character.
The Direction type represents a direction in the Unicode bidirectional algorithm.
EllipsizeMode describes what sort of (if any) ellipsization should be applied to a line of text.
No description provided by the author
FontMask bits correspond to fields in a `FontDescription` that have been set.
No description provided by the author
Returns `true` stops the iteration.
Glyph represents a single glyph in the output form of a str.
Gravity represents the orientation of glyphs in a segment of text.
GravityHint defines how horizontal scripts should behave in a vertical context.
No description provided by the author
Overline is used to specify whether text should be overlined, and if so, the type of line.
No description provided by the author
ShowFlags affects how Pango treats characters that are normally not visible in the output.
Stretch specifies the width of the font relative to other designs within a family.
Style specifies the various slant styles possible for a font.
A TabAlign specifies where the text appears relative to the tab stop position.
TextTransform affects how Pango treats characters during shaping.
Underline enumeration is used to specify whether text should be underlined, and if so, the type of underlining.
Unit is used to store dimensions within Pango.
Variant specifies capitalization variant of the font.
Weight specifies the weight (boldness) of a font.
WrapMode Describes how to wrap the lines of a `Layout` to the desired width.