1 /*
2 * Copyright (c) 2006 by the gtk2-perl team (see the file AUTHORS)
3 *
4 * Licensed under the LGPL, see LICENSE file for more information.
5 *
6 * $Id$
7 */
8
9 #include "gtk2perl.h"
10
11 static GPerlCallback *
gtk2perl_page_setup_done_func_create(SV * func,SV * data)12 gtk2perl_page_setup_done_func_create (SV * func, SV * data)
13 {
14 GType param_types [1];
15 param_types[0] = GTK_TYPE_PAGE_SETUP;
16 return gperl_callback_new (func, data, G_N_ELEMENTS (param_types),
17 param_types, 0);
18 }
19
20 static void
gtk2perl_page_setup_done_func(GtkPageSetup * page_setup,gpointer data)21 gtk2perl_page_setup_done_func (GtkPageSetup *page_setup, gpointer data)
22 {
23 gperl_callback_invoke ((GPerlCallback *) data, NULL, page_setup);
24 /* The callback is always called exactly once, so free it now. */
25 gperl_callback_destroy ((GPerlCallback *) data);
26 }
27
28 MODULE = Gtk2::PrintOperation PACKAGE = Gtk2::PrintOperation PREFIX = gtk_print_operation_
29
30 # GtkPrintOperation * gtk_print_operation_new (void);
31 GtkPrintOperation_noinc * gtk_print_operation_new (class)
32 C_ARGS:
33 /* void */
34
35 void gtk_print_operation_set_default_page_setup (GtkPrintOperation *op, GtkPageSetup_ornull *default_page_setup);
36
37 GtkPageSetup_ornull * gtk_print_operation_get_default_page_setup (GtkPrintOperation *op);
38
39 void gtk_print_operation_set_print_settings (GtkPrintOperation *op, GtkPrintSettings_ornull *print_settings);
40
41 GtkPrintSettings_ornull * gtk_print_operation_get_print_settings (GtkPrintOperation *op);
42
43 void gtk_print_operation_set_job_name (GtkPrintOperation *op, const gchar *job_name);
44
45 void gtk_print_operation_set_n_pages (GtkPrintOperation *op, gint n_pages);
46
47 void gtk_print_operation_set_current_page (GtkPrintOperation *op, gint current_page);
48
49 void gtk_print_operation_set_use_full_page (GtkPrintOperation *op, gboolean full_page);
50
51 void gtk_print_operation_set_unit (GtkPrintOperation *op, GtkUnit unit);
52
53 void gtk_print_operation_set_export_filename (GtkPrintOperation *op, const gchar *filename);
54
55 void gtk_print_operation_set_track_print_status (GtkPrintOperation *op, gboolean track_status);
56
57 void gtk_print_operation_set_show_progress (GtkPrintOperation *op, gboolean show_progress);
58
59 void gtk_print_operation_set_allow_async (GtkPrintOperation *op, gboolean allow_async);
60
61 void gtk_print_operation_set_custom_tab_label (GtkPrintOperation *op, const gchar *label);
62
63 =for apidoc __gerror__
64 =cut
65 # GtkPrintOperationResult gtk_print_operation_run (GtkPrintOperation *op, GtkPrintOperationAction action, GtkWindow *parent, GError **error);
66 GtkPrintOperationResult
67 gtk_print_operation_run (GtkPrintOperation *op, GtkPrintOperationAction action, GtkWindow_ornull *parent)
68 PREINIT:
69 GError *error = NULL;
70 CODE:
71 RETVAL = gtk_print_operation_run (op, action, parent, &error);
72 if (error)
73 gperl_croak_gerror (NULL, error);
74 OUTPUT:
75 RETVAL
76
77 # FIXME: Does it makes sense to wrap it like this?
78 # void gtk_print_operation_get_error (GtkPrintOperation *op, GError **error);
79 SV *
80 gtk_print_operation_get_error (GtkPrintOperation *op)
81 PREINIT:
82 GError *error = NULL;
83 CODE:
84 gtk_print_operation_get_error (op, &error);
85 RETVAL = gperl_sv_from_gerror (error);
86 OUTPUT:
87 RETVAL
88
89 GtkPrintStatus gtk_print_operation_get_status (GtkPrintOperation *op);
90
91 const gchar * gtk_print_operation_get_status_string (GtkPrintOperation *op);
92
93 gboolean gtk_print_operation_is_finished (GtkPrintOperation *op);
94
95 void gtk_print_operation_cancel (GtkPrintOperation *op);
96
97 #if GTK_CHECK_VERSION (2, 16, 0)
98
99 =for apidoc
100
101 =for signature $op->draw_page_finish ()
102
103 The method draw_page_finish() can only be called if the method
104 set_defer_drawing() has been called previously otherwise a segmentation fault
105 will occur. This means that the application will crash and even an eval will not
106 be able to recover from that error.
107
108 =cut
109 void gtk_print_operation_draw_page_finish (GtkPrintOperation *op);
110
111
112 =for apidoc
113
114 =for signature $op->set_defer_drawing ()
115
116 The method set_defer_drawing() can only be called from the callback
117 C<'draw-page'>.
118
119 =cut
120 void gtk_print_operation_set_defer_drawing (GtkPrintOperation *op);
121
122 #endif /* 2.16 */
123
124 #if GTK_CHECK_VERSION (2, 18, 0)
125
126 void gtk_print_operation_set_embed_page_setup (GtkPrintOperation *op, gboolean embed);
127
128 gboolean gtk_print_operation_get_embed_page_setup (GtkPrintOperation *op);
129
130 void gtk_print_operation_set_support_selection (GtkPrintOperation *op, gboolean support_selection);
131
132 gboolean gtk_print_operation_get_support_selection (GtkPrintOperation *op);
133
134 void gtk_print_operation_set_has_selection (GtkPrintOperation *op, gboolean has_selection);
135
136 gboolean gtk_print_operation_get_has_selection (GtkPrintOperation *op);
137
138 gint gtk_print_operation_get_n_pages_to_print (GtkPrintOperation *op);
139
140 #endif /* 2.18 */
141
142 MODULE = Gtk2::PrintOperation PACKAGE = Gtk2::Print PREFIX = gtk_print_
143
144 # GtkPageSetup * gtk_print_run_page_setup_dialog (GtkWindow *parent, GtkPageSetup *page_setup, GtkPrintSettings *settings);
145 GtkPageSetup_noinc *
146 gtk_print_run_page_setup_dialog (class, GtkWindow_ornull *parent, GtkPageSetup_ornull *page_setup, GtkPrintSettings *settings)
147 C_ARGS:
148 parent, page_setup, settings
149
150 # void gtk_print_run_page_setup_dialog_async (GtkWindow_ornull *parent, GtkPageSetup_ornull *page_setup, GtkPrintSettings *settings, GtkPageSetupDoneFunc done_cb, gpointer data);
151 void
152 gtk_print_run_page_setup_dialog_async (class, GtkWindow_ornull *parent, GtkPageSetup_ornull *page_setup, GtkPrintSettings *settings, SV *func, SV *data=NULL)
153 PREINIT:
154 GPerlCallback *callback;
155 CODE:
156 callback = gtk2perl_page_setup_done_func_create (func, data);
157 gtk_print_run_page_setup_dialog_async (
158 parent, page_setup, settings,
159 gtk2perl_page_setup_done_func,
160 callback);
161 /* Since it's always called exactly once, the callback is destroyed
162 * directly in the marshaller. */
163