[gtk+] Move documentation to inline comments: GtkPrintContext



commit 25c2569a5d8af574ccf3604f253d3aa2d21ab9fe
Author: Javier Jardón <jjardon gnome org>
Date:   Sun Apr 17 23:54:00 2011 +0100

    Move documentation to inline comments: GtkPrintContext

 docs/reference/gtk/tmpl/.gitignore           |    1 +
 docs/reference/gtk/tmpl/gtkprintcontext.sgml |  202 --------------------------
 gtk/gtkprintcontext.c                        |   77 ++++++++++
 3 files changed, 78 insertions(+), 202 deletions(-)
---
diff --git a/docs/reference/gtk/tmpl/.gitignore b/docs/reference/gtk/tmpl/.gitignore
index 06ca67a..ee7efc7 100644
--- a/docs/reference/gtk/tmpl/.gitignore
+++ b/docs/reference/gtk/tmpl/.gitignore
@@ -80,6 +80,7 @@ gtkpagesetup.sgml
 gtkpagesetupunixdialog.sgml
 gtkpaned.sgml
 gtkpapersize.sgml
+gtkprintcontext.sgml
 gtkprinter.sgml
 gtkprintjob.sgml
 gtkprintoperation.sgml
diff --git a/gtk/gtkprintcontext.c b/gtk/gtkprintcontext.c
index 26e5a56..223a8f4 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))



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]