webkit2gtk/
script_dialog.rs

1// Take a look at the license at the top of the repository in the LICENSE file.
2
3
4use std::ffi::{CStr, CString};
5
6use ffi;
7use glib::translate::{IntoGlib, ToGlibPtr, from_glib, mut_override};
8
9use super::ScriptDialogType;
10
11glib::wrapper! {
12    pub struct ScriptDialog(Boxed<ffi::WebKitScriptDialog>);
13
14    match fn {
15        copy => |ptr| webkit_script_dialog_copy(ptr),
16        free => |ptr| webkit_script_dialog_free(ptr),
17    }
18}
19
20impl ScriptDialog {
21    pub fn confirm_set_confirmed(&self, confirmed: bool) {
22        unsafe { ffi::webkit_script_dialog_confirm_set_confirmed(mut_override(self.to_glib_none().0), confirmed.into_glib()); }
23    }
24
25    pub fn get_dialog_type(&self) -> ScriptDialogType {
26        unsafe { from_glib(ffi::webkit_script_dialog_get_dialog_type(mut_override(self.to_glib_none().0))) }
27    }
28
29    pub fn get_message(&self) -> &str {
30        let c_str = unsafe { ffi::webkit_script_dialog_get_message(mut_override(self.to_glib_none().0)) };
31        let c_str = unsafe { CStr::from_ptr(c_str) };
32        c_str.to_str().unwrap()
33    }
34
35    pub fn prompt_get_default_text(&self) -> &str {
36        let c_str = unsafe { ffi::webkit_script_dialog_prompt_get_default_text(mut_override(self.to_glib_none().0)) };
37        let c_str = unsafe { CStr::from_ptr(c_str) };
38        c_str.to_str().unwrap()
39    }
40
41    pub fn prompt_set_text(&self, text: &str) {
42        let c_str = CString::new(text).unwrap();
43        unsafe { ffi::webkit_script_dialog_prompt_set_text(mut_override(self.to_glib_none().0), c_str.as_ptr()) };
44    }
45}
46
47fn webkit_script_dialog_copy(dialog: *const ffi::WebKitScriptDialog) -> *mut ffi::WebKitScriptDialog {
48    skip_assert_initialized!();
49    dialog as *mut _
50}
51
52fn webkit_script_dialog_free(_dialog: *const ffi::WebKitScriptDialog) {
53    skip_assert_initialized!();
54}