gdk/auto/
display_manager.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
5use gdk_sys;
6use glib::object::ObjectType as ObjectType_;
7use glib::signal::connect_raw;
8use glib::signal::SignalHandlerId;
9use glib::translate::*;
10use glib_sys;
11use std::boxed::Box as Box_;
12use std::fmt;
13use std::mem::transmute;
14use Display;
15
16glib_wrapper! {
17    pub struct DisplayManager(Object<gdk_sys::GdkDisplayManager, DisplayManagerClass>);
18
19    match fn {
20        get_type => || gdk_sys::gdk_display_manager_get_type(),
21    }
22}
23
24impl DisplayManager {
25    pub fn get_default_display(&self) -> Option<Display> {
26        unsafe {
27            from_glib_none(gdk_sys::gdk_display_manager_get_default_display(
28                self.to_glib_none().0,
29            ))
30        }
31    }
32
33    pub fn list_displays(&self) -> Vec<Display> {
34        unsafe {
35            FromGlibPtrContainer::from_glib_container(gdk_sys::gdk_display_manager_list_displays(
36                self.to_glib_none().0,
37            ))
38        }
39    }
40
41    pub fn open_display(&self, name: &str) -> Option<Display> {
42        unsafe {
43            from_glib_none(gdk_sys::gdk_display_manager_open_display(
44                self.to_glib_none().0,
45                name.to_glib_none().0,
46            ))
47        }
48    }
49
50    pub fn set_default_display(&self, display: &Display) {
51        unsafe {
52            gdk_sys::gdk_display_manager_set_default_display(
53                self.to_glib_none().0,
54                display.to_glib_none().0,
55            );
56        }
57    }
58
59    pub fn get() -> DisplayManager {
60        assert_initialized_main_thread!();
61        unsafe { from_glib_none(gdk_sys::gdk_display_manager_get()) }
62    }
63
64    pub fn connect_display_opened<F: Fn(&DisplayManager, &Display) + 'static>(
65        &self,
66        f: F,
67    ) -> SignalHandlerId {
68        unsafe extern "C" fn display_opened_trampoline<
69            F: Fn(&DisplayManager, &Display) + 'static,
70        >(
71            this: *mut gdk_sys::GdkDisplayManager,
72            display: *mut gdk_sys::GdkDisplay,
73            f: glib_sys::gpointer,
74        ) {
75            let f: &F = &*(f as *const F);
76            f(&from_glib_borrow(this), &from_glib_borrow(display))
77        }
78        unsafe {
79            let f: Box_<F> = Box_::new(f);
80            connect_raw(
81                self.as_ptr() as *mut _,
82                b"display-opened\0".as_ptr() as *const _,
83                Some(transmute(display_opened_trampoline::<F> as usize)),
84                Box_::into_raw(f),
85            )
86        }
87    }
88
89    pub fn connect_property_default_display_notify<F: Fn(&DisplayManager) + 'static>(
90        &self,
91        f: F,
92    ) -> SignalHandlerId {
93        unsafe extern "C" fn notify_default_display_trampoline<F: Fn(&DisplayManager) + 'static>(
94            this: *mut gdk_sys::GdkDisplayManager,
95            _param_spec: glib_sys::gpointer,
96            f: glib_sys::gpointer,
97        ) {
98            let f: &F = &*(f as *const F);
99            f(&from_glib_borrow(this))
100        }
101        unsafe {
102            let f: Box_<F> = Box_::new(f);
103            connect_raw(
104                self.as_ptr() as *mut _,
105                b"notify::default-display\0".as_ptr() as *const _,
106                Some(transmute(notify_default_display_trampoline::<F> as usize)),
107                Box_::into_raw(f),
108            )
109        }
110    }
111}
112
113impl fmt::Display for DisplayManager {
114    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
115        write!(f, "DisplayManager")
116    }
117}