1use crate::{
6 ffi, NumberUpLayout, PageOrientation, PageRange, PageSet, PaperSize, PrintDuplex, PrintPages,
7 PrintQuality, Unit,
8};
9use glib::translate::*;
10
11glib::wrapper! {
12 #[doc(alias = "GtkPrintSettings")]
13 pub struct PrintSettings(Object<ffi::GtkPrintSettings>);
14
15 match fn {
16 type_ => || ffi::gtk_print_settings_get_type(),
17 }
18}
19
20impl PrintSettings {
21 #[doc(alias = "gtk_print_settings_new")]
22 pub fn new() -> PrintSettings {
23 assert_initialized_main_thread!();
24 unsafe { from_glib_full(ffi::gtk_print_settings_new()) }
25 }
26
27 #[doc(alias = "gtk_print_settings_new_from_file")]
28 #[doc(alias = "new_from_file")]
29 pub fn from_file(file_name: impl AsRef<std::path::Path>) -> Result<PrintSettings, glib::Error> {
30 assert_initialized_main_thread!();
31 unsafe {
32 let mut error = std::ptr::null_mut();
33 let ret = ffi::gtk_print_settings_new_from_file(
34 file_name.as_ref().to_glib_none().0,
35 &mut error,
36 );
37 if error.is_null() {
38 Ok(from_glib_full(ret))
39 } else {
40 Err(from_glib_full(error))
41 }
42 }
43 }
44
45 #[doc(alias = "gtk_print_settings_new_from_gvariant")]
46 #[doc(alias = "new_from_gvariant")]
47 pub fn from_gvariant(variant: &glib::Variant) -> PrintSettings {
48 assert_initialized_main_thread!();
49 unsafe {
50 from_glib_full(ffi::gtk_print_settings_new_from_gvariant(
51 variant.to_glib_none().0,
52 ))
53 }
54 }
55
56 #[doc(alias = "gtk_print_settings_new_from_key_file")]
57 #[doc(alias = "new_from_key_file")]
58 pub fn from_key_file(
59 key_file: &glib::KeyFile,
60 group_name: Option<&str>,
61 ) -> Result<PrintSettings, glib::Error> {
62 assert_initialized_main_thread!();
63 unsafe {
64 let mut error = std::ptr::null_mut();
65 let ret = ffi::gtk_print_settings_new_from_key_file(
66 key_file.to_glib_none().0,
67 group_name.to_glib_none().0,
68 &mut error,
69 );
70 if error.is_null() {
71 Ok(from_glib_full(ret))
72 } else {
73 Err(from_glib_full(error))
74 }
75 }
76 }
77
78 #[doc(alias = "gtk_print_settings_copy")]
79 #[must_use]
80 pub fn copy(&self) -> PrintSettings {
81 unsafe { from_glib_full(ffi::gtk_print_settings_copy(self.to_glib_none().0)) }
82 }
83
84 #[doc(alias = "gtk_print_settings_foreach")]
85 pub fn foreach<P: FnMut(&str, &str)>(&self, func: P) {
86 let mut func_data: P = func;
87 unsafe extern "C" fn func_func<P: FnMut(&str, &str)>(
88 key: *const std::ffi::c_char,
89 value: *const std::ffi::c_char,
90 user_data: glib::ffi::gpointer,
91 ) {
92 let key: Borrowed<glib::GString> = from_glib_borrow(key);
93 let value: Borrowed<glib::GString> = from_glib_borrow(value);
94 let callback = user_data as *mut P;
95 (*callback)(key.as_str(), value.as_str())
96 }
97 let func = Some(func_func::<P> as _);
98 let super_callback0: &mut P = &mut func_data;
99 unsafe {
100 ffi::gtk_print_settings_foreach(
101 self.to_glib_none().0,
102 func,
103 super_callback0 as *mut _ as *mut _,
104 );
105 }
106 }
107
108 #[doc(alias = "gtk_print_settings_get")]
109 pub fn get(&self, key: &str) -> Option<glib::GString> {
110 unsafe {
111 from_glib_none(ffi::gtk_print_settings_get(
112 self.to_glib_none().0,
113 key.to_glib_none().0,
114 ))
115 }
116 }
117
118 #[doc(alias = "gtk_print_settings_get_bool")]
119 #[doc(alias = "get_bool")]
120 pub fn bool(&self, key: &str) -> bool {
121 unsafe {
122 from_glib(ffi::gtk_print_settings_get_bool(
123 self.to_glib_none().0,
124 key.to_glib_none().0,
125 ))
126 }
127 }
128
129 #[doc(alias = "gtk_print_settings_get_collate")]
130 #[doc(alias = "get_collate")]
131 pub fn is_collate(&self) -> bool {
132 unsafe { from_glib(ffi::gtk_print_settings_get_collate(self.to_glib_none().0)) }
133 }
134
135 #[doc(alias = "gtk_print_settings_get_default_source")]
136 #[doc(alias = "get_default_source")]
137 pub fn default_source(&self) -> Option<glib::GString> {
138 unsafe {
139 from_glib_none(ffi::gtk_print_settings_get_default_source(
140 self.to_glib_none().0,
141 ))
142 }
143 }
144
145 #[doc(alias = "gtk_print_settings_get_dither")]
146 #[doc(alias = "get_dither")]
147 pub fn dither(&self) -> Option<glib::GString> {
148 unsafe { from_glib_none(ffi::gtk_print_settings_get_dither(self.to_glib_none().0)) }
149 }
150
151 #[doc(alias = "gtk_print_settings_get_double")]
152 #[doc(alias = "get_double")]
153 pub fn double(&self, key: &str) -> f64 {
154 unsafe { ffi::gtk_print_settings_get_double(self.to_glib_none().0, key.to_glib_none().0) }
155 }
156
157 #[doc(alias = "gtk_print_settings_get_double_with_default")]
158 #[doc(alias = "get_double_with_default")]
159 pub fn double_with_default(&self, key: &str, def: f64) -> f64 {
160 unsafe {
161 ffi::gtk_print_settings_get_double_with_default(
162 self.to_glib_none().0,
163 key.to_glib_none().0,
164 def,
165 )
166 }
167 }
168
169 #[doc(alias = "gtk_print_settings_get_duplex")]
170 #[doc(alias = "get_duplex")]
171 pub fn duplex(&self) -> PrintDuplex {
172 unsafe { from_glib(ffi::gtk_print_settings_get_duplex(self.to_glib_none().0)) }
173 }
174
175 #[doc(alias = "gtk_print_settings_get_finishings")]
176 #[doc(alias = "get_finishings")]
177 pub fn finishings(&self) -> Option<glib::GString> {
178 unsafe {
179 from_glib_none(ffi::gtk_print_settings_get_finishings(
180 self.to_glib_none().0,
181 ))
182 }
183 }
184
185 #[doc(alias = "gtk_print_settings_get_int")]
186 #[doc(alias = "get_int")]
187 pub fn int(&self, key: &str) -> i32 {
188 unsafe { ffi::gtk_print_settings_get_int(self.to_glib_none().0, key.to_glib_none().0) }
189 }
190
191 #[doc(alias = "gtk_print_settings_get_int_with_default")]
192 #[doc(alias = "get_int_with_default")]
193 pub fn int_with_default(&self, key: &str, def: i32) -> i32 {
194 unsafe {
195 ffi::gtk_print_settings_get_int_with_default(
196 self.to_glib_none().0,
197 key.to_glib_none().0,
198 def,
199 )
200 }
201 }
202
203 #[doc(alias = "gtk_print_settings_get_length")]
204 #[doc(alias = "get_length")]
205 pub fn length(&self, key: &str, unit: Unit) -> f64 {
206 unsafe {
207 ffi::gtk_print_settings_get_length(
208 self.to_glib_none().0,
209 key.to_glib_none().0,
210 unit.into_glib(),
211 )
212 }
213 }
214
215 #[doc(alias = "gtk_print_settings_get_media_type")]
216 #[doc(alias = "get_media_type")]
217 pub fn media_type(&self) -> Option<glib::GString> {
218 unsafe {
219 from_glib_none(ffi::gtk_print_settings_get_media_type(
220 self.to_glib_none().0,
221 ))
222 }
223 }
224
225 #[doc(alias = "gtk_print_settings_get_n_copies")]
226 #[doc(alias = "get_n_copies")]
227 pub fn n_copies(&self) -> i32 {
228 unsafe { ffi::gtk_print_settings_get_n_copies(self.to_glib_none().0) }
229 }
230
231 #[doc(alias = "gtk_print_settings_get_number_up")]
232 #[doc(alias = "get_number_up")]
233 pub fn number_up(&self) -> i32 {
234 unsafe { ffi::gtk_print_settings_get_number_up(self.to_glib_none().0) }
235 }
236
237 #[doc(alias = "gtk_print_settings_get_number_up_layout")]
238 #[doc(alias = "get_number_up_layout")]
239 pub fn number_up_layout(&self) -> NumberUpLayout {
240 unsafe {
241 from_glib(ffi::gtk_print_settings_get_number_up_layout(
242 self.to_glib_none().0,
243 ))
244 }
245 }
246
247 #[doc(alias = "gtk_print_settings_get_orientation")]
248 #[doc(alias = "get_orientation")]
249 pub fn orientation(&self) -> PageOrientation {
250 unsafe {
251 from_glib(ffi::gtk_print_settings_get_orientation(
252 self.to_glib_none().0,
253 ))
254 }
255 }
256
257 #[doc(alias = "gtk_print_settings_get_output_bin")]
258 #[doc(alias = "get_output_bin")]
259 pub fn output_bin(&self) -> Option<glib::GString> {
260 unsafe {
261 from_glib_none(ffi::gtk_print_settings_get_output_bin(
262 self.to_glib_none().0,
263 ))
264 }
265 }
266
267 #[doc(alias = "gtk_print_settings_get_page_ranges")]
268 #[doc(alias = "get_page_ranges")]
269 pub fn page_ranges(&self) -> Vec<PageRange> {
270 unsafe {
271 let mut num_ranges = std::mem::MaybeUninit::uninit();
272 let ret = FromGlibContainer::from_glib_full_num(
273 ffi::gtk_print_settings_get_page_ranges(
274 self.to_glib_none().0,
275 num_ranges.as_mut_ptr(),
276 ),
277 num_ranges.assume_init() as _,
278 );
279 ret
280 }
281 }
282
283 #[doc(alias = "gtk_print_settings_get_page_set")]
284 #[doc(alias = "get_page_set")]
285 pub fn page_set(&self) -> PageSet {
286 unsafe { from_glib(ffi::gtk_print_settings_get_page_set(self.to_glib_none().0)) }
287 }
288
289 #[doc(alias = "gtk_print_settings_get_paper_height")]
290 #[doc(alias = "get_paper_height")]
291 pub fn paper_height(&self, unit: Unit) -> f64 {
292 unsafe { ffi::gtk_print_settings_get_paper_height(self.to_glib_none().0, unit.into_glib()) }
293 }
294
295 #[doc(alias = "gtk_print_settings_get_paper_size")]
296 #[doc(alias = "get_paper_size")]
297 pub fn paper_size(&self) -> Option<PaperSize> {
298 unsafe {
299 from_glib_full(ffi::gtk_print_settings_get_paper_size(
300 self.to_glib_none().0,
301 ))
302 }
303 }
304
305 #[doc(alias = "gtk_print_settings_get_paper_width")]
306 #[doc(alias = "get_paper_width")]
307 pub fn paper_width(&self, unit: Unit) -> f64 {
308 unsafe { ffi::gtk_print_settings_get_paper_width(self.to_glib_none().0, unit.into_glib()) }
309 }
310
311 #[doc(alias = "gtk_print_settings_get_print_pages")]
312 #[doc(alias = "get_print_pages")]
313 pub fn print_pages(&self) -> PrintPages {
314 unsafe {
315 from_glib(ffi::gtk_print_settings_get_print_pages(
316 self.to_glib_none().0,
317 ))
318 }
319 }
320
321 #[doc(alias = "gtk_print_settings_get_printer")]
322 #[doc(alias = "get_printer")]
323 pub fn printer(&self) -> Option<glib::GString> {
324 unsafe { from_glib_none(ffi::gtk_print_settings_get_printer(self.to_glib_none().0)) }
325 }
326
327 #[doc(alias = "gtk_print_settings_get_printer_lpi")]
328 #[doc(alias = "get_printer_lpi")]
329 pub fn printer_lpi(&self) -> f64 {
330 unsafe { ffi::gtk_print_settings_get_printer_lpi(self.to_glib_none().0) }
331 }
332
333 #[doc(alias = "gtk_print_settings_get_quality")]
334 #[doc(alias = "get_quality")]
335 pub fn quality(&self) -> PrintQuality {
336 unsafe { from_glib(ffi::gtk_print_settings_get_quality(self.to_glib_none().0)) }
337 }
338
339 #[doc(alias = "gtk_print_settings_get_resolution")]
340 #[doc(alias = "get_resolution")]
341 pub fn resolution(&self) -> i32 {
342 unsafe { ffi::gtk_print_settings_get_resolution(self.to_glib_none().0) }
343 }
344
345 #[doc(alias = "gtk_print_settings_get_resolution_x")]
346 #[doc(alias = "get_resolution_x")]
347 pub fn resolution_x(&self) -> i32 {
348 unsafe { ffi::gtk_print_settings_get_resolution_x(self.to_glib_none().0) }
349 }
350
351 #[doc(alias = "gtk_print_settings_get_resolution_y")]
352 #[doc(alias = "get_resolution_y")]
353 pub fn resolution_y(&self) -> i32 {
354 unsafe { ffi::gtk_print_settings_get_resolution_y(self.to_glib_none().0) }
355 }
356
357 #[doc(alias = "gtk_print_settings_get_reverse")]
358 #[doc(alias = "get_reverse")]
359 pub fn is_reverse(&self) -> bool {
360 unsafe { from_glib(ffi::gtk_print_settings_get_reverse(self.to_glib_none().0)) }
361 }
362
363 #[doc(alias = "gtk_print_settings_get_scale")]
364 #[doc(alias = "get_scale")]
365 pub fn scale(&self) -> f64 {
366 unsafe { ffi::gtk_print_settings_get_scale(self.to_glib_none().0) }
367 }
368
369 #[doc(alias = "gtk_print_settings_get_use_color")]
370 #[doc(alias = "get_use_color")]
371 pub fn uses_color(&self) -> bool {
372 unsafe { from_glib(ffi::gtk_print_settings_get_use_color(self.to_glib_none().0)) }
373 }
374
375 #[doc(alias = "gtk_print_settings_has_key")]
376 pub fn has_key(&self, key: &str) -> bool {
377 unsafe {
378 from_glib(ffi::gtk_print_settings_has_key(
379 self.to_glib_none().0,
380 key.to_glib_none().0,
381 ))
382 }
383 }
384
385 #[doc(alias = "gtk_print_settings_load_file")]
386 pub fn load_file(&self, file_name: impl AsRef<std::path::Path>) -> Result<(), glib::Error> {
387 unsafe {
388 let mut error = std::ptr::null_mut();
389 let is_ok = ffi::gtk_print_settings_load_file(
390 self.to_glib_none().0,
391 file_name.as_ref().to_glib_none().0,
392 &mut error,
393 );
394 debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
395 if error.is_null() {
396 Ok(())
397 } else {
398 Err(from_glib_full(error))
399 }
400 }
401 }
402
403 #[doc(alias = "gtk_print_settings_load_key_file")]
404 pub fn load_key_file(
405 &self,
406 key_file: &glib::KeyFile,
407 group_name: Option<&str>,
408 ) -> Result<(), glib::Error> {
409 unsafe {
410 let mut error = std::ptr::null_mut();
411 let is_ok = ffi::gtk_print_settings_load_key_file(
412 self.to_glib_none().0,
413 key_file.to_glib_none().0,
414 group_name.to_glib_none().0,
415 &mut error,
416 );
417 debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
418 if error.is_null() {
419 Ok(())
420 } else {
421 Err(from_glib_full(error))
422 }
423 }
424 }
425
426 #[doc(alias = "gtk_print_settings_set")]
427 pub fn set(&self, key: &str, value: Option<&str>) {
428 unsafe {
429 ffi::gtk_print_settings_set(
430 self.to_glib_none().0,
431 key.to_glib_none().0,
432 value.to_glib_none().0,
433 );
434 }
435 }
436
437 #[doc(alias = "gtk_print_settings_set_bool")]
438 pub fn set_bool(&self, key: &str, value: bool) {
439 unsafe {
440 ffi::gtk_print_settings_set_bool(
441 self.to_glib_none().0,
442 key.to_glib_none().0,
443 value.into_glib(),
444 );
445 }
446 }
447
448 #[doc(alias = "gtk_print_settings_set_collate")]
449 pub fn set_collate(&self, collate: bool) {
450 unsafe {
451 ffi::gtk_print_settings_set_collate(self.to_glib_none().0, collate.into_glib());
452 }
453 }
454
455 #[doc(alias = "gtk_print_settings_set_default_source")]
456 pub fn set_default_source(&self, default_source: &str) {
457 unsafe {
458 ffi::gtk_print_settings_set_default_source(
459 self.to_glib_none().0,
460 default_source.to_glib_none().0,
461 );
462 }
463 }
464
465 #[doc(alias = "gtk_print_settings_set_dither")]
466 pub fn set_dither(&self, dither: &str) {
467 unsafe {
468 ffi::gtk_print_settings_set_dither(self.to_glib_none().0, dither.to_glib_none().0);
469 }
470 }
471
472 #[doc(alias = "gtk_print_settings_set_double")]
473 pub fn set_double(&self, key: &str, value: f64) {
474 unsafe {
475 ffi::gtk_print_settings_set_double(self.to_glib_none().0, key.to_glib_none().0, value);
476 }
477 }
478
479 #[doc(alias = "gtk_print_settings_set_duplex")]
480 pub fn set_duplex(&self, duplex: PrintDuplex) {
481 unsafe {
482 ffi::gtk_print_settings_set_duplex(self.to_glib_none().0, duplex.into_glib());
483 }
484 }
485
486 #[doc(alias = "gtk_print_settings_set_finishings")]
487 pub fn set_finishings(&self, finishings: &str) {
488 unsafe {
489 ffi::gtk_print_settings_set_finishings(
490 self.to_glib_none().0,
491 finishings.to_glib_none().0,
492 );
493 }
494 }
495
496 #[doc(alias = "gtk_print_settings_set_int")]
497 pub fn set_int(&self, key: &str, value: i32) {
498 unsafe {
499 ffi::gtk_print_settings_set_int(self.to_glib_none().0, key.to_glib_none().0, value);
500 }
501 }
502
503 #[doc(alias = "gtk_print_settings_set_length")]
504 pub fn set_length(&self, key: &str, value: f64, unit: Unit) {
505 unsafe {
506 ffi::gtk_print_settings_set_length(
507 self.to_glib_none().0,
508 key.to_glib_none().0,
509 value,
510 unit.into_glib(),
511 );
512 }
513 }
514
515 #[doc(alias = "gtk_print_settings_set_media_type")]
516 pub fn set_media_type(&self, media_type: &str) {
517 unsafe {
518 ffi::gtk_print_settings_set_media_type(
519 self.to_glib_none().0,
520 media_type.to_glib_none().0,
521 );
522 }
523 }
524
525 #[doc(alias = "gtk_print_settings_set_n_copies")]
526 pub fn set_n_copies(&self, num_copies: i32) {
527 unsafe {
528 ffi::gtk_print_settings_set_n_copies(self.to_glib_none().0, num_copies);
529 }
530 }
531
532 #[doc(alias = "gtk_print_settings_set_number_up")]
533 pub fn set_number_up(&self, number_up: i32) {
534 unsafe {
535 ffi::gtk_print_settings_set_number_up(self.to_glib_none().0, number_up);
536 }
537 }
538
539 #[doc(alias = "gtk_print_settings_set_number_up_layout")]
540 pub fn set_number_up_layout(&self, number_up_layout: NumberUpLayout) {
541 unsafe {
542 ffi::gtk_print_settings_set_number_up_layout(
543 self.to_glib_none().0,
544 number_up_layout.into_glib(),
545 );
546 }
547 }
548
549 #[doc(alias = "gtk_print_settings_set_orientation")]
550 pub fn set_orientation(&self, orientation: PageOrientation) {
551 unsafe {
552 ffi::gtk_print_settings_set_orientation(self.to_glib_none().0, orientation.into_glib());
553 }
554 }
555
556 #[doc(alias = "gtk_print_settings_set_output_bin")]
557 pub fn set_output_bin(&self, output_bin: &str) {
558 unsafe {
559 ffi::gtk_print_settings_set_output_bin(
560 self.to_glib_none().0,
561 output_bin.to_glib_none().0,
562 );
563 }
564 }
565
566 #[doc(alias = "gtk_print_settings_set_page_set")]
567 pub fn set_page_set(&self, page_set: PageSet) {
568 unsafe {
569 ffi::gtk_print_settings_set_page_set(self.to_glib_none().0, page_set.into_glib());
570 }
571 }
572
573 #[doc(alias = "gtk_print_settings_set_paper_height")]
574 pub fn set_paper_height(&self, height: f64, unit: Unit) {
575 unsafe {
576 ffi::gtk_print_settings_set_paper_height(
577 self.to_glib_none().0,
578 height,
579 unit.into_glib(),
580 );
581 }
582 }
583
584 #[doc(alias = "gtk_print_settings_set_paper_size")]
585 pub fn set_paper_size(&self, paper_size: &PaperSize) {
586 unsafe {
587 ffi::gtk_print_settings_set_paper_size(
588 self.to_glib_none().0,
589 mut_override(paper_size.to_glib_none().0),
590 );
591 }
592 }
593
594 #[doc(alias = "gtk_print_settings_set_paper_width")]
595 pub fn set_paper_width(&self, width: f64, unit: Unit) {
596 unsafe {
597 ffi::gtk_print_settings_set_paper_width(self.to_glib_none().0, width, unit.into_glib());
598 }
599 }
600
601 #[doc(alias = "gtk_print_settings_set_print_pages")]
602 pub fn set_print_pages(&self, pages: PrintPages) {
603 unsafe {
604 ffi::gtk_print_settings_set_print_pages(self.to_glib_none().0, pages.into_glib());
605 }
606 }
607
608 #[doc(alias = "gtk_print_settings_set_printer")]
609 pub fn set_printer(&self, printer: &str) {
610 unsafe {
611 ffi::gtk_print_settings_set_printer(self.to_glib_none().0, printer.to_glib_none().0);
612 }
613 }
614
615 #[doc(alias = "gtk_print_settings_set_printer_lpi")]
616 pub fn set_printer_lpi(&self, lpi: f64) {
617 unsafe {
618 ffi::gtk_print_settings_set_printer_lpi(self.to_glib_none().0, lpi);
619 }
620 }
621
622 #[doc(alias = "gtk_print_settings_set_quality")]
623 pub fn set_quality(&self, quality: PrintQuality) {
624 unsafe {
625 ffi::gtk_print_settings_set_quality(self.to_glib_none().0, quality.into_glib());
626 }
627 }
628
629 #[doc(alias = "gtk_print_settings_set_resolution")]
630 pub fn set_resolution(&self, resolution: i32) {
631 unsafe {
632 ffi::gtk_print_settings_set_resolution(self.to_glib_none().0, resolution);
633 }
634 }
635
636 #[doc(alias = "gtk_print_settings_set_resolution_xy")]
637 pub fn set_resolution_xy(&self, resolution_x: i32, resolution_y: i32) {
638 unsafe {
639 ffi::gtk_print_settings_set_resolution_xy(
640 self.to_glib_none().0,
641 resolution_x,
642 resolution_y,
643 );
644 }
645 }
646
647 #[doc(alias = "gtk_print_settings_set_reverse")]
648 pub fn set_reverse(&self, reverse: bool) {
649 unsafe {
650 ffi::gtk_print_settings_set_reverse(self.to_glib_none().0, reverse.into_glib());
651 }
652 }
653
654 #[doc(alias = "gtk_print_settings_set_scale")]
655 pub fn set_scale(&self, scale: f64) {
656 unsafe {
657 ffi::gtk_print_settings_set_scale(self.to_glib_none().0, scale);
658 }
659 }
660
661 #[doc(alias = "gtk_print_settings_set_use_color")]
662 pub fn set_use_color(&self, use_color: bool) {
663 unsafe {
664 ffi::gtk_print_settings_set_use_color(self.to_glib_none().0, use_color.into_glib());
665 }
666 }
667
668 #[doc(alias = "gtk_print_settings_to_file")]
669 pub fn to_file(&self, file_name: impl AsRef<std::path::Path>) -> Result<(), glib::Error> {
670 unsafe {
671 let mut error = std::ptr::null_mut();
672 let is_ok = ffi::gtk_print_settings_to_file(
673 self.to_glib_none().0,
674 file_name.as_ref().to_glib_none().0,
675 &mut error,
676 );
677 debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
678 if error.is_null() {
679 Ok(())
680 } else {
681 Err(from_glib_full(error))
682 }
683 }
684 }
685
686 #[doc(alias = "gtk_print_settings_to_gvariant")]
687 pub fn to_gvariant(&self) -> glib::Variant {
688 unsafe { from_glib_none(ffi::gtk_print_settings_to_gvariant(self.to_glib_none().0)) }
689 }
690
691 #[doc(alias = "gtk_print_settings_to_key_file")]
692 pub fn to_key_file(&self, key_file: &glib::KeyFile, group_name: Option<&str>) {
693 unsafe {
694 ffi::gtk_print_settings_to_key_file(
695 self.to_glib_none().0,
696 key_file.to_glib_none().0,
697 group_name.to_glib_none().0,
698 );
699 }
700 }
701
702 #[doc(alias = "gtk_print_settings_unset")]
703 pub fn unset(&self, key: &str) {
704 unsafe {
705 ffi::gtk_print_settings_unset(self.to_glib_none().0, key.to_glib_none().0);
706 }
707 }
708}
709
710impl Default for PrintSettings {
711 fn default() -> Self {
712 Self::new()
713 }
714}