Hoogle Search

Within LTS Haskell 24.20 (ghc-9.10.3)

Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.

  1. type PrintOperationPreviewGotPageSizeCallback = PrintContext -> PageSetup -> IO ()

    gi-gtk3 GI.Gtk.Interfaces.PrintOperationPreview

    The gotPageSize signal is emitted once for each page that gets rendered to the preview. A handler for this signal should update the context according to pageSetup and set up a suitable cairo context, using printContextSetCairoContext.

  2. type PrintOperationPreviewReadyCallback = PrintContext -> IO ()

    gi-gtk3 GI.Gtk.Interfaces.PrintOperationPreview

    The ready signal gets emitted once per preview operation, before the first page is rendered. A handler for this signal can be used for setup tasks.

  3. module GI.Gtk.Objects.PrintContext

    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 PrintOperation::beginPrint, PrintOperation::endPrint, PrintOperation::requestPageSetup and PrintOperation::drawPage signals on the PrintOperation. ## Using GtkPrintContext in a PrintOperation::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);
    }
    
    Printing support was added in GTK+ 2.10.

  4. newtype PrintContext

    gi-gtk3 GI.Gtk.Objects.PrintContext

    Memory-managed wrapper type.

  5. PrintContext :: ManagedPtr PrintContext -> PrintContext

    gi-gtk3 GI.Gtk.Objects.PrintContext

    No documentation available.

  6. module GI.Gtk.Objects.PrintOperation

    GtkPrintOperation is the high-level, portable printing API. It looks a bit different than other GTK+ dialogs such as the FileChooser, since some platforms don’t expose enough infrastructure to implement a good print dialog. On such platforms, GtkPrintOperation uses the native print dialog. On platforms which do not provide a native print dialog, GTK+ uses its own, see GtkPrintUnixDialog. The typical way to use the high-level printing API is to create a GtkPrintOperation object with printOperationNew when the user selects to print. Then you set some properties on it, e.g. the page size, any PrintSettings from previous print operations, the number of pages, the current page, etc. Then you start the print operation by calling printOperationRun. It will then show a dialog, let the user select a printer and options. When the user finished the dialog various signals will be emitted on the PrintOperation, the main one being PrintOperation::drawPage, which you are supposed to catch and render the page on the provided PrintContext using Cairo.

    The high-level printing API

    C code

    static GtkPrintSettings *settings = NULL;
    
    static void
    do_print (void)
    {
    GtkPrintOperation *print;
    GtkPrintOperationResult res;
    
    print = gtk_print_operation_new ();
    
    if (settings != NULL)
    gtk_print_operation_set_print_settings (print, settings);
    
    g_signal_connect (print, "begin_print", G_CALLBACK (begin_print), NULL);
    g_signal_connect (print, "draw_page", G_CALLBACK (draw_page), NULL);
    
    res = gtk_print_operation_run (print, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,
    GTK_WINDOW (main_window), NULL);
    
    if (res == GTK_PRINT_OPERATION_RESULT_APPLY)
    {
    if (settings != NULL)
    g_object_unref (settings);
    settings = g_object_ref (gtk_print_operation_get_print_settings (print));
    }
    
    g_object_unref (print);
    }
    
    By default GtkPrintOperation uses an external application to do print preview. To implement a custom print preview, an application must connect to the preview signal. The functions printOperationPreviewRenderPage, printOperationPreviewEndPreview and printOperationPreviewIsSelected are useful when implementing a print preview.

  7. newtype PrintOperation

    gi-gtk3 GI.Gtk.Objects.PrintOperation

    Memory-managed wrapper type.

  8. PrintOperation :: ManagedPtr PrintOperation -> PrintOperation

    gi-gtk3 GI.Gtk.Objects.PrintOperation

    No documentation available.

  9. type PrintOperationBeginPrintCallback = PrintContext -> IO ()

    gi-gtk3 GI.Gtk.Objects.PrintOperation

    Emitted after the user has finished changing print settings in the dialog, before the actual rendering starts. A typical use for beginPrint is to use the parameters from the PrintContext and paginate the document accordingly, and then set the number of pages with printOperationSetNPages. Since: 2.10

  10. type PrintOperationCreateCustomWidgetCallback = IO Object

    gi-gtk3 GI.Gtk.Objects.PrintOperation

    Emitted when displaying the print dialog. If you return a widget in a handler for this signal it will be added to a custom tab in the print dialog. You typically return a container widget with multiple widgets in it. The print dialog owns the returned widget, and its lifetime is not controlled by the application. However, the widget is guaranteed to stay around until the PrintOperation::customWidgetApply signal is emitted on the operation. Then you can read out any information you need from the widgets. Since: 2.10

Page 123 of many | Previous | Next