1 | /* GTK - The GIMP Toolkit |
2 | * gtkprintsettings.h: Print Settings |
3 | * Copyright (C) 2006, Red Hat, Inc. |
4 | * |
5 | * This library is free software; you can redistribute it and/or |
6 | * modify it under the terms of the GNU Lesser General Public |
7 | * License as published by the Free Software Foundation; either |
8 | * version 2 of the License, or (at your option) any later version. |
9 | * |
10 | * This library is distributed in the hope that it will be useful, |
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | * Lesser General Public License for more details. |
14 | * |
15 | * You should have received a copy of the GNU Lesser General Public |
16 | * License along with this library. If not, see <http://www.gnu.org/licenses/>. |
17 | */ |
18 | |
19 | #ifndef __GTK_PRINT_SETTINGS_H__ |
20 | #define __GTK_PRINT_SETTINGS_H__ |
21 | |
22 | #if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) |
23 | #error "Only <gtk/gtk.h> can be included directly." |
24 | #endif |
25 | |
26 | #include <gtk/gtkpapersize.h> |
27 | |
28 | G_BEGIN_DECLS |
29 | |
30 | typedef struct _GtkPrintSettings GtkPrintSettings; |
31 | |
32 | #define GTK_TYPE_PRINT_SETTINGS (gtk_print_settings_get_type ()) |
33 | #define GTK_PRINT_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PRINT_SETTINGS, GtkPrintSettings)) |
34 | #define GTK_IS_PRINT_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PRINT_SETTINGS)) |
35 | |
36 | typedef void (*GtkPrintSettingsFunc) (const char *key, |
37 | const char *value, |
38 | gpointer user_data); |
39 | |
40 | typedef struct _GtkPageRange ; |
41 | |
42 | /** |
43 | * GtkPageRange: |
44 | * @start: start of page range. |
45 | * @end: end of page range. |
46 | * |
47 | * A range of pages to print. |
48 | * |
49 | * See also [method@Gtk.PrintSettings.set_page_ranges]. |
50 | */ |
51 | struct |
52 | { |
53 | int ; |
54 | int ; |
55 | }; |
56 | |
57 | GDK_AVAILABLE_IN_ALL |
58 | GType gtk_print_settings_get_type (void) G_GNUC_CONST; |
59 | GDK_AVAILABLE_IN_ALL |
60 | GtkPrintSettings *gtk_print_settings_new (void); |
61 | |
62 | GDK_AVAILABLE_IN_ALL |
63 | GtkPrintSettings *gtk_print_settings_copy (GtkPrintSettings *other); |
64 | |
65 | GDK_AVAILABLE_IN_ALL |
66 | GtkPrintSettings *gtk_print_settings_new_from_file (const char *file_name, |
67 | GError **error); |
68 | GDK_AVAILABLE_IN_ALL |
69 | gboolean gtk_print_settings_load_file (GtkPrintSettings *settings, |
70 | const char *file_name, |
71 | GError **error); |
72 | GDK_AVAILABLE_IN_ALL |
73 | gboolean gtk_print_settings_to_file (GtkPrintSettings *settings, |
74 | const char *file_name, |
75 | GError **error); |
76 | GDK_AVAILABLE_IN_ALL |
77 | GtkPrintSettings *gtk_print_settings_new_from_key_file (GKeyFile *key_file, |
78 | const char *group_name, |
79 | GError **error); |
80 | GDK_AVAILABLE_IN_ALL |
81 | gboolean gtk_print_settings_load_key_file (GtkPrintSettings *settings, |
82 | GKeyFile *key_file, |
83 | const char *group_name, |
84 | GError **error); |
85 | GDK_AVAILABLE_IN_ALL |
86 | void gtk_print_settings_to_key_file (GtkPrintSettings *settings, |
87 | GKeyFile *key_file, |
88 | const char *group_name); |
89 | GDK_AVAILABLE_IN_ALL |
90 | gboolean gtk_print_settings_has_key (GtkPrintSettings *settings, |
91 | const char *key); |
92 | GDK_AVAILABLE_IN_ALL |
93 | const char * gtk_print_settings_get (GtkPrintSettings *settings, |
94 | const char *key); |
95 | GDK_AVAILABLE_IN_ALL |
96 | void gtk_print_settings_set (GtkPrintSettings *settings, |
97 | const char *key, |
98 | const char *value); |
99 | GDK_AVAILABLE_IN_ALL |
100 | void gtk_print_settings_unset (GtkPrintSettings *settings, |
101 | const char *key); |
102 | GDK_AVAILABLE_IN_ALL |
103 | void gtk_print_settings_foreach (GtkPrintSettings *settings, |
104 | GtkPrintSettingsFunc func, |
105 | gpointer user_data); |
106 | GDK_AVAILABLE_IN_ALL |
107 | gboolean gtk_print_settings_get_bool (GtkPrintSettings *settings, |
108 | const char *key); |
109 | GDK_AVAILABLE_IN_ALL |
110 | void gtk_print_settings_set_bool (GtkPrintSettings *settings, |
111 | const char *key, |
112 | gboolean value); |
113 | GDK_AVAILABLE_IN_ALL |
114 | double gtk_print_settings_get_double (GtkPrintSettings *settings, |
115 | const char *key); |
116 | GDK_AVAILABLE_IN_ALL |
117 | double gtk_print_settings_get_double_with_default (GtkPrintSettings *settings, |
118 | const char *key, |
119 | double def); |
120 | GDK_AVAILABLE_IN_ALL |
121 | void gtk_print_settings_set_double (GtkPrintSettings *settings, |
122 | const char *key, |
123 | double value); |
124 | GDK_AVAILABLE_IN_ALL |
125 | double gtk_print_settings_get_length (GtkPrintSettings *settings, |
126 | const char *key, |
127 | GtkUnit unit); |
128 | GDK_AVAILABLE_IN_ALL |
129 | void gtk_print_settings_set_length (GtkPrintSettings *settings, |
130 | const char *key, |
131 | double value, |
132 | GtkUnit unit); |
133 | GDK_AVAILABLE_IN_ALL |
134 | int gtk_print_settings_get_int (GtkPrintSettings *settings, |
135 | const char *key); |
136 | GDK_AVAILABLE_IN_ALL |
137 | int gtk_print_settings_get_int_with_default (GtkPrintSettings *settings, |
138 | const char *key, |
139 | int def); |
140 | GDK_AVAILABLE_IN_ALL |
141 | void gtk_print_settings_set_int (GtkPrintSettings *settings, |
142 | const char *key, |
143 | int value); |
144 | |
145 | #define GTK_PRINT_SETTINGS_PRINTER "printer" |
146 | #define GTK_PRINT_SETTINGS_ORIENTATION "orientation" |
147 | #define GTK_PRINT_SETTINGS_PAPER_FORMAT "paper-format" |
148 | #define GTK_PRINT_SETTINGS_PAPER_WIDTH "paper-width" |
149 | #define GTK_PRINT_SETTINGS_PAPER_HEIGHT "paper-height" |
150 | #define GTK_PRINT_SETTINGS_N_COPIES "n-copies" |
151 | #define GTK_PRINT_SETTINGS_DEFAULT_SOURCE "default-source" |
152 | #define GTK_PRINT_SETTINGS_QUALITY "quality" |
153 | #define GTK_PRINT_SETTINGS_RESOLUTION "resolution" |
154 | #define GTK_PRINT_SETTINGS_USE_COLOR "use-color" |
155 | #define GTK_PRINT_SETTINGS_DUPLEX "duplex" |
156 | #define GTK_PRINT_SETTINGS_COLLATE "collate" |
157 | #define GTK_PRINT_SETTINGS_REVERSE "reverse" |
158 | #define GTK_PRINT_SETTINGS_MEDIA_TYPE "media-type" |
159 | #define GTK_PRINT_SETTINGS_DITHER "dither" |
160 | #define GTK_PRINT_SETTINGS_SCALE "scale" |
161 | #define GTK_PRINT_SETTINGS_PRINT_PAGES "print-pages" |
162 | #define GTK_PRINT_SETTINGS_PAGE_RANGES "page-ranges" |
163 | #define GTK_PRINT_SETTINGS_PAGE_SET "page-set" |
164 | #define GTK_PRINT_SETTINGS_FINISHINGS "finishings" |
165 | #define GTK_PRINT_SETTINGS_NUMBER_UP "number-up" |
166 | #define GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT "number-up-layout" |
167 | #define GTK_PRINT_SETTINGS_OUTPUT_BIN "output-bin" |
168 | #define GTK_PRINT_SETTINGS_RESOLUTION_X "resolution-x" |
169 | #define GTK_PRINT_SETTINGS_RESOLUTION_Y "resolution-y" |
170 | #define GTK_PRINT_SETTINGS_PRINTER_LPI "printer-lpi" |
171 | |
172 | /** |
173 | * GTK_PRINT_SETTINGS_OUTPUT_DIR: |
174 | * |
175 | * The key used by the “Print to file” printer to store the |
176 | * directory to which the output should be written. |
177 | */ |
178 | #define GTK_PRINT_SETTINGS_OUTPUT_DIR "output-dir" |
179 | |
180 | /** |
181 | * GTK_PRINT_SETTINGS_OUTPUT_BASENAME: |
182 | * |
183 | * The key used by the “Print to file” printer to store the file |
184 | * name of the output without the path to the directory and the |
185 | * file extension. |
186 | */ |
187 | #define GTK_PRINT_SETTINGS_OUTPUT_BASENAME "output-basename" |
188 | |
189 | /** |
190 | * GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT: |
191 | * |
192 | * The key used by the “Print to file” printer to store the format |
193 | * of the output. The supported values are “PS” and “PDF”. |
194 | */ |
195 | #define GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT "output-file-format" |
196 | |
197 | /** |
198 | * GTK_PRINT_SETTINGS_OUTPUT_URI: |
199 | * |
200 | * The key used by the “Print to file” printer to store the URI |
201 | * to which the output should be written. GTK itself supports |
202 | * only “file://” URIs. |
203 | */ |
204 | #define GTK_PRINT_SETTINGS_OUTPUT_URI "output-uri" |
205 | |
206 | #define GTK_PRINT_SETTINGS_WIN32_DRIVER_VERSION "win32-driver-version" |
207 | #define "win32-driver-extra" |
208 | |
209 | /* Helpers: */ |
210 | |
211 | GDK_AVAILABLE_IN_ALL |
212 | const char * gtk_print_settings_get_printer (GtkPrintSettings *settings); |
213 | GDK_AVAILABLE_IN_ALL |
214 | void gtk_print_settings_set_printer (GtkPrintSettings *settings, |
215 | const char *printer); |
216 | GDK_AVAILABLE_IN_ALL |
217 | GtkPageOrientation gtk_print_settings_get_orientation (GtkPrintSettings *settings); |
218 | GDK_AVAILABLE_IN_ALL |
219 | void gtk_print_settings_set_orientation (GtkPrintSettings *settings, |
220 | GtkPageOrientation orientation); |
221 | GDK_AVAILABLE_IN_ALL |
222 | GtkPaperSize * gtk_print_settings_get_paper_size (GtkPrintSettings *settings); |
223 | GDK_AVAILABLE_IN_ALL |
224 | void gtk_print_settings_set_paper_size (GtkPrintSettings *settings, |
225 | GtkPaperSize *paper_size); |
226 | GDK_AVAILABLE_IN_ALL |
227 | double gtk_print_settings_get_paper_width (GtkPrintSettings *settings, |
228 | GtkUnit unit); |
229 | GDK_AVAILABLE_IN_ALL |
230 | void gtk_print_settings_set_paper_width (GtkPrintSettings *settings, |
231 | double width, |
232 | GtkUnit unit); |
233 | GDK_AVAILABLE_IN_ALL |
234 | double gtk_print_settings_get_paper_height (GtkPrintSettings *settings, |
235 | GtkUnit unit); |
236 | GDK_AVAILABLE_IN_ALL |
237 | void gtk_print_settings_set_paper_height (GtkPrintSettings *settings, |
238 | double height, |
239 | GtkUnit unit); |
240 | GDK_AVAILABLE_IN_ALL |
241 | gboolean gtk_print_settings_get_use_color (GtkPrintSettings *settings); |
242 | GDK_AVAILABLE_IN_ALL |
243 | void gtk_print_settings_set_use_color (GtkPrintSettings *settings, |
244 | gboolean use_color); |
245 | GDK_AVAILABLE_IN_ALL |
246 | gboolean gtk_print_settings_get_collate (GtkPrintSettings *settings); |
247 | GDK_AVAILABLE_IN_ALL |
248 | void gtk_print_settings_set_collate (GtkPrintSettings *settings, |
249 | gboolean collate); |
250 | GDK_AVAILABLE_IN_ALL |
251 | gboolean gtk_print_settings_get_reverse (GtkPrintSettings *settings); |
252 | GDK_AVAILABLE_IN_ALL |
253 | void gtk_print_settings_set_reverse (GtkPrintSettings *settings, |
254 | gboolean reverse); |
255 | GDK_AVAILABLE_IN_ALL |
256 | GtkPrintDuplex gtk_print_settings_get_duplex (GtkPrintSettings *settings); |
257 | GDK_AVAILABLE_IN_ALL |
258 | void gtk_print_settings_set_duplex (GtkPrintSettings *settings, |
259 | GtkPrintDuplex duplex); |
260 | GDK_AVAILABLE_IN_ALL |
261 | GtkPrintQuality gtk_print_settings_get_quality (GtkPrintSettings *settings); |
262 | GDK_AVAILABLE_IN_ALL |
263 | void gtk_print_settings_set_quality (GtkPrintSettings *settings, |
264 | GtkPrintQuality quality); |
265 | GDK_AVAILABLE_IN_ALL |
266 | int gtk_print_settings_get_n_copies (GtkPrintSettings *settings); |
267 | GDK_AVAILABLE_IN_ALL |
268 | void gtk_print_settings_set_n_copies (GtkPrintSettings *settings, |
269 | int num_copies); |
270 | GDK_AVAILABLE_IN_ALL |
271 | int gtk_print_settings_get_number_up (GtkPrintSettings *settings); |
272 | GDK_AVAILABLE_IN_ALL |
273 | void gtk_print_settings_set_number_up (GtkPrintSettings *settings, |
274 | int number_up); |
275 | GDK_AVAILABLE_IN_ALL |
276 | GtkNumberUpLayout gtk_print_settings_get_number_up_layout (GtkPrintSettings *settings); |
277 | GDK_AVAILABLE_IN_ALL |
278 | void gtk_print_settings_set_number_up_layout (GtkPrintSettings *settings, |
279 | GtkNumberUpLayout number_up_layout); |
280 | GDK_AVAILABLE_IN_ALL |
281 | int gtk_print_settings_get_resolution (GtkPrintSettings *settings); |
282 | GDK_AVAILABLE_IN_ALL |
283 | void gtk_print_settings_set_resolution (GtkPrintSettings *settings, |
284 | int resolution); |
285 | GDK_AVAILABLE_IN_ALL |
286 | int gtk_print_settings_get_resolution_x (GtkPrintSettings *settings); |
287 | GDK_AVAILABLE_IN_ALL |
288 | int gtk_print_settings_get_resolution_y (GtkPrintSettings *settings); |
289 | GDK_AVAILABLE_IN_ALL |
290 | void gtk_print_settings_set_resolution_xy (GtkPrintSettings *settings, |
291 | int resolution_x, |
292 | int resolution_y); |
293 | GDK_AVAILABLE_IN_ALL |
294 | double gtk_print_settings_get_printer_lpi (GtkPrintSettings *settings); |
295 | GDK_AVAILABLE_IN_ALL |
296 | void gtk_print_settings_set_printer_lpi (GtkPrintSettings *settings, |
297 | double lpi); |
298 | GDK_AVAILABLE_IN_ALL |
299 | double gtk_print_settings_get_scale (GtkPrintSettings *settings); |
300 | GDK_AVAILABLE_IN_ALL |
301 | void gtk_print_settings_set_scale (GtkPrintSettings *settings, |
302 | double scale); |
303 | GDK_AVAILABLE_IN_ALL |
304 | GtkPrintPages gtk_print_settings_get_print_pages (GtkPrintSettings *settings); |
305 | GDK_AVAILABLE_IN_ALL |
306 | void gtk_print_settings_set_print_pages (GtkPrintSettings *settings, |
307 | GtkPrintPages pages); |
308 | GDK_AVAILABLE_IN_ALL |
309 | GtkPageRange * gtk_print_settings_get_page_ranges (GtkPrintSettings *settings, |
310 | int *num_ranges); |
311 | GDK_AVAILABLE_IN_ALL |
312 | void gtk_print_settings_set_page_ranges (GtkPrintSettings *settings, |
313 | GtkPageRange *page_ranges, |
314 | int num_ranges); |
315 | GDK_AVAILABLE_IN_ALL |
316 | GtkPageSet gtk_print_settings_get_page_set (GtkPrintSettings *settings); |
317 | GDK_AVAILABLE_IN_ALL |
318 | void gtk_print_settings_set_page_set (GtkPrintSettings *settings, |
319 | GtkPageSet page_set); |
320 | GDK_AVAILABLE_IN_ALL |
321 | const char * gtk_print_settings_get_default_source (GtkPrintSettings *settings); |
322 | GDK_AVAILABLE_IN_ALL |
323 | void gtk_print_settings_set_default_source (GtkPrintSettings *settings, |
324 | const char *default_source); |
325 | GDK_AVAILABLE_IN_ALL |
326 | const char * gtk_print_settings_get_media_type (GtkPrintSettings *settings); |
327 | GDK_AVAILABLE_IN_ALL |
328 | void gtk_print_settings_set_media_type (GtkPrintSettings *settings, |
329 | const char *media_type); |
330 | GDK_AVAILABLE_IN_ALL |
331 | const char * gtk_print_settings_get_dither (GtkPrintSettings *settings); |
332 | GDK_AVAILABLE_IN_ALL |
333 | void gtk_print_settings_set_dither (GtkPrintSettings *settings, |
334 | const char *dither); |
335 | GDK_AVAILABLE_IN_ALL |
336 | const char * gtk_print_settings_get_finishings (GtkPrintSettings *settings); |
337 | GDK_AVAILABLE_IN_ALL |
338 | void gtk_print_settings_set_finishings (GtkPrintSettings *settings, |
339 | const char *finishings); |
340 | GDK_AVAILABLE_IN_ALL |
341 | const char * gtk_print_settings_get_output_bin (GtkPrintSettings *settings); |
342 | GDK_AVAILABLE_IN_ALL |
343 | void gtk_print_settings_set_output_bin (GtkPrintSettings *settings, |
344 | const char *output_bin); |
345 | |
346 | GDK_AVAILABLE_IN_ALL |
347 | GVariant *gtk_print_settings_to_gvariant (GtkPrintSettings *settings); |
348 | GDK_AVAILABLE_IN_ALL |
349 | GtkPrintSettings *gtk_print_settings_new_from_gvariant (GVariant *variant); |
350 | |
351 | |
352 | G_END_DECLS |
353 | |
354 | #endif /* __GTK_PRINT_SETTINGS_H__ */ |
355 | |