Classes

The following classes are available globally.

Analysis Record

  • The PangoAnalysis structure stores information about the properties of a segment of text.

    The Analysis type acts as an owner of an underlying PangoAnalysis instance. It provides the methods that can operate on this data type through AnalysisProtocol conformance. Use Analysis as a strong reference or owner of a PangoAnalysis instance.

    See more

    Declaration

    Swift

    open class Analysis : AnalysisProtocol

AttrClass Record

  • The PangoAttrClass structure stores the type and operations for a particular type of attribute.

    The functions in this structure should not be called directly. Instead, one should use the wrapper functions provided for PangoAttribute.

    The AttrClass type acts as an owner of an underlying PangoAttrClass instance. It provides the methods that can operate on this data type through AttrClassProtocol conformance. Use AttrClass as a strong reference or owner of a PangoAttrClass instance.

    See more

    Declaration

    Swift

    open class AttrClass : AttrClassProtocol

AttrColor Record

  • The PangoAttrColor structure is used to represent attributes that are colors.

    The AttrColor type acts as an owner of an underlying PangoAttrColor instance. It provides the methods that can operate on this data type through AttrColorProtocol conformance. Use AttrColor as a strong reference or owner of a PangoAttrColor instance.

    See more

    Declaration

    Swift

    open class AttrColor : AttrColorProtocol

AttrFloat Record

  • The PangoAttrFloat structure is used to represent attributes with a float or double value.

    The AttrFloat type acts as an owner of an underlying PangoAttrFloat instance. It provides the methods that can operate on this data type through AttrFloatProtocol conformance. Use AttrFloat as a strong reference or owner of a PangoAttrFloat instance.

    See more

    Declaration

    Swift

    open class AttrFloat : AttrFloatProtocol

AttrFontDesc Record

  • The PangoAttrFontDesc structure is used to store an attribute that sets all aspects of the font description at once.

    The AttrFontDesc type acts as an owner of an underlying PangoAttrFontDesc instance. It provides the methods that can operate on this data type through AttrFontDescProtocol conformance. Use AttrFontDesc as a strong reference or owner of a PangoAttrFontDesc instance.

    See more

    Declaration

    Swift

    open class AttrFontDesc : AttrFontDescProtocol

AttrFontFeatures Record

  • The PangoAttrFontFeatures structure is used to represent OpenType font features as an attribute.

    The AttrFontFeatures type acts as an owner of an underlying PangoAttrFontFeatures instance. It provides the methods that can operate on this data type through AttrFontFeaturesProtocol conformance. Use AttrFontFeatures as a strong reference or owner of a PangoAttrFontFeatures instance.

    See more

    Declaration

    Swift

    open class AttrFontFeatures : AttrFontFeaturesProtocol

AttrInt Record

  • The PangoAttrInt structure is used to represent attributes with an integer or enumeration value.

    The AttrInt type acts as an owner of an underlying PangoAttrInt instance. It provides the methods that can operate on this data type through AttrIntProtocol conformance. Use AttrInt as a strong reference or owner of a PangoAttrInt instance.

    See more

    Declaration

    Swift

    open class AttrInt : AttrIntProtocol

AttrIterator Record

  • A PangoAttrIterator is used to iterate through a PangoAttrList.

    A new iterator is created with [methodPango.AttrList.get_iterator]. Once the iterator is created, it can be advanced through the style changes in the text using [methodPango.AttrIterator.next]. At each style change, the range of the current style segment and the attributes currently in effect can be queried.

    The AttrIterator type acts as an owner of an underlying PangoAttrIterator instance. It provides the methods that can operate on this data type through AttrIteratorProtocol conformance. Use AttrIterator as a strong reference or owner of a PangoAttrIterator instance.

    See more

    Declaration

    Swift

    open class AttrIterator : AttrIteratorProtocol

AttrLanguage Record

  • The PangoAttrLanguage structure is used to represent attributes that are languages.

    The AttrLanguage type acts as an owner of an underlying PangoAttrLanguage instance. It provides the methods that can operate on this data type through AttrLanguageProtocol conformance. Use AttrLanguage as a strong reference or owner of a PangoAttrLanguage instance.

    See more

    Declaration

    Swift

    open class AttrLanguage : AttrLanguageProtocol

