示例#1
0
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);
    }
}
示例#2
0
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);
}
示例#3
0
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);
}
示例#4
0
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);
}