Main Page Namespaces Book

# Pango::Renderer Class Reference

Inheritance diagram for Pango::Renderer:

[legend]

List of all members.

## Detailed Description

Pango::Renderer is a base class that contains the necessary logic for rendering a Pango::Layout or Pango::LayoutLine.

By subclassing Pango::Renderer and overriding operations such as draw_glyphs and draw_rectangle, renderers for particular font backends and destinations can be created.

## Public Member Functions

void | activate ()
| Does initial setup before rendering operations on renderer.
void | deactivate ()
| Cleans up after rendering operations on renderer.
void | draw_error_underline (int x, int y, int width, int height)
| Draw a squiggly line that approximately covers the given rectangle in the style of an underline used to indicate a spelling error.
void | draw_glyph (const Glib::RefPtr<Font>& font, Glyph glyph, double x, double y)
| Draws a single glyph with coordinates in device space.
void | draw_glyphs (const Glib::RefPtr<Font>& font, const GlyphString& glyphs, int x, int y)
| Draws the glyphs in glyphs with the specified Pango::Renderer.
void | draw_layout (const Glib::RefPtr<Layout>& layout, int x, int y)
| Draws layout with the specified Pango::Renderer.
void | draw_layout_line (const Glib::RefPtr<LayoutLine>& line, int x, int y)
| Draws line with the specified Pango::Renderer.
void | draw_rectangle (RenderPart part, int x, int y, int width, int height)
| Draws an axis-aligned rectangle in user space coordinates with the specified Pango::Renderer.
void | draw_trapezoid (RenderPart part, double y1, double x11, double x21, double y2, double x12, double x22)
| Draws a trapezoid with the parallel sides aligned with the X axis using the given Pango::Renderer; coordinates are in device space.
Color | get_color (RenderPart part) const
| Gets the current rendering color for the specified part.
Glib::RefPtr<const Layout> | get_layout () const
| Gets the layout currently being rendered using renderer.
Glib::RefPtr<Layout> | get_layout ()
| Gets the layout currently being rendered using renderer.
Glib::RefPtr<const LayoutLine> | get_layout_line () const
| Gets the layout line currently being rendered using renderer.
Glib::RefPtr<LayoutLine> | get_layout_line ()
| Gets the layout line currently being rendered using renderer.
Matrix | get_matrix () const
const PangoRenderer* | gobj () const
| Provides access to the underlying C GObject.
PangoRenderer* | gobj ()
| Provides access to the underlying C GObject.
PangoRenderer* | gobj_copy ()
| Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
void | part_changed (RenderPart part)
| Informs Pango that the way that the rendering is done for part has changed in a way that would prevent multiple pieces being joined together into one drawing call.
void | set_color (RenderPart part, const Color& color)
| Sets the color for part of the rendering.
void | set_matrix (const Matrix& matrix)
| Sets the transformation matrix that will be applied when rendering.
virtual | ~Renderer ()

## Related Functions

(Note that these are not member functions.)
Glib::RefPtr<Pango::Renderer> | wrap (PangoRenderer* object, bool take_copy=false)
| A Glib::wrap() method for this object.

## Constructor & Destructor Documentation

virtual Pango::Renderer::~Renderer | ( |  | ) | `[virtual]`

## Member Function Documentation

void Pango::Renderer::activate | ( |  | ) |

Does initial setup before rendering operations on renderer.

deactivate() should be called when done drawing. Calls such as draw_layout() automatically activate the layout before drawing on it. Calls to activate() and deactivate() can be nested and the renderer will only be initialized and deinitialized once.

Since: 1.8

void Pango::Renderer::deactivate | ( |  | ) |

Cleans up after rendering operations on renderer.

See docs for activate().

Since: 1.8

void Pango::Renderer::draw_error_underline | ( | int | x,
|  | int | y,
|  | int | width,
|  | int | height |
| ) |  |  |

Draw a squiggly line that approximately covers the given rectangle in the style of an underline used to indicate a spelling error.