AttrList Record

  • A PangoAttrList represents a list of attributes that apply to a section of text.

    The attributes in a PangoAttrList are, in general, allowed to overlap in an arbitrary fashion. However, if the attributes are manipulated only through [methodPango.AttrList.change], the overlap between properties will meet stricter criteria.

    Since the PangoAttrList structure is stored as a linear list, it is not suitable for storing attributes for large amounts of text. In general, you should not use a single PangoAttrList for more than one paragraph of text.

    The AttrList type acts as a reference-counted owner of an underlying PangoAttrList instance. It provides the methods that can operate on this data type through AttrListProtocol conformance. Use AttrList as a strong reference or owner of a PangoAttrList instance.

    See more

    Declaration

    Swift

    open class AttrList : AttrListProtocol

AttrShape Record

  • The PangoAttrShape structure is used to represent attributes which impose shape restrictions.

    The AttrShape type acts as an owner of an underlying PangoAttrShape instance. It provides the methods that can operate on this data type through AttrShapeProtocol conformance. Use AttrShape as a strong reference or owner of a PangoAttrShape instance.

    See more

    Declaration

    Swift

    open class AttrShape : AttrShapeProtocol

AttrSize Record

  • The PangoAttrSize structure is used to represent attributes which set font size.

    The AttrSize type acts as an owner of an underlying PangoAttrSize instance. It provides the methods that can operate on this data type through AttrSizeProtocol conformance. Use AttrSize as a strong reference or owner of a PangoAttrSize instance.

    See more

    Declaration

    Swift

    open class AttrSize : AttrSizeProtocol

AttrString Record

  • The PangoAttrString structure is used to represent attributes with a string value.

    The AttrString type acts as an owner of an underlying PangoAttrString instance. It provides the methods that can operate on this data type through AttrStringProtocol conformance. Use AttrString as a strong reference or owner of a PangoAttrString instance.

    See more

    Declaration

    Swift

    open class AttrString : AttrStringProtocol

Attribute Record

  • The PangoAttribute structure represents the common portions of all attributes.

    Particular types of attributes include this structure as their initial portion. The common portion of the attribute holds the range to which the value in the type-specific part of the attribute applies and should be initialized using [methodPango.Attribute.init]. By default, an attribute will have an all-inclusive range of [0,G_MAXUINT].

    The Attribute type acts as an owner of an underlying PangoAttribute instance. It provides the methods that can operate on this data type through AttributeProtocol conformance. Use Attribute as a strong reference or owner of a PangoAttribute instance.

    See more

    Declaration

    Swift

    open class Attribute : AttributeProtocol

Context Class

  • A PangoContext stores global information used to control the itemization process.

    The information stored by PangoContext includes the fontmap used to look up fonts, and default values such as the default language, default gravity, or default font.

    To obtain a PangoContext, use [methodPango.FontMap.create_context].

    The Context type acts as a reference-counted owner of an underlying PangoContext instance. It provides the methods that can operate on this data type through ContextProtocol conformance. Use Context as a strong reference or owner of a PangoContext instance.

    See more

    Declaration

    Swift

    open class Context : GLibObject.Object, ContextProtocol

Coverage Class

  • A PangoCoverage structure is a map from Unicode characters to [enumPango.CoverageLevel] values.

    It is often necessary in Pango to determine if a particular font can represent a particular character, and also how well it can represent that character. The PangoCoverage is a data structure that is used to represent that information. It is an opaque structure with no public fields.

    The Coverage type acts as a reference-counted owner of an underlying PangoCoverage instance. It provides the methods that can operate on this data type through CoverageProtocol conformance. Use Coverage as a strong reference or owner of a PangoCoverage instance.

    See more

    Declaration

    Swift

    open class Coverage : GLibObject.Object, CoverageProtocol

Color Record

  • The PangoColor structure is used to represent a color in an uncalibrated RGB color-space.

    The Color type acts as an owner of an underlying PangoColor instance. It provides the methods that can operate on this data type through ColorProtocol conformance. Use Color as a strong reference or owner of a PangoColor instance.

    See more

    Declaration

    Swift

    open class Color : ColorProtocol

Font Class

  • A PangoFont is used to represent a font in a rendering-system-independent manner.

    The Font type acts as a reference-counted owner of an underlying PangoFont instance. It provides the methods that can operate on this data type through FontProtocol conformance. Use Font as a strong reference or owner of a PangoFont instance.

    See more

    Declaration

    Swift

    open class Font : GLibObject.Object, FontProtocol

FontFace Class

  • A PangoFontFace is used to represent a group of fonts with the same family, slant, weight, and width, but varying sizes.

    The FontFace type acts as a reference-counted owner of an underlying PangoFontFace instance. It provides the methods that can operate on this data type through FontFaceProtocol conformance. Use FontFace as a strong reference or owner of a PangoFontFace instance.

    See more

    Declaration

    Swift

    open class FontFace : GLibObject.Object, FontFaceProtocol

