gdk4_x11/auto/
x11_screen.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// DO NOT EDIT
4#![allow(deprecated)]
5
6use crate::ffi;
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 = "GdkX11Screen")]
17    pub struct X11Screen(Object<ffi::GdkX11Screen, ffi::GdkX11ScreenClass>);
18
19    match fn {
20        type_ => || ffi::gdk_x11_screen_get_type(),
21    }
22}
23
24impl X11Screen {
25    #[cfg_attr(feature = "v4_18", deprecated = "Since 4.18")]
26    #[allow(deprecated)]
27    #[doc(alias = "gdk_x11_screen_get_current_desktop")]
28    #[doc(alias = "get_current_desktop")]
29    pub fn current_desktop(&self) -> u32 {
30        unsafe { ffi::gdk_x11_screen_get_current_desktop(self.to_glib_none().0) }
31    }
32
33    #[cfg_attr(feature = "v4_18", deprecated = "Since 4.18")]
34    #[allow(deprecated)]
35    #[doc(alias = "gdk_x11_screen_get_number_of_desktops")]
36    #[doc(alias = "get_number_of_desktops")]
37    pub fn number_of_desktops(&self) -> u32 {
38        unsafe { ffi::gdk_x11_screen_get_number_of_desktops(self.to_glib_none().0) }
39    }
40
41    #[cfg_attr(feature = "v4_18", deprecated = "Since 4.18")]
42    #[allow(deprecated)]
43    #[doc(alias = "gdk_x11_screen_get_screen_number")]
44    #[doc(alias = "get_screen_number")]
45    pub fn screen_number(&self) -> i32 {
46        unsafe { ffi::gdk_x11_screen_get_screen_number(self.to_glib_none().0) }
47    }
48
49    #[cfg_attr(feature = "v4_18", deprecated = "Since 4.18")]
50    #[allow(deprecated)]
51    #[doc(alias = "gdk_x11_screen_get_window_manager_name")]
52    #[doc(alias = "get_window_manager_name")]
53    pub fn window_manager_name(&self) -> glib::GString {
54        unsafe {
55            from_glib_none(ffi::gdk_x11_screen_get_window_manager_name(
56                self.to_glib_none().0,
57            ))
58        }
59    }
60
61    #[cfg_attr(feature = "v4_18", deprecated = "Since 4.18")]
62    #[allow(deprecated)]
63    #[doc(alias = "gdk_x11_screen_supports_net_wm_hint")]
64    pub fn supports_net_wm_hint(&self, property_name: &str) -> bool {
65        unsafe {
66            from_glib(ffi::gdk_x11_screen_supports_net_wm_hint(
67                self.to_glib_none().0,
68                property_name.to_glib_none().0,
69            ))
70        }
71    }
72
73    #[doc(alias = "window-manager-changed")]
74    pub fn connect_window_manager_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
75        unsafe extern "C" fn window_manager_changed_trampoline<F: Fn(&X11Screen) + 'static>(
76            this: *mut ffi::GdkX11Screen,
77            f: glib::ffi::gpointer,
78        ) {
79            let f: &F = &*(f as *const F);
80            f(&from_glib_borrow(this))
81        }
82        unsafe {
83            let f: Box_<F> = Box_::new(f);
84            connect_raw(
85                self.as_ptr() as *mut _,
86                b"window-manager-changed\0".as_ptr() as *const _,
87                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
88                    window_manager_changed_trampoline::<F> as *const (),
89                )),
90                Box_::into_raw(f),
91            )
92        }
93    }
94}