I downloaded the example test from the source code. It prints to a file
correctly and I also assume it outputs to a printer. The example uses
settings directly from the command line, so I tried to configure it using a
PrintDialog. I tried several ways to achieve this. In every case I used
the test_print example from the source code.
* First I tried to configure it directly when I run
gtk_print_operation_run() with the option
GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG. The program compiles and it shows
the dialog but when I preview or try to print, the dialog exits and the
program hangs. My CPU goes up. When I cancel it though it works correctly.
* The other test was using gtk_print_run_page_setup_dialog() and
gtk_print_unix_dialog_new(). The program compiles, shows the dialog but it
doesn't cancel nor apply the new settings.
Neither of these programs produce any warnings or errors and I'm using
libgtk2 version 2.10. I use Debian. Here is the code from the two
examples. I ommited the implementation of the callbacks as they are the
ones from the test_print example in the gtk source code ...
First program:
int main (int argc, char **argv)
{
GtkPrintOperation *print;
GtkPrintSettings* print_settings;
gtk_init (&argc, &argv);
/* Test some random drawing, with per-page paper settings */
print = gtk_print_operation_new ();
g_signal_connect (print, "draw_page", G_CALLBACK (draw_page), NULL);
g_signal_connect (print, "request_page_setup", G_CALLBACK
(request_page_setup), NULL);
gtk_print_operation_run (print, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,
NULL, NULL);
/* Test subclassing of GtkPrintOperation */
gtk_print_operation_run (GTK_PRINT_OPERATION (print_file),
GTK_PRINT_OPERATION_PRINT_DIALOG, NULL, NULL);
return 0;
}
Second Program:
int main (int argc, char **argv)
{
GtkPrintOperation *print;
GtkPageSetup* page_setup = gtk_page_setup_new();
GtkPrintSettings* print_settings;
gtk_init (&argc, &argv);
GtkWidget* dialog = gtk_page_setup_unix_dialog_new( "Printer", NULL );
gtk_widget_show( dialog );
print_settings = gtk_page_setup_unix_dialog_get_print_settings( dialog );
/* Test some random drawing, with per-page paper settings */
print = gtk_print_operation_new ();
gtk_print_operation_set_print_settings( print, print_settings );
g_signal_connect (print, "draw_page", G_CALLBACK (draw_page), NULL);
g_signal_connect (print, "request_page_setup", G_CALLBACK
(request_page_setup), NULL);
gtk_print_operation_run (print, GTK_PRINT_OPERATION_ACTION_PRINT, NULL,
NULL);
gtk_main();
return 0;
}
Thanks !!!
--
teratux
_______________________________________________
gtk-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtk-list