electron_sys/interface/
web_contents_print_options.rs1use 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}