Portability | portable (depends on GHC) |
---|---|
Stability | provisional |
Maintainer | gtk2hs-users@lists.sourceforge.net |
Pango specific functions to for redering with Cairo.
Cairo is a graphics library that supports vector graphics and image compositing that can be used with Pango. The functions in this module provide ways of rendering text in Cairo using Pango.
- cairoFontMapGetDefault :: IO FontMap
- cairoFontMapSetResolution :: FontMap -> Double -> IO ()
- cairoFontMapGetResolution :: FontMap -> IO Double
- cairoCreateContext :: Maybe FontMap -> IO PangoContext
- cairoContextSetResolution :: PangoContext -> Double -> IO ()
- cairoContextGetResolution :: PangoContext -> IO Double
- cairoContextSetFontOptions :: PangoContext -> FontOptions -> IO ()
- cairoContextGetFontOptions :: PangoContext -> IO FontOptions
- setSourceColor :: Color -> Render ()
- updateContext :: PangoContext -> Render ()
- createLayout :: String -> Render PangoLayout
- updateLayout :: PangoLayout -> Render ()
- showGlyphString :: GlyphItem -> Render ()
- showLayoutLine :: LayoutLine -> Render ()
- showLayout :: PangoLayout -> Render ()
- glyphStringPath :: GlyphItem -> Render ()
- layoutLinePath :: LayoutLine -> Render ()
- layoutPath :: PangoLayout -> Render ()
Global Cairo settings.
cairoFontMapGetDefault :: IO FontMapSource
Retrieve the default Graphics.Rendering.Pango.FontMap
that contains a
list of available fonts.
- One purpose of creating an explicit
Graphics.Rendering.Pango.Font.FontMap
is to set a different scaling factor between font sizes (in points, pt) and Cairo units (in pixels). The default is 96dpi (dots per inch) which corresponds to an average screen as output medium. A 10pt font will therefore scale to10pt * (1/72 pt/inch) * (96 pixel/inch) = 13.3 pixel
.
cairoFontMapSetResolution :: FontMap -> Double -> IO ()Source
Set the scaling factor between font size and Cairo units.
- Value is in dots per inch (dpi). See
cairoFontMapGetDefault
.
cairoFontMapGetResolution :: FontMap -> IO DoubleSource
Ask for the scaling factor between font size and Cairo units.
- Value is in dots per inch (dpi). See
cairoFontMapGetDefault
.
cairoCreateContext :: Maybe FontMap -> IO PangoContextSource
Create a PangoContext
.
- If no
FontMap
is specified, it uses the defaultFontMap
that has a scaling factor of 96 dpi. SeecairoFontMapGetDefault
.
cairoContextSetResolution :: PangoContext -> Double -> IO ()Source
Set the scaling factor of the PangoContext
.
- Supplying zero or a negative value will result in the resolution value
of the underlying
FontMap
to be used. See alsocairoFontMapGetDefault
.
cairoContextGetResolution :: PangoContext -> IO DoubleSource
Ask for the scaling factor of the PangoContext
.
- A negative value will be returned if no resolution has been set.
See
cairoContextSetResolution
.
cairoContextSetFontOptions :: PangoContext -> FontOptions -> IO ()Source
Set Cairo font options.
- Apply the given font options to the context. Values set through this
functions override those that are set by
updateContext
.
cairoContextGetFontOptions :: PangoContext -> IO FontOptionsSource
Retrieve Cairo font options.
Functions for the Render
monad.
setSourceColor :: Color -> Render ()Source
updateContext :: PangoContext -> Render ()Source
Update a PangoContext
with respect to changes in a Render
environment.
- The
PangoContext
must have been created withcairoCreateContext
. AnyPangoLayout
s that have been previously created with this context have to be update usingGraphics.Rendering.Pango.Layout.layoutContextChanged
.
createLayout :: String -> Render PangoLayoutSource
Create a PangoLayout
within a Render
context.
- This is a convenience function that creates a new
PangoContext
within thisRender
context and creates a newPangoLayout
. If the transformation or target surface of theRender
context change,updateLayout
has to be called on this layout.
updateLayout :: PangoLayout -> Render ()Source
Propagate changed to the Render
context to a PangoLayout
.
- This is a convenience function that calls
updateContext
on the (private)PangoContext
of the given layout to propagate changes from theRender
context to thePangoContext
and then callsGraphics.Rendering.Pango.Layout.layoutContextChanged
on the layout. This function is necessary forcreateLayout
since a privatePangoContext
is created that is not visible to the user.
showGlyphString :: GlyphItem -> Render ()Source
Draw a glyph string.
- The origin of the glyphs (the left edge of the baseline) will be drawn at the current point of the cairo context.
showLayoutLine :: LayoutLine -> Render ()Source
Draw a LayoutLine
.
- The origin of the glyphs (the left edge of the baseline) will be drawn at the current point of the cairo context.
showLayout :: PangoLayout -> Render ()Source
Draw a PangoLayout
.
- The top-left corner of the
PangoLayout
will be drawn at the current point of the cairo context.
glyphStringPath :: GlyphItem -> Render ()Source
Add the extent of a glyph string to the current path.
- The origin of the glyphs (the left edge of the line) will be at the current point of the cairo context.
layoutLinePath :: LayoutLine -> Render ()Source
Add the extent of a layout line to the current path.
- The origin of the glyphs (the left edge of the line) will be at the current point of the cairo context.
layoutPath :: PangoLayout -> Render ()Source
Add the layout to the current path.
- Adds the top-left corner of the text to the current path. Afterwards,
the path position is at the bottom-right corner of the
PangoLayout
.