| Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte | 
|---|---|
| License | LGPL-2.1 | 
| Maintainer | Iñaki García Etxebarria | 
| Safe Haskell | Safe-Inferred | 
| Language | Haskell2010 | 
GI.Gtk.Objects.PrintContext
Description
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 Layout and Context objects that match the font metrics
 of the cairo surface.
GtkPrintContext objects gets passed to the beginPrint,
 endPrint, requestPageSetup and
 drawPage signals on the PrintOperation.
## Using GtkPrintContext in a drawPage callback
C code
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);
}Synopsis
- newtype PrintContext = PrintContext (ManagedPtr PrintContext)
- class (GObject o, IsDescendantOf PrintContext o) => IsPrintContext o
- toPrintContext :: (MonadIO m, IsPrintContext o) => o -> m PrintContext
- printContextCreatePangoContext :: (HasCallStack, MonadIO m, IsPrintContext a) => a -> m Context
- printContextCreatePangoLayout :: (HasCallStack, MonadIO m, IsPrintContext a) => a -> m Layout
- printContextGetCairoContext :: (HasCallStack, MonadIO m, IsPrintContext a) => a -> m Context
- printContextGetDpiX :: (HasCallStack, MonadIO m, IsPrintContext a) => a -> m Double
- printContextGetDpiY :: (HasCallStack, MonadIO m, IsPrintContext a) => a -> m Double
- printContextGetHardMargins :: (HasCallStack, MonadIO m, IsPrintContext a) => a -> m (Bool, Double, Double, Double, Double)
- printContextGetHeight :: (HasCallStack, MonadIO m, IsPrintContext a) => a -> m Double
- printContextGetPageSetup :: (HasCallStack, MonadIO m, IsPrintContext a) => a -> m PageSetup
- printContextGetPangoFontmap :: (HasCallStack, MonadIO m, IsPrintContext a) => a -> m FontMap
- printContextGetWidth :: (HasCallStack, MonadIO m, IsPrintContext a) => a -> m Double
- printContextSetCairoContext :: (HasCallStack, MonadIO m, IsPrintContext a) => a -> Context -> Double -> Double -> m ()
Exported types
newtype PrintContext Source #
Memory-managed wrapper type.
Constructors
| PrintContext (ManagedPtr PrintContext) | 
Instances
| Eq PrintContext Source # | |
| Defined in GI.Gtk.Objects.PrintContext | |
| GObject PrintContext Source # | |
| Defined in GI.Gtk.Objects.PrintContext | |
| ManagedPtrNewtype PrintContext Source # | |
| Defined in GI.Gtk.Objects.PrintContext Methods toManagedPtr :: PrintContext -> ManagedPtr PrintContext | |
| TypedObject PrintContext Source # | |
| Defined in GI.Gtk.Objects.PrintContext | |
| HasParentTypes PrintContext Source # | |
| Defined in GI.Gtk.Objects.PrintContext | |
| IsGValue (Maybe PrintContext) Source # | Convert  | 
| Defined in GI.Gtk.Objects.PrintContext Methods gvalueGType_ :: IO GType gvalueSet_ :: Ptr GValue -> Maybe PrintContext -> IO () gvalueGet_ :: Ptr GValue -> IO (Maybe PrintContext) | |
| type ParentTypes PrintContext Source # | |
| Defined in GI.Gtk.Objects.PrintContext | |
class (GObject o, IsDescendantOf PrintContext o) => IsPrintContext o Source #
Type class for types which can be safely cast to PrintContext, for instance with toPrintContext.
Instances
| (GObject o, IsDescendantOf PrintContext o) => IsPrintContext o Source # | |
| Defined in GI.Gtk.Objects.PrintContext | |
toPrintContext :: (MonadIO m, IsPrintContext o) => o -> m PrintContext Source #
Cast to PrintContext, for types for which this is known to be safe. For general casts, use castTo.
Methods
Click to display all available methods, including inherited ones
Methods
bindProperty, bindPropertyFull, createPangoContext, createPangoLayout, forceFloating, freezeNotify, getv, isFloating, notify, notifyByPspec, ref, refSink, runDispose, stealData, stealQdata, thawNotify, unref, watchClosure.
Getters
getCairoContext, getData, getDpiX, getDpiY, getHardMargins, getHeight, getPageSetup, getPangoFontmap, getProperty, getQdata, getWidth.
Setters
createPangoContext
printContextCreatePangoContext Source #
Arguments
| :: (HasCallStack, MonadIO m, IsPrintContext a) | |
| => a | 
 | 
| -> m Context | Returns: a new Pango context for  | 
Creates a new Context that can be used with the
 PrintContext.
createPangoLayout
printContextCreatePangoLayout Source #
Arguments
| :: (HasCallStack, MonadIO m, IsPrintContext a) | |
| => a | 
 | 
| -> m Layout | Returns: a new Pango layout for  | 
Creates a new Layout that is suitable for use
 with the PrintContext.
getCairoContext
printContextGetCairoContext Source #
Arguments
| :: (HasCallStack, MonadIO m, IsPrintContext a) | |
| => a | 
 | 
| -> m Context | Returns: the cairo context of  | 
Obtains the cairo context that is associated with the
 PrintContext.
getDpiX
Arguments
| :: (HasCallStack, MonadIO m, IsPrintContext a) | |
| => a | 
 | 
| -> m Double | Returns: the horizontal resolution of  | 
Obtains the horizontal resolution of the PrintContext,
 in dots per inch.
getDpiY
Arguments
| :: (HasCallStack, MonadIO m, IsPrintContext a) | |
| => a | 
 | 
| -> m Double | Returns: the vertical resolution of  | 
Obtains the vertical resolution of the PrintContext,
 in dots per inch.
getHardMargins
printContextGetHardMargins Source #
Arguments
| :: (HasCallStack, MonadIO m, IsPrintContext a) | |
| => a | 
 | 
| -> m (Bool, Double, Double, Double, Double) | Returns:  | 
Obtains the hardware printer margins of the PrintContext, in units.
getHeight
printContextGetHeight Source #
Arguments
| :: (HasCallStack, MonadIO m, IsPrintContext a) | |
| => a | 
 | 
| -> m Double | Returns: the height of  | 
Obtains the height of the PrintContext, in pixels.
getPageSetup
printContextGetPageSetup Source #
Arguments
| :: (HasCallStack, MonadIO m, IsPrintContext a) | |
| => a | 
 | 
| -> m PageSetup | Returns: the page setup of  | 
Obtains the PageSetup that determines the page
 dimensions of the PrintContext.
getPangoFontmap
printContextGetPangoFontmap Source #
Arguments
| :: (HasCallStack, MonadIO m, IsPrintContext a) | |
| => a | 
 | 
| -> m FontMap | Returns: the font map of  | 
Returns a FontMap that is suitable for use
 with the PrintContext.
getWidth
Arguments
| :: (HasCallStack, MonadIO m, IsPrintContext a) | |
| => a | 
 | 
| -> m Double | Returns: the width of  | 
Obtains the width of the PrintContext, in pixels.
setCairoContext
printContextSetCairoContext Source #
Arguments
| :: (HasCallStack, MonadIO m, IsPrintContext a) | |
| => a | 
 | 
| -> Context | 
 | 
| -> Double | 
 | 
| -> Double | 
 | 
| -> m () | 
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.