FontFamily Class

  • A PangoFontFamily is used to represent a family of related font faces.

    The font faces in a family share a common design, but differ in slant, weight, width or other aspects.

    The FontFamily type acts as a reference-counted owner of an underlying PangoFontFamily instance. It provides the methods that can operate on this data type through FontFamilyProtocol conformance. Use FontFamily as a strong reference or owner of a PangoFontFamily instance.

    See more

    Declaration

    Swift

    open class FontFamily : GLibObject.Object, FontFamilyProtocol

FontMap Class

  • A PangoFontMap represents the set of fonts available for a particular rendering system.

    This is a virtual object with implementations being specific to particular rendering systems.

    The FontMap type acts as a reference-counted owner of an underlying PangoFontMap instance. It provides the methods that can operate on this data type through FontMapProtocol conformance. Use FontMap as a strong reference or owner of a PangoFontMap instance.

    See more

    Declaration

    Swift

    open class FontMap : GLibObject.Object, FontMapProtocol

Fontset Class

  • A PangoFontset represents a set of PangoFont to use when rendering text.

    A PangoFontset is the result of resolving a PangoFontDescription against a particular PangoContext. It has operations for finding the component font for a particular Unicode character, and for finding a composite set of metrics for the entire fontset.

    The Fontset type acts as a reference-counted owner of an underlying PangoFontset instance. It provides the methods that can operate on this data type through FontsetProtocol conformance. Use Fontset as a strong reference or owner of a PangoFontset instance.

    See more

    Declaration

    Swift

    open class Fontset : GLibObject.Object, FontsetProtocol

FontsetSimple Class

  • PangoFontsetSimple is a implementation of the abstract PangoFontset base class as an array of fonts.

    When creating a PangoFontsetSimple, you have to provide the array of fonts that make up the fontset.

    The FontsetSimple type acts as a reference-counted owner of an underlying PangoFontsetSimple instance. It provides the methods that can operate on this data type through FontsetSimpleProtocol conformance. Use FontsetSimple as a strong reference or owner of a PangoFontsetSimple instance.

    See more

    Declaration

    Swift

    open class FontsetSimple : Fontset, FontsetSimpleProtocol

FontDescription Record

  • A PangoFontDescription describes a font in an implementation-independent manner.

    PangoFontDescription structures are used both to list what fonts are available on the system and also for specifying the characteristics of a font to load.

    The FontDescription type acts as an owner of an underlying PangoFontDescription instance. It provides the methods that can operate on this data type through FontDescriptionProtocol conformance. Use FontDescription as a strong reference or owner of a PangoFontDescription instance.

    See more

    Declaration

    Swift

    open class FontDescription : FontDescriptionProtocol

FontMetrics Record

  • A PangoFontMetrics structure holds the overall metric information for a font.

    The information in a PangoFontMetrics structure may be restricted to a script. The fields of this structure are private to implementations of a font backend. See the documentation of the corresponding getters for documentation of their meaning.

    For an overview of the most important metrics, see:

    <picture> <source srcset=“fontmetrics-dark.png” media=“(prefers-color-scheme: dark)”> <img alt=“Font metrics” src=“fontmetrics-light.png”> </picture>

    The FontMetrics type acts as a reference-counted owner of an underlying PangoFontMetrics instance. It provides the methods that can operate on this data type through FontMetricsProtocol conformance. Use FontMetrics as a strong reference or owner of a PangoFontMetrics instance.

    See more

    Declaration

    Swift

    open class FontMetrics : FontMetricsProtocol

GlyphGeometry Record

  • The PangoGlyphGeometry structure contains width and positioning information for a single glyph.

    Note that width is not guaranteed to be the same as the glyph extents. Kerning and other positioning applied during shaping will affect both the width and the x_offset for the glyphs in the glyph string that results from shaping.

    The information in this struct is intended for rendering the glyphs, as follows:

    1. Assume the current point is (x, y)
    2. Render the current glyph at (x + x_offset, y + y_offset),
    3. Advance the current point to (x + width, y)
    4. Render the next glyph

    The GlyphGeometry type acts as an owner of an underlying PangoGlyphGeometry instance. It provides the methods that can operate on this data type through GlyphGeometryProtocol conformance. Use GlyphGeometry as a strong reference or owner of a PangoGlyphGeometry instance.

    See more

    Declaration

    Swift

    open class GlyphGeometry : GlyphGeometryProtocol

