webkit_web_process_extension6/auto/
script_world.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// from webkit-gir-files
4// DO NOT EDIT
5
6use crate::{ffi, Frame, WebPage};
7use glib::{
8    object::ObjectType as _,
9    prelude::*,
10    signal::{connect_raw, SignalHandlerId},
11    translate::*,
12};
13use std::boxed::Box as Box_;
14
15glib::wrapper! {
16    #[doc(alias = "WebKitScriptWorld")]
17    pub struct ScriptWorld(Object<ffi::WebKitScriptWorld, ffi::WebKitScriptWorldClass>);
18
19    match fn {
20        type_ => || ffi::webkit_script_world_get_type(),
21    }
22}
23
24impl ScriptWorld {
25    #[doc(alias = "webkit_script_world_new")]
26    pub fn new() -> ScriptWorld {
27        assert_initialized_main_thread!();
28        unsafe { from_glib_full(ffi::webkit_script_world_new()) }
29    }
30
31    #[doc(alias = "webkit_script_world_new_with_name")]
32    #[doc(alias = "new_with_name")]
33    pub fn with_name(name: &str) -> ScriptWorld {
34        assert_initialized_main_thread!();
35        unsafe {
36            from_glib_full(ffi::webkit_script_world_new_with_name(
37                name.to_glib_none().0,
38            ))
39        }
40    }
41
42    #[doc(alias = "webkit_script_world_get_name")]
43    #[doc(alias = "get_name")]
44    pub fn name(&self) -> Option<glib::GString> {
45        unsafe { from_glib_none(ffi::webkit_script_world_get_name(self.to_glib_none().0)) }
46    }
47
48    #[doc(alias = "webkit_script_world_get_default")]
49    #[doc(alias = "get_default")]
50    #[allow(clippy::should_implement_trait)]
51    pub fn default() -> Option<ScriptWorld> {
52        assert_initialized_main_thread!();
53        unsafe { from_glib_none(ffi::webkit_script_world_get_default()) }
54    }
55
56    #[doc(alias = "window-object-cleared")]
57    pub fn connect_window_object_cleared<F: Fn(&Self, &WebPage, &Frame) + 'static>(
58        &self,
59        f: F,
60    ) -> SignalHandlerId {
61        unsafe extern "C" fn window_object_cleared_trampoline<
62            F: Fn(&ScriptWorld, &WebPage, &Frame) + 'static,
63        >(
64            this: *mut ffi::WebKitScriptWorld,
65            page: *mut ffi::WebKitWebPage,
66            frame: *mut ffi::WebKitFrame,
67            f: glib::ffi::gpointer,
68        ) {
69            let f: &F = &*(f as *const F);
70            f(
71                &from_glib_borrow(this),
72                &from_glib_borrow(page),
73                &from_glib_borrow(frame),
74            )
75        }
76        unsafe {
77            let f: Box_<F> = Box_::new(f);
78            connect_raw(
79                self.as_ptr() as *mut _,
80                c"window-object-cleared".as_ptr() as *const _,
81                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
82                    window_object_cleared_trampoline::<F> as *const (),
83                )),
84                Box_::into_raw(f),
85            )
86        }
87    }
88}
89
90impl Default for ScriptWorld {
91    fn default() -> Self {
92        Self::new()
93    }
94}