| Portability | portable (depends on GHC) |
|---|---|
| Stability | provisional |
| Maintainer | gtk2hs-users@lists.sourceforge.net |
Graphics.Rendering.Pango.Cairo
Description
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 FontMap
Retrieve the default Graphics.Rendering.Pango.FontMap that contains a
list of available fonts.
- One purpose of creating an explicit
Graphics.Rendering.Pango.Font.FontMapis 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 ()
Set the scaling factor between font size and Cairo units.
- Value is in dots per inch (dpi). See
cairoFontMapGetDefault.
cairoFontMapGetResolution :: FontMap -> IO Double
Ask for the scaling factor between font size and Cairo units.
- Value is in dots per inch (dpi). See
cairoFontMapGetDefault.
cairoCreateContext :: Maybe FontMap -> IO PangoContext
Create a PangoContext.
- If no
FontMapis specified, it uses the defaultFontMapthat has a scaling factor of 96 dpi. SeecairoFontMapGetDefault.
cairoContextSetResolution :: PangoContext -> Double -> IO ()
Set the scaling factor of the PangoContext.
- Supplying zero or a negative value will result in the resolution value
of the underlying
FontMapto be used. See alsocairoFontMapGetDefault.
cairoContextGetResolution :: PangoContext -> IO Double
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 ()
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 FontOptions
Retrieve Cairo font options.
Functions for the Render monad.
setSourceColor :: Color -> Render ()
updateContext :: PangoContext -> Render ()
Update a PangoContext with respect to changes in a Render
environment.
- The
PangoContextmust have been created withcairoCreateContext. AnyPangoLayouts that have been previously created with this context have to be update usingGraphics.Rendering.Pango.Layout.layoutContextChanged.
createLayout :: String -> Render PangoLayout
Create a PangoLayout within a Render context.
- This is a convenience function that creates a new
PangoContextwithin thisRendercontext and creates a newPangoLayout. If the transformation or target surface of theRendercontext change,updateLayouthas to be called on this layout.
updateLayout :: PangoLayout -> Render ()
Propagate changed to the Render context to a PangoLayout.
- This is a convenience function that calls
updateContexton the (private)PangoContextof the given layout to propagate changes from theRendercontext to thePangoContextand then callsGraphics.Rendering.Pango.Layout.layoutContextChangedon the layout. This function is necessary forcreateLayoutsince a privatePangoContextis created that is not visible to the user.
showGlyphString :: GlyphItem -> Render ()
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 ()
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 ()
Draw a PangoLayout.
- The top-left corner of the
PangoLayoutwill be drawn at the current point of the cairo context.
glyphStringPath :: GlyphItem -> Render ()
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 ()
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 ()
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.