(The width of the underline is rounded to an integer number of up/down segments and the resulting rectangle is centered in the original rectangle)

This should be called while renderer is already active. Use activate() to activate a renderer.

Since: 1.8

Parameters:

  | x | X coordinate of underline, in Pango units in user coordinate system.
  | y | Y coordinate of underline, in Pango units in user coordinate system.
  | width | Width of underline, in Pango units in user coordinate system.
  | height | Height of underline, in Pango units in user coordinate system.

void Pango::Renderer::draw_glyph | ( | const Glib::RefPtr<Font>& | font,
|  | Glyph | glyph,
|  | double | x,
|  | double | y |
| ) |  |  |

Draws a single glyph with coordinates in device space.

Since: 1.8

Parameters:

  | font | A Pango::Font.
  | glyph | The glyph index of a single glyph.
  | x | X coordinate of left edge of baseline of glyph.
  | y | Y coordinate of left edge of baseline of glyph.

void Pango::Renderer::draw_glyphs | ( | const Glib::RefPtr<Font>& | font,
|  | const GlyphString& | glyphs,
|  | int | x,
|  | int | y |
| ) |  |  |

Draws the glyphs in glyphs with the specified Pango::Renderer.

Since: 1.8

Parameters:

  | font | A Pango::Font.
  | glyphs | A Pango::GlyphString.
  | x | X position of left edge of baseline, in user space coordinates in Pango units.
  | y | Y position of left edge of baseline, in user space coordinates in Pango units.

void Pango::Renderer::draw_layout | ( | const Glib::RefPtr<Layout>& | layout,
|  | int | x,
|  | int | y |
| ) |  |  |

Draws layout with the specified Pango::Renderer.

Since: 1.8

Parameters:

  | layout | A Pango::Layout.
  | x | X position of left edge of baseline, in user space coordinates in Pango units.
  | y | Y position of left edge of baseline, in user space coordinates in Pango units.

void Pango::Renderer::draw_layout_line | ( | const Glib::RefPtr<LayoutLine>& | line,
|  | int | x,
|  | int | y |
| ) |  |  |

Draws line with the specified Pango::Renderer.

Since: 1.8

Parameters:

  | line | A Pango::LayoutLine.
  | x | X position of left edge of baseline, in user space coordinates in Pango units.
  | y | Y position of left edge of baseline, in user space coordinates in Pango units.

void Pango::Renderer::draw_rectangle | ( | RenderPart | part,
|  | int | x,
|  | int | y,
|  | int | width,
|  | int | height |
| ) |  |  |

Draws an axis-aligned rectangle in user space coordinates with the specified Pango::Renderer.

This should be called while renderer is already active. Use activate() to activate a renderer.

Since: 1.8

Parameters:

  | part | Type of object this rectangle is part of.
  | x | X position at which to draw rectangle, in user space coordinates in Pango units.
  | y | Y position at which to draw rectangle, in user space coordinates in Pango units.
  | width | Width of rectangle in Pango units in user space coordinates.
  | height | Height of rectangle in Pango units in user space coordinates.

void Pango::Renderer::draw_trapezoid | ( | RenderPart | part,
|  | double | y1,
|  | double | x11,
|  | double | x21,
|  | double | y2,
|  | double | x12,
|  | double | x22 |
| ) |  |  |

Draws a trapezoid with the parallel sides aligned with the X axis using the given Pango::Renderer; coordinates are in device space.

Since: 1.8

Parameters:

  | part | Type of object this trapezoid is part of.
  | y1 | Y coordinate of top of trapezoid.
  | x11 | X coordinate of left end of top of trapezoid.
  | x21 | X coordinate of right end of top of trapezoid.
  | y2 | Y coordinate of bottom of trapezoid.
  | x12 | X coordinate of left end of bottom of trapezoid.
  | x22 | X coordinate of right end of bottom of trapezoid.

Color Pango::Renderer::get_color | ( | RenderPart | part | ) | const

