Classes
The following classes are available globally.
-
The
PangoAnalysis
structure stores information about the properties of a segment of text.The
See moreAnalysis
type acts as an owner of an underlyingPangoAnalysis
instance. It provides the methods that can operate on this data type throughAnalysisProtocol
conformance. UseAnalysis
as a strong reference or owner of aPangoAnalysis
instance.Declaration
Swift
open class Analysis : AnalysisProtocol
-
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
See moreAttrClass
type acts as an owner of an underlyingPangoAttrClass
instance. It provides the methods that can operate on this data type throughAttrClassProtocol
conformance. UseAttrClass
as a strong reference or owner of aPangoAttrClass
instance.Declaration
Swift
open class AttrClass : AttrClassProtocol
-
The
PangoAttrColor
structure is used to represent attributes that are colors.The
See moreAttrColor
type acts as an owner of an underlyingPangoAttrColor
instance. It provides the methods that can operate on this data type throughAttrColorProtocol
conformance. UseAttrColor
as a strong reference or owner of aPangoAttrColor
instance.Declaration
Swift
open class AttrColor : AttrColorProtocol
-
The
PangoAttrFloat
structure is used to represent attributes with a float or double value.The
See moreAttrFloat
type acts as an owner of an underlyingPangoAttrFloat
instance. It provides the methods that can operate on this data type throughAttrFloatProtocol
conformance. UseAttrFloat
as a strong reference or owner of aPangoAttrFloat
instance.Declaration
Swift
open class AttrFloat : AttrFloatProtocol
-
The
PangoAttrFontDesc
structure is used to store an attribute that sets all aspects of the font description at once.The
See moreAttrFontDesc
type acts as an owner of an underlyingPangoAttrFontDesc
instance. It provides the methods that can operate on this data type throughAttrFontDescProtocol
conformance. UseAttrFontDesc
as a strong reference or owner of aPangoAttrFontDesc
instance.Declaration
Swift
open class AttrFontDesc : AttrFontDescProtocol
-
The
PangoAttrFontFeatures
structure is used to represent OpenType font features as an attribute.The
See moreAttrFontFeatures
type acts as an owner of an underlyingPangoAttrFontFeatures
instance. It provides the methods that can operate on this data type throughAttrFontFeaturesProtocol
conformance. UseAttrFontFeatures
as a strong reference or owner of aPangoAttrFontFeatures
instance.Declaration
Swift
open class AttrFontFeatures : AttrFontFeaturesProtocol
-
The
PangoAttrInt
structure is used to represent attributes with an integer or enumeration value.The
See moreAttrInt
type acts as an owner of an underlyingPangoAttrInt
instance. It provides the methods that can operate on this data type throughAttrIntProtocol
conformance. UseAttrInt
as a strong reference or owner of aPangoAttrInt
instance.Declaration
Swift
open class AttrInt : AttrIntProtocol
-
A
PangoAttrIterator
is used to iterate through aPangoAttrList
.A new iterator is created with [method
Pango.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
See moreAttrIterator
type acts as an owner of an underlyingPangoAttrIterator
instance. It provides the methods that can operate on this data type throughAttrIteratorProtocol
conformance. UseAttrIterator
as a strong reference or owner of aPangoAttrIterator
instance.Declaration
Swift
open class AttrIterator : AttrIteratorProtocol
-
The
PangoAttrLanguage
structure is used to represent attributes that are languages.The
See moreAttrLanguage
type acts as an owner of an underlyingPangoAttrLanguage
instance. It provides the methods that can operate on this data type throughAttrLanguageProtocol
conformance. UseAttrLanguage
as a strong reference or owner of aPangoAttrLanguage
instance.Declaration
Swift
open class AttrLanguage : AttrLanguageProtocol
-
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 singlePangoAttrList
for more than one paragraph of text.The
See moreAttrList
type acts as a reference-counted owner of an underlyingPangoAttrList
instance. It provides the methods that can operate on this data type throughAttrListProtocol
conformance. UseAttrList
as a strong reference or owner of aPangoAttrList
instance.Declaration
Swift
open class AttrList : AttrListProtocol
-
The
PangoAttrShape
structure is used to represent attributes which impose shape restrictions.The
See moreAttrShape
type acts as an owner of an underlyingPangoAttrShape
instance. It provides the methods that can operate on this data type throughAttrShapeProtocol
conformance. UseAttrShape
as a strong reference or owner of aPangoAttrShape
instance.Declaration
Swift
open class AttrShape : AttrShapeProtocol
-
The
PangoAttrSize
structure is used to represent attributes which set font size.The
See moreAttrSize
type acts as an owner of an underlyingPangoAttrSize
instance. It provides the methods that can operate on this data type throughAttrSizeProtocol
conformance. UseAttrSize
as a strong reference or owner of aPangoAttrSize
instance.Declaration
Swift
open class AttrSize : AttrSizeProtocol
-
The
PangoAttrString
structure is used to represent attributes with a string value.The
See moreAttrString
type acts as an owner of an underlyingPangoAttrString
instance. It provides the methods that can operate on this data type throughAttrStringProtocol
conformance. UseAttrString
as a strong reference or owner of aPangoAttrString
instance.Declaration
Swift
open class AttrString : AttrStringProtocol
-
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 [method
Pango.Attribute.init
]. By default, an attribute will have an all-inclusive range of [0,G_MAXUINT
].The
See moreAttribute
type acts as an owner of an underlyingPangoAttribute
instance. It provides the methods that can operate on this data type throughAttributeProtocol
conformance. UseAttribute
as a strong reference or owner of aPangoAttribute
instance.Declaration
Swift
open class Attribute : AttributeProtocol
-
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
See moreContext
type acts as a reference-counted owner of an underlyingPangoContext
instance. It provides the methods that can operate on this data type throughContextProtocol
conformance. UseContext
as a strong reference or owner of aPangoContext
instance.Declaration
Swift
open class Context : GLibObject.Object, ContextProtocol
-
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
See moreCoverage
type acts as a reference-counted owner of an underlyingPangoCoverage
instance. It provides the methods that can operate on this data type throughCoverageProtocol
conformance. UseCoverage
as a strong reference or owner of aPangoCoverage
instance.Declaration
Swift
open class Coverage : GLibObject.Object, CoverageProtocol
-
The
PangoColor
structure is used to represent a color in an uncalibrated RGB color-space.The
See moreColor
type acts as an owner of an underlyingPangoColor
instance. It provides the methods that can operate on this data type throughColorProtocol
conformance. UseColor
as a strong reference or owner of aPangoColor
instance.Declaration
Swift
open class Color : ColorProtocol
-
A
PangoFont
is used to represent a font in a rendering-system-independent manner.The
See moreFont
type acts as a reference-counted owner of an underlyingPangoFont
instance. It provides the methods that can operate on this data type throughFontProtocol
conformance. UseFont
as a strong reference or owner of aPangoFont
instance.Declaration
Swift
open class Font : GLibObject.Object, FontProtocol
-
A
PangoFontFace
is used to represent a group of fonts with the same family, slant, weight, and width, but varying sizes.The
See moreFontFace
type acts as a reference-counted owner of an underlyingPangoFontFace
instance. It provides the methods that can operate on this data type throughFontFaceProtocol
conformance. UseFontFace
as a strong reference or owner of aPangoFontFace
instance.Declaration
Swift
open class FontFace : GLibObject.Object, FontFaceProtocol
-
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
See moreFontFamily
type acts as a reference-counted owner of an underlyingPangoFontFamily
instance. It provides the methods that can operate on this data type throughFontFamilyProtocol
conformance. UseFontFamily
as a strong reference or owner of aPangoFontFamily
instance.Declaration
Swift
open class FontFamily : GLibObject.Object, FontFamilyProtocol
-
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
See moreFontMap
type acts as a reference-counted owner of an underlyingPangoFontMap
instance. It provides the methods that can operate on this data type throughFontMapProtocol
conformance. UseFontMap
as a strong reference or owner of aPangoFontMap
instance.Declaration
Swift
open class FontMap : GLibObject.Object, FontMapProtocol
-
A
PangoFontset
represents a set ofPangoFont
to use when rendering text.A
PangoFontset
is the result of resolving aPangoFontDescription
against a particularPangoContext
. 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
See moreFontset
type acts as a reference-counted owner of an underlyingPangoFontset
instance. It provides the methods that can operate on this data type throughFontsetProtocol
conformance. UseFontset
as a strong reference or owner of aPangoFontset
instance.Declaration
Swift
open class Fontset : GLibObject.Object, FontsetProtocol
-
PangoFontsetSimple
is a implementation of the abstractPangoFontset
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
See moreFontsetSimple
type acts as a reference-counted owner of an underlyingPangoFontsetSimple
instance. It provides the methods that can operate on this data type throughFontsetSimpleProtocol
conformance. UseFontsetSimple
as a strong reference or owner of aPangoFontsetSimple
instance.Declaration
Swift
open class FontsetSimple : Fontset, FontsetSimpleProtocol
-
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
See moreFontDescription
type acts as an owner of an underlyingPangoFontDescription
instance. It provides the methods that can operate on this data type throughFontDescriptionProtocol
conformance. UseFontDescription
as a strong reference or owner of aPangoFontDescription
instance.Declaration
Swift
open class FontDescription : FontDescriptionProtocol
-
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
See moreFontMetrics
type acts as a reference-counted owner of an underlyingPangoFontMetrics
instance. It provides the methods that can operate on this data type throughFontMetricsProtocol
conformance. UseFontMetrics
as a strong reference or owner of aPangoFontMetrics
instance.Declaration
Swift
open class FontMetrics : FontMetricsProtocol
-
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 thewidth
and thex_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:
- Assume the current point is (x, y)
- Render the current glyph at (x + x_offset, y + y_offset),
- Advance the current point to (x + width, y)
- Render the next glyph
The
See moreGlyphGeometry
type acts as an owner of an underlyingPangoGlyphGeometry
instance. It provides the methods that can operate on this data type throughGlyphGeometryProtocol
conformance. UseGlyphGeometry
as a strong reference or owner of aPangoGlyphGeometry
instance.Declaration
Swift
open class GlyphGeometry : GlyphGeometryProtocol
-
A
PangoGlyphInfo
structure represents a single glyph with positioning information and visual attributes.The
See moreGlyphInfo
type acts as an owner of an underlyingPangoGlyphInfo
instance. It provides the methods that can operate on this data type throughGlyphInfoProtocol
conformance. UseGlyphInfo
as a strong reference or owner of aPangoGlyphInfo
instance.Declaration
Swift
open class GlyphInfo : GlyphInfoProtocol
-
A
PangoGlyphItem
is a pair of aPangoItem
and the glyphs resulting from shaping the items text.As an example of the usage of
PangoGlyphItem
, the results of shaping text withPangoLayout
is a list ofPangoLayoutLine
, each of which contains a list ofPangoGlyphItem
.The
See moreGlyphItem
type acts as an owner of an underlyingPangoGlyphItem
instance. It provides the methods that can operate on this data type throughGlyphItemProtocol
conformance. UseGlyphItem
as a strong reference or owner of aPangoGlyphItem
instance.Declaration
Swift
open class GlyphItem : GlyphItemProtocol
-
A
PangoGlyphItemIter
is an iterator over the clusters in aPangoGlyphItem
.The forward direction of the iterator is the logical direction of text. That is, with increasing
start_index
andstart_char
values. Ifglyph_item
is right-to-left (that is, ifglyph_item->item->analysis.level
is odd), thenstart_glyph
decreases as the iterator moves forward. Moreover, in right-to-left cases,start_glyph
is greater thanend_glyph
.An iterator should be initialized using either
pango_glyph_item_iter_init_start()
orpango_glyph_item_iter_init_end()
, for forward and backward iteration respectively, and walked over using any desired mixture ofpango_glyph_item_iter_next_cluster()
andpango_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 byglyph_item->item->offset
to get to the text ofglyph_item
. Thestart_index
andend_index
values can directly index intotext
. Thestart_glyph
,end_glyph
,start_char
, andend_char
values however are zero-based for theglyph_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
See moreGlyphItemIter
type acts as an owner of an underlyingPangoGlyphItemIter
instance. It provides the methods that can operate on this data type throughGlyphItemIterProtocol
conformance. UseGlyphItemIter
as a strong reference or owner of aPangoGlyphItemIter
instance.Declaration
Swift
open class GlyphItemIter : GlyphItemIterProtocol
-
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
See moreGlyphString
type acts as an owner of an underlyingPangoGlyphString
instance. It provides the methods that can operate on this data type throughGlyphStringProtocol
conformance. UseGlyphString
as a strong reference or owner of aPangoGlyphString
instance.Declaration
Swift
open class GlyphString : GlyphStringProtocol
-
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
See moreGlyphVisAttr
type acts as an owner of an underlyingPangoGlyphVisAttr
instance. It provides the methods that can operate on this data type throughGlyphVisAttrProtocol
conformance. UseGlyphVisAttr
as a strong reference or owner of aPangoGlyphVisAttr
instance.Declaration
Swift
open class GlyphVisAttr : GlyphVisAttrProtocol
-
The
PangoItem
structure stores information about a segment of text.You typically obtain
PangoItems
by itemizing a piece of text with [funcitemize
].The
See moreItem
type acts as an owner of an underlyingPangoItem
instance. It provides the methods that can operate on this data type throughItemProtocol
conformance. UseItem
as a strong reference or owner of aPangoItem
instance.Declaration
Swift
open class Item : ItemProtocol
-
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 aPangoContext
, 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:
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
See moreLayout
type acts as a reference-counted owner of an underlyingPangoLayout
instance. It provides the methods that can operate on this data type throughLayoutProtocol
conformance. UseLayout
as a strong reference or owner of aPangoLayout
instance.Declaration
Swift
open class Layout : GLibObject.Object, LayoutProtocol
-
The
PangoLanguage
structure is used to represent a language.PangoLanguage
pointers can be efficiently copied and compared with each other.The
See moreLanguage
type acts as an owner of an underlyingPangoLanguage
instance. It provides the methods that can operate on this data type throughLanguageProtocol
conformance. UseLanguage
as a strong reference or owner of aPangoLanguage
instance.Declaration
Swift
open class Language : LanguageProtocol
-
A
PangoLayoutIter
can be used to iterate over the visual extents of aPangoLayout
.To obtain a
PangoLayoutIter
, use [methodPango.Layout.get_iter
].The
PangoLayoutIter
structure is opaque, and has no user-visible fields.The
See moreLayoutIter
type acts as an owner of an underlyingPangoLayoutIter
instance. It provides the methods that can operate on this data type throughLayoutIterProtocol
conformance. UseLayoutIter
as a strong reference or owner of aPangoLayoutIter
instance.Declaration
Swift
open class LayoutIter : LayoutIterProtocol
-
A
PangoLayoutLine
represents one of the lines resulting from laying out a paragraph viaPangoLayout
.PangoLayoutLine
structures are obtained by calling [methodPango.Layout.get_line
] and are only valid until the text, attributes, or settings of the parentPangoLayout
are modified.The
See moreLayoutLine
type acts as a reference-counted owner of an underlyingPangoLayoutLine
instance. It provides the methods that can operate on this data type throughLayoutLineProtocol
conformance. UseLayoutLine
as a strong reference or owner of aPangoLayoutLine
instance.Declaration
Swift
open class LayoutLine : LayoutLineProtocol
-
The
PangoLogAttr
structure stores information about the attributes of a single character.The
See moreLogAttr
type acts as an owner of an underlyingPangoLogAttr
instance. It provides the methods that can operate on this data type throughLogAttrProtocol
conformance. UseLogAttr
as a strong reference or owner of aPangoLogAttr
instance.Declaration
Swift
open class LogAttr : LogAttrProtocol
-
A
PangoMatrix
specifies a transformation between user-space and device coordinates.The transformation is given by
x_device = x_user * matrix->xx + y_user * matrix->xy + matrix->x0; y_device = x_user * matrix->yx + y_user * matrix->yy + matrix->y0;
The
See moreMatrix
type acts as an owner of an underlyingPangoMatrix
instance. It provides the methods that can operate on this data type throughMatrixProtocol
conformance. UseMatrix
as a strong reference or owner of aPangoMatrix
instance.Declaration
Swift
open class Matrix : MatrixProtocol
-
PangoRenderer
is a base class for objects that can render text provided asPangoGlyphString
orPangoLayout
.By subclassing
PangoRenderer
and overriding operations such asdraw_glyphs
anddraw_rectangle
, renderers for particular font backends and destinations can be created.The
See moreRenderer
type acts as a reference-counted owner of an underlyingPangoRenderer
instance. It provides the methods that can operate on this data type throughRendererProtocol
conformance. UseRenderer
as a strong reference or owner of aPangoRenderer
instance.Declaration
Swift
open class Renderer : GLibObject.Object, RendererProtocol
-
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
See moreRectangle
type acts as an owner of an underlyingPangoRectangle
instance. It provides the methods that can operate on this data type throughRectangleProtocol
conformance. UseRectangle
as a strong reference or owner of aPangoRectangle
instance.Declaration
Swift
open class Rectangle : RectangleProtocol
-
A
PangoScriptIter
is used to iterate through a string and identify ranges in different scripts.The
See moreScriptIter
type acts as an owner of an underlyingPangoScriptIter
instance. It provides the methods that can operate on this data type throughScriptIterProtocol
conformance. UseScriptIter
as a strong reference or owner of aPangoScriptIter
instance.Declaration
Swift
open class ScriptIter : ScriptIterProtocol
-
A
PangoTabArray
contains an array of tab stops.PangoTabArray
can be used to set tab stops in aPangoLayout
. Each tab stop has an alignment, a position, and optionally a character to use as decimal point.The
See moreTabArray
type acts as an owner of an underlyingPangoTabArray
instance. It provides the methods that can operate on this data type throughTabArrayProtocol
conformance. UseTabArray
as a strong reference or owner of aPangoTabArray
instance.Declaration
Swift
open class TabArray : TabArrayProtocol