electron_sys/interface/
menu_item_options.rs

1use 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}