Gets the current rendering color for the specified part.

Parameters:

  | part | The part to get the color for.

Returns:
  The color for the specified part, or `0` if it hasn't been set and should be inherited from the environment.

Since: 1.8.

Glib::RefPtr<const Layout> Pango::Renderer::get_layout | ( |  | ) | const

Gets the layout currently being rendered using renderer.

Calling this function only makes sense from inside a subclass's methods, like in its draw_shape<!---->() for example.

The returned layout should not be modified while still being rendered.

Returns:
  The layout, or `0` if no layout is being rendered using renderer at this time.

Since: 1.20.

Glib::RefPtr<Layout> Pango::Renderer::get_layout | ( |  | ) |

Gets the layout currently being rendered using renderer.

Calling this function only makes sense from inside a subclass's methods, like in its draw_shape<!---->() for example.

The returned layout should not be modified while still being rendered.

Returns:
  The layout, or `0` if no layout is being rendered using renderer at this time.

Since: 1.20.

Glib::RefPtr<const LayoutLine> Pango::Renderer::get_layout_line | ( |  | ) | const

Gets the layout line currently being rendered using renderer.

Calling this function only makes sense from inside a subclass's methods, like in its draw_shape<!---->() for example.

The returned layout line should not be modified while still being rendered.

Returns:
  The layout line, or `0` if no layout line is being rendered using renderer at this time.

Since: 1.20.

Glib::RefPtr<LayoutLine> Pango::Renderer::get_layout_line | ( |  | ) |

Gets the layout line currently being rendered using renderer.

Calling this function only makes sense from inside a subclass's methods, like in its draw_shape<!---->() for example.

The returned layout line should not be modified while still being rendered.

Returns:
  The layout line, or `0` if no layout line is being rendered using renderer at this time.

Since: 1.20.

Matrix Pango::Renderer::get_matrix | ( |  | ) | const

const PangoRenderer* Pango::Renderer::gobj | ( |  | ) | const`[inline]`

Provides access to the underlying C GObject.

Reimplemented from Glib::ObjectBase.

PangoRenderer* Pango::Renderer::gobj | ( |  | ) | `[inline]`

Provides access to the underlying C GObject.

Reimplemented from Glib::ObjectBase.

PangoRenderer* Pango::Renderer::gobj_copy | ( |  | ) |

Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.

void Pango::Renderer::part_changed | ( | RenderPart | part | ) |

Informs Pango that the way that the rendering is done for part has changed in a way that would prevent multiple pieces being joined together into one drawing call.

For instance, if a subclass of Pango::Renderer was to add a stipple option for drawing underlines, it needs to call

     pango_renderer_part_changed (render, PANGO_RENDER_PART_UNDERLINE);

When the stipple changes or underlines with different stipples might be joined together. Pango automatically calls this for changes to colors. (See set_color())

Since: 1.8

Parameters:

  | part | The part for which rendering has changed.

void Pango::Renderer::set_color | ( | RenderPart | part,
|  | const Color& | color |
| ) |  |  |

Sets the color for part of the rendering.

Since: 1.8

Parameters:

  | part | The part to change the color of.
  | color | The new color or `0` to unset the current color.

void Pango::Renderer::set_matrix | ( | const Matrix& | matrix | ) |

Sets the transformation matrix that will be applied when rendering.

Since: 1.8

Parameters:

  | matrix | A Pango::Matrix, or `0` to unset any existing matrix. (No matrix set is the same as setting the identity matrix.).

## Friends And Related Function Documentation

Glib::RefPtr<Pango::Renderer> wrap | ( | PangoRenderer * | object,
|  | bool | take_copy = `false` |
| ) |  |  | `[related]`

A Glib::wrap() method for this object.

Parameters:

  | object | The C instance.
  | take_copy | False if the result should take ownership of the C instance. True if it should take a new copy or ref.

Returns:
  A C++ instance that wraps this C instance.

The documentation for this class was generated from the following file:

- renderer.h