electron_sys/interface/
web_contents_print_options.rs

1use crate::interface::{Dpi, Margins};
2use js_sys::{JsString, Number, Object};
3use wasm_bindgen::prelude::*;
4
5#[wasm_bindgen]
6#[derive(Clone, Debug, Default)]
7pub struct WebContentsPrintOptions {
8    collate: Option<bool>,
9    color: Option<bool>,
10    copies: Option<u32>,
11    device_name: Option<JsString>,
12    dpi: Option<Dpi>,
13    duplex_mode: Option<JsString>,
14    footer: Option<JsString>,
15    header: Option<JsString>,
16    landscape: Option<bool>,
17    margins: Option<Margins>,
18    page_ranges: Option<Object>,
19    pages_per_sheet: Option<u32>,
20    print_background: Option<bool>,
21    scale_factor: Option<Number>,
22    silent: Option<bool>,
23}
24
25#[wasm_bindgen]
26impl WebContentsPrintOptions {
27    #[allow(clippy::too_many_arguments)]
28    #[wasm_bindgen(constructor)]
29    pub fn new_with_values(
30        collate: Option<bool>,
31        color: Option<bool>,
32        copies: Option<u32>,
33        device_name: Option<JsString>,
34        dpi: Option<Dpi>,
35        duplex_mode: Option<JsString>,
36        footer: Option<JsString>,
37        header: Option<JsString>,
38        landscape: Option<bool>,
39        margins: Option<Margins>,
40        page_ranges: Option<Object>,
41        pages_per_sheet: Option<u32>,
42        print_background: Option<bool>,
43        scale_factor: Option<Number>,
44        silent: Option<bool>,
45    ) -> WebContentsPrintOptions {
46        WebContentsPrintOptions {
47            collate,
48            color,
49            copies,
50            device_name,
51            dpi,
52            duplex_mode,
53            footer,
54            header,
55            landscape,
56            margins,
57            page_ranges,
58            pages_per_sheet,
59            print_background,
60            scale_factor,
61            silent,
62        }
63    }
64
65    pub fn new() -> WebContentsPrintOptions {
66        Default::default()
67    }
68
69    #[wasm_bindgen(getter)]
70    pub fn collate(&self) -> Option<bool> {
71        self.collate
72    }
73
74    #[wasm_bindgen(setter)]
75    pub fn set_collate(&mut self, value: Option<bool>) {
76        self.collate = value;
77    }
78
79    #[wasm_bindgen(getter)]
80    pub fn color(&self) -> Option<bool> {
81        self.color
82    }
83
84    #[wasm_bindgen(setter)]
85    pub fn set_color(&mut self, value: Option<bool>) {
86        self.color = value;
87    }
88
89    #[wasm_bindgen(getter)]
90    pub fn copies(&self) -> Option<u32> {
91        self.copies
92    }
93
94    #[wasm_bindgen(setter)]
95    pub fn set_copies(&mut self, value: Option<u32>) {
96        self.copies = value;
97    }
98
99    #[wasm_bindgen(getter)]
100    pub fn device_name(&self) -> Option<JsString> {
101        self.device_name.clone()
102    }
103
104    #[wasm_bindgen(setter)]
105    pub fn set_device_name(&mut self, value: Option<JsString>) {
106        self.device_name = value;
107    }
108
109    #[wasm_bindgen(getter)]
110    pub fn dpi(&self) -> Option<Dpi> {
111        self.dpi
112    }
113
114    #[wasm_bindgen(setter)]
115    pub fn set_dpi(&mut self, value: Option<Dpi>) {
116        self.dpi = value;
117    }
118
119    #[wasm_bindgen(getter)]
120    pub fn duplex_mode(&self) -> Option<JsString> {
121        self.duplex_mode.clone()
122    }
123
124    #[wasm_bindgen(setter)]
125    pub fn set_duplex_mode(&mut self, value: Option<JsString>) {
126        self.duplex_mode = value;
127    }
128
129    #[wasm_bindgen(getter)]
130    pub fn footer(&self) -> Option<JsString> {
131        self.footer.clone()
132    }
133
134    #[wasm_bindgen(setter)]
135    pub fn set_footer(&mut self, value: Option<JsString>) {
136        self.footer = value;
137    }
138
139    #[wasm_bindgen(getter)]
140    pub fn header(&self) -> Option<JsString> {
141        self.header.clone()
142    }
143
144    #[wasm_bindgen(setter)]
145    pub fn set_header(&mut self, value: Option<JsString>) {
146        self.header = value;
147    }
148
149    #[wasm_bindgen(getter)]
150    pub fn landscape(&self) -> Option<bool> {
151        self.landscape
152    }
153
154    #[wasm_bindgen(setter)]
155    pub fn set_landscape(&mut self, value: Option<bool>) {
156        self.landscape = value;
157    }
158
159    #[wasm_bindgen(getter)]
160    pub fn margins(&self) -> Option<Margins> {
161        self.margins.clone()
162    }
163
164    #[wasm_bindgen(setter)]
165    pub fn set_margins(&mut self, value: Option<Margins>) {
166        self.margins = value;
167    }
168
169    #[wasm_bindgen(getter)]
170    pub fn page_ranges(&self) -> Option<Object> {
171        self.page_ranges.clone()
172    }
173
174    #[wasm_bindgen(setter)]
175    pub fn set_page_ranges(&mut self, value: Option<Object>) {
176        self.page_ranges = value;
177    }
178
179    #[wasm_bindgen(getter)]
180    pub fn pages_per_sheet(&self) -> Option<u32> {
181        self.pages_per_sheet
182    }
183
184    #[wasm_bindgen(setter)]
185    pub fn set_pages_per_sheet(&mut self, value: Option<u32>) {
186        self.pages_per_sheet = value;
187    }
188
189    #[wasm_bindgen(getter)]
190    pub fn print_background(&self) -> Option<bool> {
191        self.print_background
192    }
193
194    #[wasm_bindgen(setter)]
195    pub fn set_print_background(&mut self, value: Option<bool>) {
196        self.print_background = value;
197    }
198
199    #[wasm_bindgen(getter)]
200    pub fn scale_factor(&self) -> Option<Number> {
201        self.scale_factor.clone()
202    }
203
204    #[wasm_bindgen(setter)]
205    pub fn set_scale_factor(&mut self, value: Option<Number>) {
206        self.scale_factor = value;
207    }
208
209    #[wasm_bindgen(getter)]
210    pub fn silent(&self) -> Option<bool> {
211        self.silent
212    }
213
214    #[wasm_bindgen(setter)]
215    pub fn set_silent(&mut self, value: Option<bool>) {
216        self.silent = value;
217    }
218}