-
-\f
-
-
-static gboolean
-paginate (GtkPrintOperation *operation,
- GtkPrintContext *context,
- PsppireOutputWindow *window)
-{
- g_print ("%s\n", __FUNCTION__);
-
- if ( window->print_item < window->n_items )
- {
- g_print ("Passing item %d\n", window->print_item);
- xr_driver_output_item (window->print_xrd, window->items[window->print_item++]);
- bool x = xr_driver_need_new_page (window->print_xrd);
- if ( x )
- {
- g_print ("Need new page: %d\n", x);
- xr_driver_next_page (window->print_xrd, NULL);
- window->print_n_pages ++;
- }
- return FALSE;
- }
- else
- {
- struct string_map options = STRING_MAP_INITIALIZER (options);
- g_print ("Number of pages is %d\n", window->print_n_pages);
- gtk_print_operation_set_n_pages (operation, window->print_n_pages);
- window->print_item = 0;
-
- // xr_driver_destroy (window->print_xrd);
-
- window->print_xrd =
- xr_driver_create (gtk_print_context_get_cairo_context (context), &options);
-
- string_map_destroy (&options);
-
- return TRUE;
- }
-}
-
-
-static void
-begin_print (GtkPrintOperation *operation,
- GtkPrintContext *context,
- PsppireOutputWindow *window)
-{
- g_print ("%s\n", __FUNCTION__);
-
- struct string_map options = STRING_MAP_INITIALIZER (options);
-
- window->print_xrd =
- xr_driver_create (gtk_print_context_get_cairo_context (context), &options);
-
- string_map_destroy (&options);
- window->print_item = 0;
- window->print_n_pages = 1;
-}
-
-static void
-end_print (GtkPrintOperation *operation,
- GtkPrintContext *context,
- PsppireOutputWindow *window)
-{
- g_print ("%s\n", __FUNCTION__);
- // xr_driver_destroy (window->print_xrd);
-}
-
-static void
-done (GtkPrintOperation *operation,
- GtkPrintOperationResult result,
- gpointer user_data)
-{
- g_print ("%s %d\n", __FUNCTION__, result);
-}
-
-
-static void
-draw_page (GtkPrintOperation *operation,
- GtkPrintContext *context,
- gint page_number,
- PsppireOutputWindow *window)
-{
- g_print ("%s: %d\n", __FUNCTION__, page_number);
-
- xr_driver_next_page (window->print_xrd, gtk_print_context_get_cairo_context (context));
- while ( window->print_item < window->n_items)
- {
- xr_driver_output_item (window->print_xrd, window->items [window->print_item++]);
- if ( xr_driver_need_new_page (window->print_xrd) )
- break;
- }
-}
-
-