forked from AuroraMiddleware/gtk
27f746fbd0
2006-04-21 Alexander Larsson <alexl@redhat.com> Merge the gtk-printing branch. For more detailed ChangeLog entries, see the branch. * .cvsignore: * Makefile.am: * configure.in: * docs/tools/widgets.c: * gtk+-unix-print-2.0.pc.in: * gtk/Makefile.am: * gtk/gen-paper-names.c: * gtk/gtk.h: * gtk/gtk.symbols: * gtk/gtkenums.h: * gtk/gtkiconfactory.c: * gtk/gtkmarshalers.list: * gtk/gtkpagesetup.[ch]: * gtk/gtkpagesetupunixdialog.[ch]: * gtk/gtkpapersize.[ch]: * gtk/gtkprint-win32.[ch]: * gtk/gtkprintbackend.[ch]: * gtk/gtkprintcontext.[ch]: * gtk/gtkprinter-private.h: * gtk/gtkprinter.[ch]: * gtk/gtkprinteroption.[ch]: * gtk/gtkprinteroptionset.[ch]: * gtk/gtkprinteroptionwidget.[ch]: * gtk/gtkprintjob.[ch]: * gtk/gtkprintoperation-private.h: * gtk/gtkprintoperation-unix.c: * gtk/gtkprintoperation-win32.c: * gtk/gtkprintoperation.[ch]: * gtk/gtkprintsettings.[ch]: * gtk/gtkprintunixdialog.[ch]: * gtk/paper_names.c: * gtk/paper_names_offsets.c: Platform independent printing API and implementations for unix and windows. * gtk/gtkstock.h: * gtk/stock-icons/24/gtk-orientation-landscape.png: * gtk/stock-icons/24/gtk-orientation-portrait.png: * gtk/stock-icons/24/gtk-orientation-reverse-landscape.png: Add stock icons for page orientation. * modules/Makefile.am: * modules/printbackends/Makefile.am: * modules/printbackends/cups/Makefile.am: * modules/printbackends/cups/gtkcupsutils.[ch]: * modules/printbackends/cups/gtkprintbackendcups.[ch]: * modules/printbackends/cups/gtkprintercups.[ch]: Cups printing backend for unix. * modules/printbackends/lpr/Makefile.am: * modules/printbackends/lpr/gtkprintbackendlpr.[ch]: lpr printing backend for unix. * modules/printbackends/pdf/Makefile.am: * modules/printbackends/pdf/gtkprintbackendpdf.[ch]: print-to-pdf printing backend for unix. * tests/.cvsignore: * tests/Makefile.am: * tests/print-editor.c: Test application for printing. * gdk/gdk.symbols: * gdk/win32/gdkevents-win32.c: * gdk/win32/gdkwin32.h: Add gdk_win32_set_modal_dialog_libgtk_only so that we can pump the mainloop while displaying a win32 common dialog. * gdk/directfb/Makefile.am: Whitespace cleanup.
176 lines
3.2 KiB
Plaintext
176 lines
3.2 KiB
Plaintext
<!-- ##### 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);
|
|
|
|
/* 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 ##### -->
|
|
|
|
|
|
<!-- ##### STRUCT GtkPrintContext ##### -->
|
|
<para>
|
|
|
|
</para>
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_print_context_get_cairo ##### -->
|
|
<para>
|
|
|
|
</para>
|
|
|
|
@context:
|
|
@Returns:
|
|
|
|
|
|
<!-- ##### 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_fontmap ##### -->
|
|
<para>
|
|
|
|
</para>
|
|
|
|
@context:
|
|
@Returns:
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_print_context_create_context ##### -->
|
|
<para>
|
|
|
|
</para>
|
|
|
|
@context:
|
|
@Returns:
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_print_context_create_layout ##### -->
|
|
<para>
|
|
|
|
</para>
|
|
|
|
@context:
|
|
@Returns:
|
|
|
|
|