PrintContextProtocol
public protocol PrintContextProtocol : ObjectProtocol
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
.
Using GtkPrintContext in a GtkPrintOperation::draw-page
callback
(C Language Example):
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_pango_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);
}
Printing support was added in GTK+ 2.10.
The PrintContextProtocol
protocol exposes the methods and properties of an underlying GtkPrintContext
instance.
The default implementation of these can be found in the protocol extension below.
For a concrete class that implements these methods and properties, see PrintContext
.
Alternatively, use PrintContextRef
as a lighweight, unowned
reference if you already have an instance you just want to use.
-
Untyped pointer to the underlying
GtkPrintContext
instance.Declaration
Swift
var ptr: UnsafeMutableRawPointer! { get }
-
print_context_ptr
Default implementationTyped pointer to the underlying
GtkPrintContext
instance.Default Implementation
Return the stored, untyped pointer as a typed pointer to the
GtkPrintContext
instance.Declaration
Swift
var print_context_ptr: UnsafeMutablePointer<GtkPrintContext>! { get }
-
Required Initialiser for types conforming to
PrintContextProtocol
Declaration
Swift
init(raw: UnsafeMutableRawPointer)
-
createPangoContext()
Extension methodCreates a new
PangoContext
that can be used with theGtkPrintContext
.Declaration
Swift
@inlinable func createPangoContext() -> Pango.ContextRef!
-
createPangoLayout()
Extension methodCreates a new
PangoLayout
that is suitable for use with theGtkPrintContext
.Declaration
Swift
@inlinable func createPangoLayout() -> Pango.LayoutRef!
-
getCairoContext()
Extension methodObtains the cairo context that is associated with the
GtkPrintContext
.Declaration
Swift
@inlinable func getCairoContext() -> Cairo.ContextRef!
-
getDpiX()
Extension methodObtains the horizontal resolution of the
GtkPrintContext
, in dots per inch.Declaration
Swift
@inlinable func getDpiX() -> Double
-
getDpiY()
Extension methodObtains the vertical resolution of the
GtkPrintContext
, in dots per inch.Declaration
Swift
@inlinable func getDpiY() -> Double
-
getHardMargins(top:
Extension methodbottom: left: right: ) Obtains the hardware printer margins of the
GtkPrintContext
, in units.Declaration
Swift
@inlinable func getHardMargins(top: UnsafeMutablePointer<gdouble>!, bottom: UnsafeMutablePointer<gdouble>!, left: UnsafeMutablePointer<gdouble>!, right: UnsafeMutablePointer<gdouble>!) -> Bool
-
getHeight()
Extension methodObtains the height of the
GtkPrintContext
, in pixels.Declaration
Swift
@inlinable func getHeight() -> Double
-
getPageSetup()
Extension methodObtains the
GtkPageSetup
that determines the page dimensions of theGtkPrintContext
.Declaration
Swift
@inlinable func getPageSetup() -> PageSetupRef!
-
getPangoFontmap()
Extension methodReturns a
PangoFontMap
that is suitable for use with theGtkPrintContext
.Declaration
Swift
@inlinable func getPangoFontmap() -> Pango.FontMapRef!
-
getWidth()
Extension methodObtains the width of the
GtkPrintContext
, in pixels.Declaration
Swift
@inlinable func getWidth() -> Double
-
setCairoContext(cr:
Extension methoddpiX: dpiY: ) Sets a new cairo context on a print context.
This function is intended to be used when implementing an internal print preview, it is not needed for printing, since GTK+ itself creates a suitable cairo context in that case.
Declaration
Swift
@inlinable func setCairoContext<ContextT>(cr: ContextT, dpiX: CDouble, dpiY: CDouble) where ContextT : ContextProtocol
-
cairoContext
Extension methodObtains the cairo context that is associated with the
GtkPrintContext
.Declaration
Swift
@inlinable var cairoContext: Cairo.ContextRef! { get }
-
dpiX
Extension methodObtains the horizontal resolution of the
GtkPrintContext
, in dots per inch.Declaration
Swift
@inlinable var dpiX: Double { get }
-
dpiY
Extension methodObtains the vertical resolution of the
GtkPrintContext
, in dots per inch.Declaration
Swift
@inlinable var dpiY: Double { get }
-
height
Extension methodObtains the height of the
GtkPrintContext
, in pixels.Declaration
Swift
@inlinable var height: Double { get }
-
pageSetup
Extension methodObtains the
GtkPageSetup
that determines the page dimensions of theGtkPrintContext
.Declaration
Swift
@inlinable var pageSetup: PageSetupRef! { get }
-
pangoFontmap
Extension methodReturns a
PangoFontMap
that is suitable for use with theGtkPrintContext
.Declaration
Swift
@inlinable var pangoFontmap: Pango.FontMapRef! { get }
-
width
Extension methodObtains the width of the
GtkPrintContext
, in pixels.Declaration
Swift
@inlinable var width: Double { get }