gi-pango-1.0.23: Pango bindings

Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte
License | LGPL-2.1
Maintainer | Iñaki García Etxebarria
Safe Haskell | None
Language | Haskell2010

GI.Pango.Objects.Font

Contents

- Exported types
- Methods
  - Overloaded methods
  - describe
  - describeWithAbsoluteSize
  - descriptionsFree
  - findShaper
  - getCoverage
  - getFace
  - getFeatures
  - getFontMap
  - getGlyphExtents
  - getMetrics
  - hasChar

Description

The `Font` structure is used to represent a font in a rendering-system-independent matter. To create an implementation of a `Font`, the rendering-system specific code should allocate a larger structure that contains a nested `Font`, fill in the <structfield>klass</structfield> member of the nested `Font` with a pointer to a appropriate `FontClass`, then call `pango_font_init()` on the structure.

The `Font` structure contains one member which the implementation fills in.

Synopsis

- newtype Font = Font (ManagedPtr Font)
- class (GObject o, IsDescendantOf Font o) => IsFont o
- toFont :: (MonadIO m, IsFont o) => o -> m Font
- fontDescribe :: (HasCallStack, MonadIO m, IsFont a) => a -> m FontDescription
- fontDescribeWithAbsoluteSize :: (HasCallStack, MonadIO m, IsFont a) => a -> m FontDescription
- fontDescriptionsFree :: (HasCallStack, MonadIO m) => Maybe [FontDescription] -> m ()
- fontFindShaper :: (HasCallStack, MonadIO m, IsFont a) => a -> Language -> Word32 -> m EngineShape
- fontGetCoverage :: (HasCallStack, MonadIO m, IsFont a) => a -> Language -> m Coverage
- fontGetFace :: (HasCallStack, MonadIO m, IsFont a) => a -> m FontFace
- fontGetFeatures :: (HasCallStack, MonadIO m, IsFont a) => a -> [FeatureT] -> Word32 -> m ([FeatureT], Word32)
- fontGetFontMap :: (HasCallStack, MonadIO m, IsFont a) => a -> m (Maybe FontMap)
- fontGetGlyphExtents :: (HasCallStack, MonadIO m, IsFont a) => a -> Word32 -> m (Rectangle, Rectangle)
- fontGetMetrics :: (HasCallStack, MonadIO m, IsFont a) => a -> Maybe Language -> m FontMetrics
- fontHasChar :: (HasCallStack, MonadIO m, IsFont a) => a -> Char -> m Bool

# Exported types

newtype Font Source #

Memory-managed wrapper type.

Constructors

Font (ManagedPtr Font) |

#### Instances

Instances details

Eq Font Source # |
Instance details Defined in GI.Pango.Objects.Font Methods (==) :: Font -> Font -> Bool # (/=) :: Font -> Font -> Bool #
GObject Font Source # |
Instance details Defined in GI.Pango.Objects.Font
TypedObject Font Source # |
Instance details Defined in GI.Pango.Objects.Font Methods glibType :: IO GType Source #
ManagedPtrNewtype Font Source # |
Instance details Defined in GI.Pango.Objects.Font Methods toManagedPtr :: Font -> ManagedPtr Font Source #
IsGValue Font Source # | Convert `Font` to and from `GValue` with `toGValue` and `fromGValue`.
Instance details Defined in GI.Pango.Objects.Font Methods toGValue :: Font -> IO GValue Source # fromGValue :: GValue -> IO Font Source #
HasParentTypes Font Source # |
Instance details Defined in GI.Pango.Objects.Font
type ParentTypes Font Source # |
Instance details Defined in GI.Pango.Objects.Font type ParentTypes Font = '[Object]

class (GObject o, IsDescendantOf Font o) => IsFont o Source #

Type class for types which can be safely cast to `Font`, for instance with `toFont`.

#### Instances

Instances details

(GObject o, IsDescendantOf Font o) => IsFont o Source # |
Instance details Defined in GI.Pango.Objects.Font

toFont :: (MonadIO m, IsFont o) => o -> m Font Source #

Cast to `Font`, for types for which this is known to be safe. For general casts, use `castTo`.

# Methods

## Overloaded methods

## describe

fontDescribe Source #

Arguments

:: (HasCallStack, MonadIO m, IsFont a) |
=> a | `font`: a `Font`
-> m FontDescription | Returns: a newly-allocated `FontDescription` object.

Returns a description of the font, with font size set in points. Use `fontDescribeWithAbsoluteSize` if you want the font size in device units.

