1 | /* Printing/Page Setup |
---|---|
2 | * #Keywords: GtkPageSetup |
3 | * |
4 | * GtkPageSetupUnixDialog can be used if page setup is needed |
5 | * independent of a full printing dialog. |
6 | */ |
7 | |
8 | #include <math.h> |
9 | #include <gtk/gtk.h> |
10 | #include <gtk/gtkunixprint.h> |
11 | |
12 | static void |
13 | done_cb (GtkDialog *dialog, int response, gpointer data) |
14 | { |
15 | gtk_window_destroy (GTK_WINDOW (dialog)); |
16 | } |
17 | |
18 | GtkWidget * |
19 | do_pagesetup (GtkWidget *do_widget) |
20 | { |
21 | static GtkWidget *window = NULL; |
22 | |
23 | if (!window) |
24 | { |
25 | window = gtk_page_setup_unix_dialog_new (title: "Page Setup", GTK_WINDOW (do_widget)); |
26 | g_object_add_weak_pointer (G_OBJECT (window), weak_pointer_location: (gpointer *)&window); |
27 | g_signal_connect (window, "response", G_CALLBACK (done_cb), NULL); |
28 | } |
29 | |
30 | if (!gtk_widget_get_visible (widget: window)) |
31 | gtk_widget_show (widget: window); |
32 | else |
33 | gtk_window_destroy (GTK_WINDOW (window)); |
34 | |
35 | return window; |
36 | } |
37 |