diff options
author | Javier Jardón <jjardon@gnome.org> | 2011-04-17 23:54:00 +0100 |
---|---|---|
committer | Javier Jardón <jjardon@gnome.org> | 2011-04-18 02:08:36 +0100 |
commit | 25c2569a5d8af574ccf3604f253d3aa2d21ab9fe (patch) | |
tree | 64fae2a9db40c3751f2e0007b327c34aa632769e /gtk/gtkprintcontext.c | |
parent | c029306b4ce4734829e00f9262fd45b4a230870c (diff) | |
download | gtk+-25c2569a5d8af574ccf3604f253d3aa2d21ab9fe.tar.gz |
Move documentation to inline comments: GtkPrintContext
Diffstat (limited to 'gtk/gtkprintcontext.c')
-rw-r--r-- | gtk/gtkprintcontext.c | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/gtk/gtkprintcontext.c b/gtk/gtkprintcontext.c index 26e5a56c70..223a8f4d46 100644 --- a/gtk/gtkprintcontext.c +++ b/gtk/gtkprintcontext.c @@ -21,6 +21,83 @@ #include "config.h" #include "gtkprintoperation-private.h" + +/** + * SECTION:gtkprintcontext + * @Short_description: Encapsulates context for drawing pages + * @Title: GtkPrintContext + * + * A GtkPrintContext encapsulates context information that is required when + * drawing pages for printing, such as the cairo context and important + * parameters like page size and resolution. It also lets you easily + * create #PangoLayout and #PangoContext objects that match the font metrics + * of the cairo surface. + * + * GtkPrintContext objects gets passed to the #GtkPrintOperation::begin-print, + * #GtkPrintOperation::end-print, #GtkPrintOperation::request-page-setup and + * #GtkPrintOperation::draw-page signals on the #GtkPrintOperation. + * + * <example> + * <title>Using GtkPrintContext in a #GtkPrintOperation::draw-page callback</title> + * <programlisting> + * static void + * draw_page (GtkPrintOperation *operation, + * GtkPrintContext *context, + * int page_nr) + * { + * cairo_t *cr; + * PangoLayout *layout; + * PangoFontDescription *desc; + * + * cr = gtk_print_context_get_cairo_context (context); + * + * // Draw a red rectangle, as wide as the paper (inside the margins) + * cairo_set_source_rgb (cr, 1.0, 0, 0); + * cairo_rectangle (cr, 0, 0, gtk_print_context_get_width (context), 50); + * + * cairo_fill (cr); + * + * // Draw some lines + * cairo_move_to (cr, 20, 10); + * cairo_line_to (cr, 40, 20); + * cairo_arc (cr, 60, 60, 20, 0, M_PI); + * cairo_line_to (cr, 80, 20); + * + * cairo_set_source_rgb (cr, 0, 0, 0); + * cairo_set_line_width (cr, 5); + * cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND); + * cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND); + * + * cairo_stroke (cr); + * + * // Draw some text + * layout = gtk_print_context_create_layout (context); + * pango_layout_set_text (layout, "Hello World! Printing is easy", -1); + * desc = pango_font_description_from_string ("sans 28"); + * pango_layout_set_font_description (layout, desc); + * pango_font_description_free (desc); + * + * cairo_move_to (cr, 30, 20); + * pango_cairo_layout_path (cr, layout); + * + * // Font Outline + * cairo_set_source_rgb (cr, 0.93, 1.0, 0.47); + * cairo_set_line_width (cr, 0.5); + * cairo_stroke_preserve (cr); + * + * // Font Fill + * cairo_set_source_rgb (cr, 0, 0.0, 1.0); + * cairo_fill (cr); + * + * g_object_unref (layout); + * } + * </programlisting> + * </example> + * + * Printing support was added in GTK+ 2.10. + */ + + typedef struct _GtkPrintContextClass GtkPrintContextClass; #define GTK_IS_PRINT_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_PRINT_CONTEXT)) |