|
Graphics.UI.Gtk.Cairo | Portability | portable (depends on GHC) | Stability | provisional | Maintainer | gtk2hs-users@lists.sourceforge.net |
|
|
|
|
|
Description |
Gtk specific functions to for redering with Cairo.
Cairo is a graphics library that supports vector graphics and image
compositing that can be used with Gdk.
The Cairo API is an addition to Gdk/Gtk (rather than a replacement).
Cairo rendering can be performed on any Drawable
by calling renderWithDrawable. The functions in this module provide
ways of drawing Gtk specific elements, such as Pixbufs or text
laid out with Pango.
All functions in this module are only available in Gtk 2.8 or higher.
|
|
Synopsis |
|
|
|
|
Global Cairo settings.
|
|
cairoFontMapGetDefault :: IO FontMap |
Retrieve the default FontMap that contains a
list of available fonts.
- One purpose of creating an explicit
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 to
10pt * (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 cairoFontMapNew.
|
|
cairoFontMapGetResolution :: FontMap -> IO Double |
Ask for the scaling factor between font size and Cairo units.
- Value is in dots per inch (dpi). See cairoFontMapNew.
|
|
cairoCreateContext :: Maybe FontMap -> IO PangoContext |
Create a PangoContext.
- If no FontMap is specified, it uses the default FontMap that
has a scaling factor of 96 dpi. See cairoFontMapNew.
|
|
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 FontMap to be used. See also cairoFontMapNew.
|
|
cairoContextGetResolution :: PangoContext -> IO Double |
Ask for the scaling factor of the PangoContext.
|
|
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.
|
|
Using Pixbuf functions together with Cairo
|
|
cairoImageSurfaceFromPixbuf :: Pixbuf -> IO Surface |
Treat a Pixbuf as an image
Graphics.
- The image data is shared between the two objects. Note that everytime you
use Pixbuf functions on the image, it is
necessary to tell Cairo that the image data has changed using
Graphics since it might cache certain areas of
an image.
|
|
pixbufFromImageSurface :: Surface -> IO Pixbuf |
Treat an image Surface as a
Pixbuf.
- The image data is shared between the two objects. Note that everytime you
use Pixbuf functions on the image, it is
necessary to tell Cairo that the image data has changed using
surfaceMarkDirty since it might cache certain
areas of an image. This function throws an error if the
Surface has any other format than
FormatARGB32 or
FormatRGB32 since
Pixbuf can currently only handle these two
formats.
- Requires Cairo 1.2 or higher.
|
|
Functions for the Render monad.
|
|
renderWithDrawable |
|
|
setSourceColor :: Color -> Render () |
Sets the specified Color as the source color of the Render context.
|
|
setSourcePixbuf |
:: Pixbuf | | -> Double | x
| -> Double | y
| -> Render () | | Sets the given pixbuf as the source pattern for the Cairo context. The
pattern has an extend mode of ExtendNone and is aligned so that the
origin of pixbuf is (x, y).
|
|
|
region :: Region -> Render () |
Adds the given region to the current path of the Render context.
|
|
updateContext :: PangoContext -> Render () |
Update a PangoContext with respect to changes in a Render
environment.
|
|
createLayout :: String -> Render PangoLayout |
Create a PangoLayout within a Render context.
- This is a convenience function that creates a new PangoContext
within this Render context and creates a new PangoLayout.
If the transformation or target surface of the Render context
change, updateLayout has to be called on this layout.
|
|
updateLayout :: PangoLayout -> Render () |
Propagate changed to the Render context to a PangoLayout.
|
|
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 PangoLayout will 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.
|
|
Produced by Haddock version 0.8 |