electron_sys/module/
dialog.rs1use crate::{
2 class::BrowserWindow,
3 interface::{
4 CertificateTrustDialogOptions,
5 MessageBoxOptions,
6 MessageBoxSyncOptions,
7 OpenDialogOptions,
8 OpenDialogSyncOptions,
9 SaveDialogOptions,
10 SaveDialogSyncOptions,
11 },
12};
13use js_sys::{JsString, Promise};
14use wasm_bindgen::prelude::*;
15
16#[wasm_bindgen(module = "electron")]
17extern {
18 #[wasm_bindgen]
19 pub type Dialog;
20
21 pub static dialog: Dialog;
22
23 #[must_use]
24 #[wasm_bindgen(method, js_name = "showCertificateTrustDialog")]
25 pub fn show_certificate_trust_dialog(
26 this: &Dialog,
27 browser_window: Option<&BrowserWindow>, options: CertificateTrustDialogOptions,
29 ) -> Promise;
30
31 #[wasm_bindgen(method, js_name = "showErrBox")]
32 pub fn show_err_box(this: &Dialog, title: &str, content: &str);
33
34 #[must_use]
35 #[wasm_bindgen(method, js_name = "showMessageBox")]
36 pub fn show_message_box(
37 this: &Dialog,
38 browser_window: Option<&BrowserWindow>,
39 options: MessageBoxOptions,
40 ) -> Promise;
41
42 #[wasm_bindgen(method, js_name = "showMessageBoxSync")]
43 pub fn show_message_box_sync(
44 this: &Dialog,
45 browser_window: Option<&BrowserWindow>,
46 options: MessageBoxSyncOptions,
47 ) -> usize;
48
49 #[must_use]
50 #[wasm_bindgen(method, js_name = "showOpenDialog")]
51 pub fn show_open_dialog(
52 this: &Dialog,
53 browser_window: Option<&BrowserWindow>,
54 options: OpenDialogOptions,
55 ) -> Promise;
56
57 #[wasm_bindgen(method, js_name = "showOpenDialogSync")]
58 pub fn show_open_dialog_sync(
59 this: &Dialog,
60 browser_window: Option<&BrowserWindow>,
61 options: OpenDialogSyncOptions,
62 ) -> Option<Box<[JsValue]>>;
63
64 #[must_use]
65 #[wasm_bindgen(method, js_name = "showSaveDialog")]
66 pub fn show_save_dialog(
67 this: &Dialog,
68 browser_window: Option<&BrowserWindow>,
69 options: SaveDialogOptions,
70 ) -> Promise;
71
72 #[wasm_bindgen(method, js_name = "showSaveDialogSync")]
73 pub fn show_save_dialog_sync(
74 this: &Dialog,
75 browser_window: Option<&BrowserWindow>,
76 options: SaveDialogSyncOptions,
77 ) -> Option<JsString>;
78}