## describeWithAbsoluteSize

fontDescribeWithAbsoluteSize Source #

Arguments

:: (HasCallStack, MonadIO m, IsFont a) |
=> a | `font`: a `Font`
-> m FontDescription | Returns: a newly-allocated `FontDescription` object.

Returns a description of the font, with absolute font size set (in device units). Use `fontDescribe` if you want the font size in points.

Since: 1.14

## descriptionsFree

fontDescriptionsFree Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Maybe [FontDescription] | `descs`: a pointer to an array of `FontDescription`, may be `Nothing`
-> m () |

Frees an array of font descriptions.

## findShaper

fontFindShaper Source #

Arguments

:: (HasCallStack, MonadIO m, IsFont a) |
=> a | `font`: a `Font`
-> Language | `language`: the language tag
-> Word32 | `ch`: a Unicode character.
-> m EngineShape | Returns: the best matching shaper.

Deprecated: Shape engines are no longer used

Finds the best matching shaper for a font for a particular language tag and character point.

## getCoverage

fontGetCoverage Source #

Arguments

:: (HasCallStack, MonadIO m, IsFont a) |
=> a | `font`: a `Font`
-> Language | `language`: the language tag
-> m Coverage | Returns: a newly-allocated `Coverage` object.

Computes the coverage map for a given font and language tag.

## getFace

fontGetFace Source #

Arguments

:: (HasCallStack, MonadIO m, IsFont a) |
=> a | `font`: a `Font`
-> m FontFace | Returns: the `FontFace`

Gets the `FontFace` to which `font` belongs.

Since: 1.46

## getFeatures

fontGetFeatures Source #

Arguments

:: (HasCallStack, MonadIO m, IsFont a) |
=> a | `font`: a `Font`
-> [FeatureT] | `features`: Array to features in
-> Word32 | `numFeatures`: the number of used items in `features`
-> m ([FeatureT], Word32) |

Obtain the OpenType features that are provided by the font. These are passed to the rendering system, together with features that have been explicitly set via attributes.

Note that this does not include OpenType features which the rendering system enables by default.

Since: 1.44

## getFontMap

fontGetFontMap Source #

Arguments

:: (HasCallStack, MonadIO m, IsFont a) |
=> a | `font`: a `Font`, or `Nothing`
-> m (Maybe FontMap) | Returns: the `FontMap` for the font, or `Nothing` if `font` is `Nothing`.

Gets the font map for which the font was created.

Note that the font maintains a <firstterm>weak</firstterm> reference to the font map, so if all references to font map are dropped, the font map will be finalized even if there are fonts created with the font map that are still alive. In that case this function will return `Nothing`. It is the responsibility of the user to ensure that the font map is kept alive. In most uses this is not an issue as a `Context` holds a reference to the font map.

Since: 1.10

## getGlyphExtents

fontGetGlyphExtents Source #

Arguments

:: (HasCallStack, MonadIO m, IsFont a) |
=> a | `font`: a `Font`
-> Word32 | `glyph`: the glyph index
-> m (Rectangle, Rectangle) |

Gets the logical and ink extents of a glyph within a font. The coordinate system for each rectangle has its origin at the base line and horizontal origin of the character with increasing coordinates extending to the right and down. The macros `PANGO_ASCENT()`, `PANGO_DESCENT()`, `PANGO_LBEARING()`, and `PANGO_RBEARING()` can be used to convert from the extents rectangle to more traditional font metrics. The units of the rectangles are in 1/PANGO_SCALE of a device unit.

If `font` is `Nothing`, this function gracefully sets some sane values in the output variables and returns.

## getMetrics

fontGetMetrics Source #

Arguments

:: (HasCallStack, MonadIO m, IsFont a) |
=> a | `font`: a `Font`
-> Maybe Language | `language`: language tag used to determine which script to get the metrics for, or `Nothing` to indicate to get the metrics for the entire font.
-> m FontMetrics | Returns: a `FontMetrics` object. The caller must call `fontMetricsUnref` when finished using the object.

Gets overall metric information for a font. 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.

If `font` is `Nothing`, this function gracefully sets some sane values in the output variables and returns.

## hasChar

fontHasChar Source #

Arguments

:: (HasCallStack, MonadIO m, IsFont a) |
=> a | `font`: a `Font`
-> Char | `wc`: a Unicode character
-> m Bool |

Returns whether the font provides a glyph for this character.

Returns `True` if `font` can render `wc`

Since: 1.44