GlyphInfo Record

  • A PangoGlyphInfo structure represents a single glyph with positioning information and visual attributes.

    The GlyphInfo type acts as an owner of an underlying PangoGlyphInfo instance. It provides the methods that can operate on this data type through GlyphInfoProtocol conformance. Use GlyphInfo as a strong reference or owner of a PangoGlyphInfo instance.

    See more

    Declaration

    Swift

    open class GlyphInfo : GlyphInfoProtocol

GlyphItem Record

  • A PangoGlyphItem is a pair of a PangoItem and the glyphs resulting from shaping the items text.

    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.

    The GlyphItem type acts as an owner of an underlying PangoGlyphItem instance. It provides the methods that can operate on this data type through GlyphItemProtocol conformance. Use GlyphItem as a strong reference or owner of a PangoGlyphItem instance.

    See more

    Declaration

    Swift

    open class GlyphItem : GlyphItemProtocol

GlyphItemIter Record

  • A 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-&gt;item-&gt;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 pango_glyph_item_iter_init_start() or pango_glyph_item_iter_init_end(), for forward and backward iteration respectively, and walked over using any desired mixture of pango_glyph_item_iter_next_cluster() and pango_glyph_item_iter_prev_cluster().

    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-&gt;item-&gt;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.

    The GlyphItemIter type acts as an owner of an underlying PangoGlyphItemIter instance. It provides the methods that can operate on this data type through GlyphItemIterProtocol conformance. Use GlyphItemIter as a strong reference or owner of a PangoGlyphItemIter instance.

    See more

    Declaration

    Swift

    open class GlyphItemIter : GlyphItemIterProtocol

GlyphString Record

  • A PangoGlyphString 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.

    The GlyphString type acts as an owner of an underlying PangoGlyphString instance. It provides the methods that can operate on this data type through GlyphStringProtocol conformance. Use GlyphString as a strong reference or owner of a PangoGlyphString instance.

    See more

    Declaration

    Swift

    open class GlyphString : GlyphStringProtocol

GlyphVisAttr Record

  • A PangoGlyphVisAttr structure communicates information between the shaping and rendering phases.

    Currently, it contains cluster start and color information. More attributes may be added in the future.

    Clusters are stored in visual order, within the cluster, glyphs are always ordered in logical order, since visual order is meaningless; that is, in Arabic text, accent glyphs follow the glyphs for the base character.

    The GlyphVisAttr type acts as an owner of an underlying PangoGlyphVisAttr instance. It provides the methods that can operate on this data type through GlyphVisAttrProtocol conformance. Use GlyphVisAttr as a strong reference or owner of a PangoGlyphVisAttr instance.

    See more

    Declaration

    Swift

    open class GlyphVisAttr : GlyphVisAttrProtocol

Item Record

  • The PangoItem structure stores information about a segment of text.

    You typically obtain PangoItems by itemizing a piece of text with [funcitemize].

    The Item type acts as an owner of an underlying PangoItem instance. It provides the methods that can operate on this data type through ItemProtocol conformance. Use Item as a strong reference or owner of a PangoItem instance.

    See more

    Declaration

    Swift

    open class Item : ItemProtocol

Layout Class

  • A PangoLayout structure represents an entire paragraph of text.

    While complete access to the layout capabilities of Pango is provided using the detailed interfaces for itemization and shaping, using that functionality directly involves writing a fairly large amount of code. PangoLayout provides a high-level driver for formatting entire paragraphs of text at once. This includes paragraph-level functionality such as line breaking, justification, alignment and ellipsization.

    A PangoLayout is initialized with a PangoContext, UTF-8 string and set of attributes for that string. Once that is done, the set of formatted lines can be extracted from the object, the layout can be rendered, and conversion between logical character positions within the layout’s text, and the physical position of the resulting glyphs can be made.

    There are a number of parameters to adjust the formatting of a PangoLayout. The following image shows adjustable parameters (on the left) and font metrics (on the right):

    <picture> <source srcset=“layout-dark.png” media=“(prefers-color-scheme: dark)”> <img alt=“Pango Layout Parameters” src=“layout-light.png”> </picture>

    The following images demonstrate the effect of alignment and justification on the layout of text:

    align=left align=left, justify
    align=center align=center, justify
    align=right align=right, justify

    It is possible, as well, to ignore the 2-D setup, and simply treat the results of a PangoLayout as a list of lines.

    The Layout type acts as a reference-counted owner of an underlying PangoLayout instance. It provides the methods that can operate on this data type through LayoutProtocol conformance. Use Layout as a strong reference or owner of a PangoLayout instance.

    See more

    Declaration

    Swift

    open class Layout : GLibObject.Object, LayoutProtocol

