electron_sys/interface/
menu_item_options.rs1use crate::class::{Accelerator, Menu, NativeImage};
2use js_sys::{Array, Function, JsString};
3use wasm_bindgen::prelude::*;
4
5#[wasm_bindgen]
6#[derive(Clone, Debug, Default, Eq, PartialEq)]
7pub struct MenuItemOptions {
8 accelerator_works_when_hidden: Option<bool>,
9 accelerator: Option<Accelerator>,
10 after_group_containing: Option<Array>,
11 after: Option<Array>,
12 before_group_containing: Option<Array>,
13 before: Option<Array>,
14 checked: Option<bool>,
15 click: Option<Function>,
16 enabled: Option<bool>,
17 icon: Option<NativeImage>,
18 id: Option<JsString>,
19 kind: Option<JsString>,
20 label: Option<JsString>,
21 register_accelerator: Option<bool>,
22 role: Option<JsString>,
23 sub_label: Option<JsString>,
24 submenu: Option<Menu>,
25 tool_tip: Option<JsString>,
26 visible: Option<bool>,
27}
28
29#[wasm_bindgen]
30impl MenuItemOptions {
31 #[allow(clippy::too_many_arguments)]
32 #[wasm_bindgen(constructor)]
33 pub fn new_with_values(
34 accelerator_works_when_hidden: Option<bool>,
35 accelerator: Option<Accelerator>,
36 after_group_containing: Option<Array>,
37 after: Option<Array>,
38 before_group_containing: Option<Array>,
39 before: Option<Array>,
40 checked: Option<bool>,
41 click: Option<Function>,
42 enabled: Option<bool>,
43 icon: Option<NativeImage>,
44 id: Option<JsString>,
45 kind: Option<JsString>,
46 label: Option<JsString>,
47 register_accelerator: Option<bool>,
48 role: Option<JsString>,
49 sub_label: Option<JsString>,
50 submenu: Option<Menu>,
51 tool_tip: Option<JsString>,
52 visible: Option<bool>,
53 ) -> MenuItemOptions {
54 MenuItemOptions {
55 accelerator_works_when_hidden,
56 accelerator,
57 after_group_containing,
58 after,
59 before_group_containing,
60 before,
61 checked,
62 click,
63 enabled,
64 icon,
65 id,
66 kind,
67 label,
68 register_accelerator,
69 role,
70 sub_label,
71 submenu,
72 tool_tip,
73 visible,
74 }
75 }
76
77 pub fn new() -> MenuItemOptions {
78 Default::default()
79 }
80
81 #[wasm_bindgen(getter)]
82 pub fn accelerator_works_when_hidden(&self) -> Option<bool> {
83 self.accelerator_works_when_hidden
84 }
85
86 #[wasm_bindgen(setter)]
87 pub fn set_accelerator_works_when_hidden(&mut self, value: Option<bool>) {
88 self.accelerator_works_when_hidden = value;
89 }
90
91 #[wasm_bindgen(getter)]
92 pub fn accelerator(&self) -> Option<Accelerator> {
93 self.accelerator.clone()
94 }
95
96 #[wasm_bindgen(setter)]
97 pub fn set_accelerator(&mut self, value: Option<Accelerator>) {
98 self.accelerator = value;
99 }
100
101 #[wasm_bindgen(getter)]
102 pub fn after_group_containing(&self) -> Option<Array> {
103 self.after_group_containing.clone()
104 }
105
106 #[wasm_bindgen(setter)]
107 pub fn set_after_group_containing(&mut self, value: Option<Array>) {
108 self.after_group_containing = value;
109 }
110
111 #[wasm_bindgen(getter)]
112 pub fn after(&self) -> Option<Array> {
113 self.after.clone()
114 }
115
116 #[wasm_bindgen(setter)]
117 pub fn set_after(&mut self, value: Option<Array>) {
118 self.after = value;
119 }
120
121 #[wasm_bindgen(getter)]
122 pub fn before_group_containing(&self) -> Option<Array> {
123 self.before_group_containing.clone()
124 }
125
126 #[wasm_bindgen(setter)]
127 pub fn set_before_group_containing(&mut self, value: Option<Array>) {
128 self.before_group_containing = value;
129 }
130
131 #[wasm_bindgen(getter)]
132 pub fn before(&self) -> Option<Array> {
133 self.before.clone()
134 }
135
136 #[wasm_bindgen(setter)]
137 pub fn set_before(&mut self, value: Option<Array>) {
138 self.before = value;
139 }
140
141 #[wasm_bindgen(getter)]
142 pub fn checked(&self) -> Option<bool> {
143 self.checked
144 }
145
146 #[wasm_bindgen(setter)]
147 pub fn set_checked(&mut self, value: Option<bool>) {
148 self.checked = value;
149 }
150
151 #[wasm_bindgen(getter)]
152 pub fn click(&self) -> Option<Function> {
153 self.click.clone()
154 }
155
156 #[wasm_bindgen(setter)]
157 pub fn set_click(&mut self, value: Option<Function>) {
158 self.click = value;
159 }
160
161 #[wasm_bindgen(getter)]
162 pub fn enabled(&self) -> Option<bool> {
163 self.enabled
164 }
165
166 #[wasm_bindgen(setter)]
167 pub fn set_enabled(&mut self, value: Option<bool>) {
168 self.enabled = value;
169 }
170
171 #[wasm_bindgen(getter)]
172 pub fn icon(&self) -> Option<NativeImage> {
173 self.icon.clone()
174 }
175
176 #[wasm_bindgen(setter)]
177 pub fn set_icon(&mut self, value: Option<NativeImage>) {
178 self.icon = value;
179 }
180
181 #[wasm_bindgen(getter)]
182 pub fn id(&self) -> Option<JsString> {
183 self.id.clone()
184 }
185
186 #[wasm_bindgen(setter)]
187 pub fn set_id(&mut self, value: Option<JsString>) {
188 self.id = value;
189 }
190
191 #[wasm_bindgen(getter, js_name = "type")]
192 pub fn kind(&self) -> Option<JsString> {
193 self.kind.clone()
194 }
195
196 #[wasm_bindgen(setter)]
197 pub fn set_kind(&mut self, value: Option<JsString>) {
198 self.kind = value;
199 }
200
201 #[wasm_bindgen(getter)]
202 pub fn label(&self) -> Option<JsString> {
203 self.label.clone()
204 }
205
206 #[wasm_bindgen(setter)]
207 pub fn set_label(&mut self, value: Option<JsString>) {
208 self.label = value;
209 }
210
211 #[wasm_bindgen(getter)]
212 pub fn register_accelerator(&self) -> Option<bool> {
213 self.register_accelerator
214 }
215
216 #[wasm_bindgen(setter)]
217 pub fn set_register_accelerator(&mut self, value: Option<bool>) {
218 self.register_accelerator = value;
219 }
220
221 #[wasm_bindgen(getter)]
222 pub fn role(&self) -> Option<JsString> {
223 self.role.clone()
224 }
225
226 #[wasm_bindgen(setter)]
227 pub fn set_role(&mut self, value: Option<JsString>) {
228 self.role = value;
229 }
230
231 #[wasm_bindgen(getter)]
232 pub fn sub_label(&self) -> Option<JsString> {
233 self.sub_label.clone()
234 }
235
236 #[wasm_bindgen(setter)]
237 pub fn set_sub_label(&mut self, value: Option<JsString>) {
238 self.sub_label = value;
239 }
240
241 #[wasm_bindgen(getter)]
242 pub fn submenu(&self) -> Option<Menu> {
243 self.submenu.clone()
244 }
245
246 #[wasm_bindgen(setter)]
247 pub fn set_submenu(&mut self, value: Option<Menu>) {
248 self.submenu = value;
249 }
250
251 #[wasm_bindgen(getter)]
252 pub fn tool_tip(&self) -> Option<JsString> {
253 self.tool_tip.clone()
254 }
255
256 #[wasm_bindgen(setter)]
257 pub fn set_tool_tip(&mut self, value: Option<JsString>) {
258 self.tool_tip = value;
259 }
260
261 #[wasm_bindgen(getter)]
262 pub fn visible(&self) -> Option<bool> {
263 self.visible
264 }
265
266 #[wasm_bindgen(setter)]
267 pub fn set_visible(&mut self, value: Option<bool>) {
268 self.visible = value;
269 }
270}