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