Language Record

  • The PangoLanguage structure is used to represent a language.

    PangoLanguage pointers can be efficiently copied and compared with each other.

    The Language type acts as an owner of an underlying PangoLanguage instance. It provides the methods that can operate on this data type through LanguageProtocol conformance. Use Language as a strong reference or owner of a PangoLanguage instance.

    See more

    Declaration

    Swift

    open class Language : LanguageProtocol

LayoutIter Record

  • A PangoLayoutIter can be used to iterate over the visual extents of a PangoLayout.

    To obtain a PangoLayoutIter, use [methodPango.Layout.get_iter].

    The PangoLayoutIter structure is opaque, and has no user-visible fields.

    The LayoutIter type acts as an owner of an underlying PangoLayoutIter instance. It provides the methods that can operate on this data type through LayoutIterProtocol conformance. Use LayoutIter as a strong reference or owner of a PangoLayoutIter instance.

    See more

    Declaration

    Swift

    open class LayoutIter : LayoutIterProtocol

LayoutLine Record

  • A PangoLayoutLine represents one of the lines resulting from laying out a paragraph via PangoLayout.

    PangoLayoutLine structures are obtained by calling [methodPango.Layout.get_line] and are only valid until the text, attributes, or settings of the parent PangoLayout are modified.

    The LayoutLine type acts as a reference-counted owner of an underlying PangoLayoutLine instance. It provides the methods that can operate on this data type through LayoutLineProtocol conformance. Use LayoutLine as a strong reference or owner of a PangoLayoutLine instance.

    See more

    Declaration

    Swift

    open class LayoutLine : LayoutLineProtocol

LogAttr Record

  • The PangoLogAttr structure stores information about the attributes of a single character.

    The LogAttr type acts as an owner of an underlying PangoLogAttr instance. It provides the methods that can operate on this data type through LogAttrProtocol conformance. Use LogAttr as a strong reference or owner of a PangoLogAttr instance.

    See more

    Declaration

    Swift

    open class LogAttr : LogAttrProtocol

Matrix Record

  • A PangoMatrix specifies a transformation between user-space and device coordinates.

    The transformation is given by

    x_device = x_user * matrix-&gt;xx + y_user * matrix-&gt;xy + matrix-&gt;x0;
    y_device = x_user * matrix-&gt;yx + y_user * matrix-&gt;yy + matrix-&gt;y0;
    

    The Matrix type acts as an owner of an underlying PangoMatrix instance. It provides the methods that can operate on this data type through MatrixProtocol conformance. Use Matrix as a strong reference or owner of a PangoMatrix instance.

    See more

    Declaration

    Swift

    open class Matrix : MatrixProtocol

Renderer Class

  • PangoRenderer is a base class for objects that can render text provided as PangoGlyphString or PangoLayout.

    By subclassing PangoRenderer and overriding operations such as draw_glyphs and draw_rectangle, renderers for particular font backends and destinations can be created.

    The Renderer type acts as a reference-counted owner of an underlying PangoRenderer instance. It provides the methods that can operate on this data type through RendererProtocol conformance. Use Renderer as a strong reference or owner of a PangoRenderer instance.

    See more

    Declaration

    Swift

    open class Renderer : GLibObject.Object, RendererProtocol

Rectangle Record

  • The PangoRectangle structure represents a rectangle.

    PangoRectangle is frequently used to represent the logical or ink extents of a single glyph or section of text. (See, for instance, [methodPango.Font.get_glyph_extents].)

    The Rectangle type acts as an owner of an underlying PangoRectangle instance. It provides the methods that can operate on this data type through RectangleProtocol conformance. Use Rectangle as a strong reference or owner of a PangoRectangle instance.

    See more

    Declaration

    Swift

    open class Rectangle : RectangleProtocol

ScriptIter Record

  • A PangoScriptIter is used to iterate through a string and identify ranges in different scripts.

    The ScriptIter type acts as an owner of an underlying PangoScriptIter instance. It provides the methods that can operate on this data type through ScriptIterProtocol conformance. Use ScriptIter as a strong reference or owner of a PangoScriptIter instance.

    See more

    Declaration

    Swift

    open class ScriptIter : ScriptIterProtocol

TabArray Record

  • A PangoTabArray contains an array of tab stops.

    PangoTabArray can be used to set tab stops in a PangoLayout. Each tab stop has an alignment, a position, and optionally a character to use as decimal point.

    The TabArray type acts as an owner of an underlying PangoTabArray instance. It provides the methods that can operate on this data type through TabArrayProtocol conformance. Use TabArray as a strong reference or owner of a PangoTabArray instance.

    See more

    Declaration

    Swift

    open class TabArray : TabArrayProtocol