Skip to main content

gtk/
invisible.rs

1// Take a look at the license at the top of the repository in the LICENSE file.
2
3use crate::Invisible;
4use glib::translate::{from_glib_none, ToGlibPtr};
5use glib::IsA;
6
7// For some reasons, it's not generated...
8mod sealed {
9    pub trait Sealed {}
10    impl<T: glib::IsA<crate::Invisible>> Sealed for T {}
11}
12
13pub trait InvisibleExtManual: IsA<Invisible> + sealed::Sealed + 'static {
14    /// Returns the [`gdk::Screen`][crate::gdk::Screen] object associated with `self`
15    ///
16    /// # Returns
17    ///
18    /// the associated [`gdk::Screen`][crate::gdk::Screen].
19    #[doc(alias = "gtk_invisible_get_screen")]
20    #[doc(alias = "get_screen")]
21    fn screen(&self) -> Option<gdk::Screen> {
22        unsafe {
23            from_glib_none(ffi::gtk_invisible_get_screen(
24                self.as_ref().to_glib_none().0,
25            ))
26        }
27    }
28}
29
30impl<T: IsA<Invisible>> InvisibleExtManual for T {}