gtk/auto/
page_setup.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 gtk_sys;
8use std;
9use std::fmt;
10use std::ptr;
11use Error;
12use PageOrientation;
13use PaperSize;
14use Unit;
15
16glib_wrapper! {
17    pub struct PageSetup(Object<gtk_sys::GtkPageSetup, PageSetupClass>);
18
19    match fn {
20        get_type => || gtk_sys::gtk_page_setup_get_type(),
21    }
22}
23
24impl PageSetup {
25    pub fn new() -> PageSetup {
26        assert_initialized_main_thread!();
27        unsafe { from_glib_full(gtk_sys::gtk_page_setup_new()) }
28    }
29
30    pub fn new_from_file<P: AsRef<std::path::Path>>(file_name: P) -> Result<PageSetup, Error> {
31        assert_initialized_main_thread!();
32        unsafe {
33            let mut error = ptr::null_mut();
34            let ret = gtk_sys::gtk_page_setup_new_from_file(
35                file_name.as_ref().to_glib_none().0,
36                &mut error,
37            );
38            if error.is_null() {
39                Ok(from_glib_full(ret))
40            } else {
41                Err(from_glib_full(error))
42            }
43        }
44    }
45
46    #[cfg(any(feature = "v3_22", feature = "dox"))]
47    pub fn new_from_gvariant(variant: &glib::Variant) -> PageSetup {
48        assert_initialized_main_thread!();
49        unsafe {
50            from_glib_full(gtk_sys::gtk_page_setup_new_from_gvariant(
51                variant.to_glib_none().0,
52            ))
53        }
54    }
55
56    pub fn new_from_key_file(
57        key_file: &glib::KeyFile,
58        group_name: Option<&str>,
59    ) -> Result<PageSetup, Error> {
60        assert_initialized_main_thread!();
61        unsafe {
62            let mut error = ptr::null_mut();
63            let ret = gtk_sys::gtk_page_setup_new_from_key_file(
64                key_file.to_glib_none().0,
65                group_name.to_glib_none().0,
66                &mut error,
67            );
68            if error.is_null() {
69                Ok(from_glib_full(ret))
70            } else {
71                Err(from_glib_full(error))
72            }
73        }
74    }
75
76    pub fn copy(&self) -> Option<PageSetup> {
77        unsafe { from_glib_full(gtk_sys::gtk_page_setup_copy(self.to_glib_none().0)) }
78    }
79
80    pub fn get_bottom_margin(&self, unit: Unit) -> f64 {
81        unsafe { gtk_sys::gtk_page_setup_get_bottom_margin(self.to_glib_none().0, unit.to_glib()) }
82    }
83
84    pub fn get_left_margin(&self, unit: Unit) -> f64 {
85        unsafe { gtk_sys::gtk_page_setup_get_left_margin(self.to_glib_none().0, unit.to_glib()) }
86    }
87
88    pub fn get_orientation(&self) -> PageOrientation {
89        unsafe {
90            from_glib(gtk_sys::gtk_page_setup_get_orientation(
91                self.to_glib_none().0,
92            ))
93        }
94    }
95
96    pub fn get_page_height(&self, unit: Unit) -> f64 {
97        unsafe { gtk_sys::gtk_page_setup_get_page_height(self.to_glib_none().0, unit.to_glib()) }
98    }
99
100    pub fn get_page_width(&self, unit: Unit) -> f64 {
101        unsafe { gtk_sys::gtk_page_setup_get_page_width(self.to_glib_none().0, unit.to_glib()) }
102    }
103
104    pub fn get_paper_height(&self, unit: Unit) -> f64 {
105        unsafe { gtk_sys::gtk_page_setup_get_paper_height(self.to_glib_none().0, unit.to_glib()) }
106    }
107
108    pub fn get_paper_size(&self) -> PaperSize {
109        unsafe {
110            from_glib_none(gtk_sys::gtk_page_setup_get_paper_size(
111                self.to_glib_none().0,
112            ))
113        }
114    }
115
116    pub fn get_paper_width(&self, unit: Unit) -> f64 {
117        unsafe { gtk_sys::gtk_page_setup_get_paper_width(self.to_glib_none().0, unit.to_glib()) }
118    }
119
120    pub fn get_right_margin(&self, unit: Unit) -> f64 {
121        unsafe { gtk_sys::gtk_page_setup_get_right_margin(self.to_glib_none().0, unit.to_glib()) }
122    }
123
124    pub fn get_top_margin(&self, unit: Unit) -> f64 {
125        unsafe { gtk_sys::gtk_page_setup_get_top_margin(self.to_glib_none().0, unit.to_glib()) }
126    }
127
128    pub fn load_file<P: AsRef<std::path::Path>>(&self, file_name: P) -> Result<(), Error> {
129        unsafe {
130            let mut error = ptr::null_mut();
131            let _ = gtk_sys::gtk_page_setup_load_file(
132                self.to_glib_none().0,
133                file_name.as_ref().to_glib_none().0,
134                &mut error,
135            );
136            if error.is_null() {
137                Ok(())
138            } else {
139                Err(from_glib_full(error))
140            }
141        }
142    }
143
144    pub fn load_key_file(
145        &self,
146        key_file: &glib::KeyFile,
147        group_name: Option<&str>,
148    ) -> Result<(), Error> {
149        unsafe {
150            let mut error = ptr::null_mut();
151            let _ = gtk_sys::gtk_page_setup_load_key_file(
152                self.to_glib_none().0,
153                key_file.to_glib_none().0,
154                group_name.to_glib_none().0,
155                &mut error,
156            );
157            if error.is_null() {
158                Ok(())
159            } else {
160                Err(from_glib_full(error))
161            }
162        }
163    }
164
165    pub fn set_bottom_margin(&self, margin: f64, unit: Unit) {
166        unsafe {
167            gtk_sys::gtk_page_setup_set_bottom_margin(
168                self.to_glib_none().0,
169                margin,
170                unit.to_glib(),
171            );
172        }
173    }
174
175    pub fn set_left_margin(&self, margin: f64, unit: Unit) {
176        unsafe {
177            gtk_sys::gtk_page_setup_set_left_margin(self.to_glib_none().0, margin, unit.to_glib());
178        }
179    }
180
181    pub fn set_orientation(&self, orientation: PageOrientation) {
182        unsafe {
183            gtk_sys::gtk_page_setup_set_orientation(self.to_glib_none().0, orientation.to_glib());
184        }
185    }
186
187    pub fn set_paper_size(&self, size: &PaperSize) {
188        unsafe {
189            gtk_sys::gtk_page_setup_set_paper_size(
190                self.to_glib_none().0,
191                mut_override(size.to_glib_none().0),
192            );
193        }
194    }
195
196    pub fn set_paper_size_and_default_margins(&self, size: &PaperSize) {
197        unsafe {
198            gtk_sys::gtk_page_setup_set_paper_size_and_default_margins(
199                self.to_glib_none().0,
200                mut_override(size.to_glib_none().0),
201            );
202        }
203    }
204
205    pub fn set_right_margin(&self, margin: f64, unit: Unit) {
206        unsafe {
207            gtk_sys::gtk_page_setup_set_right_margin(self.to_glib_none().0, margin, unit.to_glib());
208        }
209    }
210
211    pub fn set_top_margin(&self, margin: f64, unit: Unit) {
212        unsafe {
213            gtk_sys::gtk_page_setup_set_top_margin(self.to_glib_none().0, margin, unit.to_glib());
214        }
215    }
216
217    pub fn to_file<P: AsRef<std::path::Path>>(&self, file_name: P) -> Result<(), Error> {
218        unsafe {
219            let mut error = ptr::null_mut();
220            let _ = gtk_sys::gtk_page_setup_to_file(
221                self.to_glib_none().0,
222                file_name.as_ref().to_glib_none().0,
223                &mut error,
224            );
225            if error.is_null() {
226                Ok(())
227            } else {
228                Err(from_glib_full(error))
229            }
230        }
231    }
232
233    #[cfg(any(feature = "v3_22", feature = "dox"))]
234    pub fn to_gvariant(&self) -> Option<glib::Variant> {
235        unsafe { from_glib_none(gtk_sys::gtk_page_setup_to_gvariant(self.to_glib_none().0)) }
236    }
237
238    pub fn to_key_file(&self, key_file: &glib::KeyFile, group_name: Option<&str>) {
239        unsafe {
240            gtk_sys::gtk_page_setup_to_key_file(
241                self.to_glib_none().0,
242                key_file.to_glib_none().0,
243                group_name.to_glib_none().0,
244            );
245        }
246    }
247}
248
249impl Default for PageSetup {
250    fn default() -> Self {
251        Self::new()
252    }
253}
254
255impl fmt::Display for PageSetup {
256    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
257        write!(f, "PageSetup")
258    }
259}