Move documentation to inline comments: GtkPrintContext
This commit is contained in:
		
							
								
								
									
										1
									
								
								docs/reference/gtk/tmpl/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								docs/reference/gtk/tmpl/.gitignore
									
									
									
									
										vendored
									
									
								
							@ -80,6 +80,7 @@ gtkpagesetup.sgml
 | 
			
		||||
gtkpagesetupunixdialog.sgml
 | 
			
		||||
gtkpaned.sgml
 | 
			
		||||
gtkpapersize.sgml
 | 
			
		||||
gtkprintcontext.sgml
 | 
			
		||||
gtkprinter.sgml
 | 
			
		||||
gtkprintjob.sgml
 | 
			
		||||
gtkprintoperation.sgml
 | 
			
		||||
 | 
			
		||||
@ -1,202 +0,0 @@
 | 
			
		||||
<!-- ##### SECTION Title ##### -->
 | 
			
		||||
GtkPrintContext
 | 
			
		||||
 | 
			
		||||
<!-- ##### SECTION Short_Description ##### -->
 | 
			
		||||
Encapsulates context for drawing pages
 | 
			
		||||
 | 
			
		||||
<!-- ##### SECTION Long_Description ##### -->
 | 
			
		||||
<para>
 | 
			
		||||
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.
 | 
			
		||||
</para>
 | 
			
		||||
<para>
 | 
			
		||||
GtkPrintContext objects gets passed to the ::begin-print, ::end-print, 
 | 
			
		||||
::request-page-setup and ::draw-page signals on the #GtkPrintOperation.
 | 
			
		||||
</para>
 | 
			
		||||
 | 
			
		||||
<example>
 | 
			
		||||
<title>Using GtkPrintContext in a ::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>
 | 
			
		||||
 | 
			
		||||
<para>
 | 
			
		||||
Printing support was added in GTK+ 2.10.
 | 
			
		||||
</para>
 | 
			
		||||
 | 
			
		||||
<!-- ##### SECTION See_Also ##### -->
 | 
			
		||||
<para>
 | 
			
		||||
 | 
			
		||||
</para>
 | 
			
		||||
 | 
			
		||||
<!-- ##### SECTION Stability_Level ##### -->
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<!-- ##### SECTION Image ##### -->
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<!-- ##### STRUCT GtkPrintContext ##### -->
 | 
			
		||||
<para>
 | 
			
		||||
 | 
			
		||||
</para>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<!-- ##### FUNCTION gtk_print_context_get_cairo_context ##### -->
 | 
			
		||||
<para>
 | 
			
		||||
 | 
			
		||||
</para>
 | 
			
		||||
 | 
			
		||||
@context: 
 | 
			
		||||
@Returns: 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<!-- ##### FUNCTION gtk_print_context_set_cairo_context ##### -->
 | 
			
		||||
<para>
 | 
			
		||||
 | 
			
		||||
</para>
 | 
			
		||||
 | 
			
		||||
@context: 
 | 
			
		||||
@cr: 
 | 
			
		||||
@dpi_x: 
 | 
			
		||||
@dpi_y: 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<!-- ##### FUNCTION gtk_print_context_get_page_setup ##### -->
 | 
			
		||||
<para>
 | 
			
		||||
 | 
			
		||||
</para>
 | 
			
		||||
 | 
			
		||||
@context: 
 | 
			
		||||
@Returns: 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<!-- ##### FUNCTION gtk_print_context_get_width ##### -->
 | 
			
		||||
<para>
 | 
			
		||||
 | 
			
		||||
</para>
 | 
			
		||||
 | 
			
		||||
@context: 
 | 
			
		||||
@Returns: 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<!-- ##### FUNCTION gtk_print_context_get_height ##### -->
 | 
			
		||||
<para>
 | 
			
		||||
 | 
			
		||||
</para>
 | 
			
		||||
 | 
			
		||||
@context: 
 | 
			
		||||
@Returns: 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<!-- ##### FUNCTION gtk_print_context_get_dpi_x ##### -->
 | 
			
		||||
<para>
 | 
			
		||||
 | 
			
		||||
</para>
 | 
			
		||||
 | 
			
		||||
@context: 
 | 
			
		||||
@Returns: 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<!-- ##### FUNCTION gtk_print_context_get_dpi_y ##### -->
 | 
			
		||||
<para>
 | 
			
		||||
 | 
			
		||||
</para>
 | 
			
		||||
 | 
			
		||||
@context: 
 | 
			
		||||
@Returns: 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<!-- ##### FUNCTION gtk_print_context_get_pango_fontmap ##### -->
 | 
			
		||||
<para>
 | 
			
		||||
 | 
			
		||||
</para>
 | 
			
		||||
 | 
			
		||||
@context: 
 | 
			
		||||
@Returns: 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<!-- ##### FUNCTION gtk_print_context_create_pango_context ##### -->
 | 
			
		||||
<para>
 | 
			
		||||
 | 
			
		||||
</para>
 | 
			
		||||
 | 
			
		||||
@context: 
 | 
			
		||||
@Returns: 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<!-- ##### FUNCTION gtk_print_context_create_pango_layout ##### -->
 | 
			
		||||
<para>
 | 
			
		||||
 | 
			
		||||
</para>
 | 
			
		||||
 | 
			
		||||
@context: 
 | 
			
		||||
@Returns: 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<!-- ##### FUNCTION gtk_print_context_get_hard_margins ##### -->
 | 
			
		||||
<para>
 | 
			
		||||
 | 
			
		||||
</para>
 | 
			
		||||
 | 
			
		||||
@context: 
 | 
			
		||||
@top: 
 | 
			
		||||
@bottom: 
 | 
			
		||||
@left: 
 | 
			
		||||
@right: 
 | 
			
		||||
@Returns: 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -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))
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user