pangocairo.CairoContext
Prev | The pangocairo Class Reference | Next

## pangocairo.CairoContext

pangocairo.CairoContext — object providing support for using Cairo (new in PyGTK 2.8)

## Synopsis

    class pangocairo.CairoContext(cairo.Context):
        pangocairo.CairoContext(cr)
        def update_context(context)
        def create_layout()
        def update_layout(layout)
        def show_glyph_string(font, glyphs)
        def show_layout_line(line)
        def show_layout(layout)
        def glyph_string_path(font, glyphs)
        def layout_line_path(line)
        def layout_path(layout)

## Ancestry

    +-- cairo.Context
      +-- pangocairo.CairoContext

## Description

Cairo is a graphics library that supports vector graphics and image compositing that can be used with PyGTK. Since 2.8, GTK+ and Pango do most of their drawing using Cairo. The Cairo drawing model and primitives are similar to PostScript which uses an imaging model of painting on a two dimensional surface. There is a Python module that wraps the Cairo API that is used by PyGTK via subclassing of the cairo.Context class by the `pangocairo.CairoContext` class. The cairo.Context class provides most of the drawing primitives used for drawing on Cairo surfaces.

PyGTK (and GTK+ and GDK) does not wrap the Cairo API, instead `gtk.gdk.CairoContext` objects can be used to draw on `gtk.gdk.Drawable` objects. A `gtk.gdk.CairoContext` is created using the `gtk.gdk.Drawable.cairo_create`() method. See the `gtk.gdk.CairoContext` and Python cairo module documentation for additional methods.

## Constructor

        pangocairo.CairoContext(cr)

`cr` : | a `cairo.Context`
Returns : | a new `pangocairo.CairoContext`.

Creates a new `pangocairo.CairoContext`

## Methods

### pangocairo.CairoContext.update_context

        def update_context(context)

`context` : | a `pango.Context` created by the `pangocairo.CairoFontMap.create_context`() method

### Note

This method is available in PyGTK 2.8 and above.

The `update_context`() method updates a `pango.Context` previously created for use with Cairo to match the current transformation and target surface of a Cairo context. If any layouts have been created for the context, it's necessary to call the `pango.Layout.context_changed`() method on those layouts.

### pangocairo.CairoContext.create_layout

        def create_layout()

Returns : | a new `pango.Layout` object.

### Note

This method is available in PyGTK 2.8 and above.

The `create_layout`() method creates a `pango.Layout` object set up to match the current transformation and target surface of the Cairo context. This layout can then be used for text measurement with methods like `pango.Layout.get_size`() or for drawing with methods like `show_layout`(). If you change the transformation or target surface for the context, you need to call the `update_layout`() method.

This method is the most convenient way to use Cairo with Pango, however it is slightly inefficient since it creates a separate `pango.Context` object for each layout. This might be of concern in an application laying out large amounts of text.

### pangocairo.CairoContext.update_layout

        def update_layout(layout)

`layout` : | a `pango.Layout` created by the `create_layout`() method

### Note

This method is available in PyGTK 2.8 and above.

The `update_layout`() method updates the private `pango.Context` of the `pango.Layout` (specified by `layout`) that was created with the `create_layout`() method to match the current transformation and target surface of a Cairo context.

### pangocairo.CairoContext.show_glyph_string

        def show_glyph_string(font, glyphs)

`font` : | a `pango.Font`
`glyphs` : | a `pango.GlyphString`

### Note

This method is available in PyGTK 2.8 and above.

The `show_glyph_string`() method draws the `pango.GlyphString` specified by `glyphs` in the cairo context using the `pango.Font` specified by `font`. The origin of the glyphs (the left edge of the baseline) will be drawn at the current point of the cairo context.

### pangocairo.CairoContext.show_layout_line

        def show_layout_line(line)

`line` : | a `pango.LayoutLine`

### Note

This method is available in PyGTK 2.8 and above.

The `show_layout_line`() method draws the `pango.LayoutLine` specified by `line` in the cairo context. The origin of the glyphs (the left edge of the line) will be drawn at the current point of the cairo context.

### pangocairo.CairoContext.show_layout

        def show_layout(layout)

`layout` : | a `pango.Layout`

### Note

This method is available in PyGTK 2.8 and above.

The `show_layout`() method draws the `pango.Layout` specified by `layout` in the cairo context. The top-left corner of the `pango.Layout` will be drawn at the current point of the cairo context.

### pangocairo.CairoContext.glyph_string_path

        def glyph_string_path(font, glyphs)

`font` : | a `pango.Font`
`glyphs` : | a `pango.GlyphString`

### Note

This method is available in PyGTK 2.8 and above.

The `glyph_string_path`() method adds the `pango.GlyphString` specified by `glyphs` to the current path in the cairo context using the `pango.Font` specified by font. The origin of the added glyphs (the left edge of the baseline) will be at the current point of the cairo context.

### pangocairo.CairoContext.layout_line_path

        def layout_line_path(line)

`line` : | a `pango.LayoutLine`

### Note

This method is available in PyGTK 2.8 and above.

The `layout_line_path`() method adds the text in the `pango.LayoutLine` specified by `line` to the current path in the specified cairo context. The origin of the glyphs (the left edge of the line) will be at the current point of the cairo context.

### pangocairo.CairoContext.layout_path

        def layout_path(layout)

`layout` : | a `pango.Layout`

### Note

This method is available in PyGTK 2.8 and above.

The `layout_path`() method adds the text in the `pango.Layout` specified by `layout` to the current path in the specified cairo context. The top-left corner of the `pango.Layout` will be at the current point of the cairo context.

Prev | Up | Next
The pangocairo Class Reference | Home | pangocairo.CairoFontMap