void print_page_setup_load (GtkPrintOperation *operation, gint32 image_ID) { GKeyFile *key_file; g_return_if_fail (GTK_IS_PRINT_OPERATION (operation)); key_file = print_utils_key_file_load_from_parasite (image_ID, PRINT_PAGE_SETUP_NAME); if (! key_file) key_file = print_utils_key_file_load_from_rcfile (PRINT_PAGE_SETUP_NAME); if (key_file) { GtkPageSetup *setup; setup = gtk_page_setup_new_from_key_file (key_file, PRINT_PAGE_SETUP_NAME, NULL); if (setup) { gtk_print_operation_set_default_page_setup (operation, setup); g_object_unref (setup); } g_key_file_free (key_file); } }
void print_page_setup_dialog (GtkPrintOperation *operation) { GtkPrintSettings *settings; GtkPageSetup *setup; g_return_if_fail (GTK_IS_PRINT_OPERATION (operation)); setup = gtk_print_operation_get_default_page_setup (operation); settings = gtk_print_settings_new (); setup = gtk_print_run_page_setup_dialog (NULL, setup, settings); g_object_unref (settings); gtk_print_operation_set_default_page_setup (operation, setup); }
GtkWidget * soli_print_preview_new (GtkPrintOperation *operation, GtkPrintOperationPreview *gtk_preview, GtkPrintContext *context) { SoliPrintPreview *preview; cairo_surface_t *surface; cairo_t *cr; gdouble dpi_x, dpi_y; g_return_val_if_fail (GTK_IS_PRINT_OPERATION (operation), NULL); g_return_val_if_fail (GTK_IS_PRINT_OPERATION_PREVIEW (gtk_preview), NULL); preview = g_object_new (SOLI_TYPE_PRINT_PREVIEW, NULL); preview->operation = g_object_ref (operation); preview->gtk_preview = g_object_ref (gtk_preview); preview->context = g_object_ref (context); /* FIXME: is this legal?? */ gtk_print_operation_set_unit (operation, GTK_UNIT_POINTS); g_signal_connect_object (gtk_preview, "ready", G_CALLBACK (preview_ready), preview, 0); /* FIXME: we need a cr to paginate... but we can't get the drawing * area surface because it's not there yet... for now I create * a dummy pdf surface. * gtk_print_context_set_cairo_context() should be called in the * got-page-size handler. */ surface = create_preview_surface (preview, &dpi_x, &dpi_y); cr = cairo_create (surface); gtk_print_context_set_cairo_context (context, cr, dpi_x, dpi_y); cairo_destroy (cr); cairo_surface_destroy (surface); return GTK_WIDGET (preview); }
void print_page_setup_save (GtkPrintOperation *operation, gint32 image_ID) { GtkPageSetup *setup; GKeyFile *key_file; g_return_if_fail (GTK_IS_PRINT_OPERATION (operation)); key_file = g_key_file_new (); setup = gtk_print_operation_get_default_page_setup (operation); gtk_page_setup_to_key_file (setup, key_file, PRINT_PAGE_SETUP_NAME); print_utils_key_file_save_as_parasite (key_file, image_ID, PRINT_PAGE_SETUP_NAME); print_utils_key_file_save_as_rcfile (key_file, PRINT_PAGE_SETUP_NAME); g_key_file_free (key_file); }