Maintainer | [email protected] |
---|---|
Stability | provisional |
Portability | portable (depends on GHC) |
Safe Haskell | None |
Language | Haskell98 |
Graphics.Rendering.Pango.Font
Contents
Description
Fonts. The selection of an appropriate font to render text becomes a substantial task in the presence of Unicode where a single font does not cover the whole range of possible characters. Pango provides several concepts to find appropriate fonts and to query information about them:
FontDescription
: Font descriptions provide a way to query and state requirements on fonts. This data structure has several fields describing different characteristics of a font. Each of these fields can be set of left unspecified.FontMap
: A font map represents the set of fonts available for a particular rendering system. In particular this map defines the relation between font size and pixel size in terms of the output medium.FontFamily
: A font family represents a set of fonts that have related faces, that is, their faces share a common design, but differ in slant, weight, width and other aspects.FontFace
: A face is a specific font where all characteristics are fixed except for the size.Font
: A font in the underlying rendering system.FontMetrics
: Information about the font that will be used to render a specificContext
orPangoItem
.
Synopsis
- data FontDescription
- fontDescriptionNew :: IO FontDescription
- fontDescriptionCopy :: FontDescription -> IO FontDescription
- fontDescriptionSetFamily :: GlibString string => FontDescription -> string -> IO ()
- fontDescriptionGetFamily :: GlibString string => FontDescription -> IO (Maybe string)
- fontDescriptionSetStyle :: FontDescription -> FontStyle -> IO ()
- fontDescriptionGetStyle :: FontDescription -> IO (Maybe FontStyle)
- fontDescriptionSetVariant :: FontDescription -> Variant -> IO ()
- fontDescriptionGetVariant :: FontDescription -> IO (Maybe Variant)
- fontDescriptionSetWeight :: FontDescription -> Weight -> IO ()
- fontDescriptionGetWeight :: FontDescription -> IO (Maybe Weight)
- fontDescriptionSetStretch :: FontDescription -> Stretch -> IO ()
- fontDescriptionGetStretch :: FontDescription -> IO (Maybe Stretch)
- fontDescriptionSetSize :: FontDescription -> Double -> IO ()
- fontDescriptionGetSize :: FontDescription -> IO (Maybe Double)
- data FontMask
- fontDescriptionUnsetFields :: FontDescription -> [FontMask] -> IO ()
- fontDescriptionMerge :: FontDescription -> FontDescription -> Bool -> IO ()
- fontDescriptionBetterMatch :: FontDescription -> FontDescription -> FontDescription -> Bool
- fontDescriptionFromString :: GlibString string => string -> IO FontDescription
- fontDescriptionToString :: GlibString string => FontDescription -> IO string
- data FontMap
- class GObjectClass o => FontMapClass o
- pangoFontMapListFamilies :: FontMap -> IO [FontFamily]
- data FontFamily
- class GObjectClass o => FontFamilyClass o
- pangoFontFamilyIsMonospace :: FontFamily -> Bool
- pangoFontFamilyListFaces :: FontFamily -> IO [FontFace]
- data FontFace
- class GObjectClass o => FontFaceClass o
- pangoFontFaceListSizes :: FontFace -> IO (Maybe [Double])
- pangoFontFaceDescribe :: FontFace -> IO FontDescription
- data Font
- class GObjectClass o => FontClass o
Documentation
data FontDescription Source #
A possibly partial description of font(s).
Instances
Show FontDescription Source # | |
Defined in Graphics.Rendering.Pango.BasicTypes Methods showsPrec :: Int -> FontDescription -> ShowS # show :: FontDescription -> String # showList :: [FontDescription] -> ShowS # |
fontDescriptionNew :: IO FontDescription Source #
Create a new font description.
- All field are unset.
fontDescriptionCopy :: FontDescription -> IO FontDescription Source #
Make a deep copy of a font description.
fontDescriptionSetFamily :: GlibString string => FontDescription -> string -> IO () Source #
Set the font famliy.
- A font family is a name designating the design of the font (e.g. Sans or Times) without the variant.
- In some contexts a comma separated list of font families can be used.
fontDescriptionGetFamily :: GlibString string => FontDescription -> IO (Maybe string) Source #
Get the font family.
Nothing
is returned if the font family is not set.
fontDescriptionSetStyle :: FontDescription -> FontStyle -> IO () Source #
Set the style field.
- Most fonts will have either a
StyleItalic
orStyleOblique
but rarely both.
fontDescriptionGetStyle :: FontDescription -> IO (Maybe FontStyle) Source #
Get the style field.
fontDescriptionSetVariant :: FontDescription -> Variant -> IO () Source #
Set the variant field.
fontDescriptionGetVariant :: FontDescription -> IO (Maybe Variant) Source #
Get the variant field.
fontDescriptionSetWeight :: FontDescription -> Weight -> IO () Source #
Set the weight field.
fontDescriptionGetWeight :: FontDescription -> IO (Maybe Weight) Source #
Get the weight field.
fontDescriptionSetStretch :: FontDescription -> Stretch -> IO () Source #
Set the stretch field.
fontDescriptionGetStretch :: FontDescription -> IO (Maybe Stretch) Source #
Get the stretch field.
fontDescriptionSetSize :: FontDescription -> Double -> IO () Source #
Set the size field.
- The given size is in points (pts). One point is 1/72 inch.
fontDescriptionGetSize :: FontDescription -> IO (Maybe Double) Source #
Get the size field.
Flags denoting which fields in a font description are set.
Constructors
PangoFontMaskFamily | |
PangoFontMaskStyle | |
PangoFontMaskVariant | |
PangoFontMaskWeight | |
PangoFontMaskStretch | |
PangoFontMaskSize | |
PangoFontMaskGravity | |
PangoFontMaskVariations |
Instances
Bounded FontMask Source # | |
Enum FontMask Source # | |
Defined in Graphics.Rendering.Pango.Description | |
Flags FontMask Source # | |
Defined in Graphics.Rendering.Pango.Description |
fontDescriptionUnsetFields :: FontDescription -> [FontMask] -> IO () Source #
Reset fields in a font description.
fontDescriptionMerge :: FontDescription -> FontDescription -> Bool -> IO () Source #
Merge two font descriptions.
- Copy fields from the second description to the first. If the boolean parameter is set, existing fields in the first description will be replaced.
fontDescriptionBetterMatch :: FontDescription -> FontDescription -> FontDescription -> Bool Source #
Determine which of two descriptions matches a given description better.
- Returns
True
if the last description is a better match to the first argument than the middle one. - Approximate matching is done on weight and style. If the other
attributes do not match, the function returns
False
.
fontDescriptionFromString :: GlibString string => string -> IO FontDescription Source #
Create a font description from a string.
- The given argument must have the form
[FAMILY-LIST] [STYLE-OPTIONS] [SIZE]
whereFAMILY_LIST
is a comma separated list of font families optionally terminated by a comma,STYLE_OPTIONS
is a whitespace separated list of words where each word describes one of style, variant, weight or stretch.SIZE
is a decimal number giving the size of the font in points. If any of these fields is absent, the resultingFontDescription
will have the corresponding fields unset.
fontDescriptionToString :: GlibString string => FontDescription -> IO string Source #
Convert a font description to a string.
- Creates a string representation of a font description. See
fontDescriptionFromString
for the format of the string.
Instances
Eq FontMap Source # | |
Ord FontMap Source # | |
Defined in Graphics.Rendering.Pango.Types | |
GObjectClass FontMap Source # | |
Defined in Graphics.Rendering.Pango.Types | |
FontMapClass FontMap Source # | |
Defined in Graphics.Rendering.Pango.Types |
class GObjectClass o => FontMapClass o Source #
Instances
FontMapClass FontMap Source # | |
Defined in Graphics.Rendering.Pango.Types |
pangoFontMapListFamilies :: FontMap -> IO [FontFamily] Source #
Ask for the different font families that a particular back-end supports.
- The
FontMap
can be acquired by callingcairoFontMapGetDefault
.
data FontFamily Source #
Instances
Show FontFamily Source # | |
Defined in Graphics.Rendering.Pango.Font Methods showsPrec :: Int -> FontFamily -> ShowS # show :: FontFamily -> String # showList :: [FontFamily] -> ShowS # | |
Eq FontFamily Source # | |
Defined in Graphics.Rendering.Pango.Types | |
Ord FontFamily Source # | |
Defined in Graphics.Rendering.Pango.Types Methods compare :: FontFamily -> FontFamily -> Ordering # (<) :: FontFamily -> FontFamily -> Bool # (<=) :: FontFamily -> FontFamily -> Bool # (>) :: FontFamily -> FontFamily -> Bool # (>=) :: FontFamily -> FontFamily -> Bool # max :: FontFamily -> FontFamily -> FontFamily # min :: FontFamily -> FontFamily -> FontFamily # | |
GObjectClass FontFamily Source # | |
Defined in Graphics.Rendering.Pango.Types | |
FontFamilyClass FontFamily Source # | |
Defined in Graphics.Rendering.Pango.Types |
class GObjectClass o => FontFamilyClass o Source #
Instances
pangoFontFamilyIsMonospace :: FontFamily -> Bool Source #
Ask if the given family contains monospace fonts.
- A monospace font is a font designed for text display where the characters form a regular grid. For Western languages this would mean that the advance width of all characters are the same, but this categorization also includes Asian fonts which include double-width characters: characters that occupy two grid cells.
- The best way to find out the grid-cell size is to query the members
of the according
FontMetrics
structure.
pangoFontFamilyListFaces :: FontFamily -> IO [FontFace] Source #
Ask for the faces contained in a particular family.
- Asks for all font faces in the given family. The faces in a family share a common design, but differ in slant, weight, width and other aspects. For example, the font family Sans contains several fonts such as Helvetica and Arial.
Instances
Show FontFace Source # | |
Eq FontFace Source # | |
Ord FontFace Source # | |
Defined in Graphics.Rendering.Pango.Types | |
GObjectClass FontFace Source # | |
Defined in Graphics.Rendering.Pango.Types | |
FontFaceClass FontFace Source # | |
Defined in Graphics.Rendering.Pango.Types |
class GObjectClass o => FontFaceClass o Source #
Instances
FontFaceClass FontFace Source # | |
Defined in Graphics.Rendering.Pango.Types |
pangoFontFaceListSizes :: FontFace -> IO (Maybe [Double]) Source #
Ask for available sizes of this font face.
- List the available sizes for a font. This is only applicable to bitmap
fonts since all other fonts can be scaled arbitrarily. For scalable
fonts, this function returns
Nothing
. The sizes returned are in ascending order, their unit is points (1/72 inch).
pangoFontFaceDescribe :: FontFace -> IO FontDescription Source #
Ask for a description of this face.
- Returns the family, style, variant, weight and stretch of a
FontFace
. The size field of the resulting font description will be unset.
class GObjectClass o => FontClass o Source #
Instances
FontClass Font Source # | |
Defined in Graphics.Rendering.Pango.Types |