[go: up one dir, main page]

gtk4/auto/
print_settings.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4
5use 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}