gtk/auto/
window_group.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;
6use glib::object::IsA;
7use glib::translate::*;
8use gtk_sys;
9use std::fmt;
10use Widget;
11use Window;
12
13glib_wrapper! {
14    pub struct WindowGroup(Object<gtk_sys::GtkWindowGroup, gtk_sys::GtkWindowGroupClass, WindowGroupClass>);
15
16    match fn {
17        get_type => || gtk_sys::gtk_window_group_get_type(),
18    }
19}
20
21impl WindowGroup {
22    pub fn new() -> WindowGroup {
23        assert_initialized_main_thread!();
24        unsafe { from_glib_full(gtk_sys::gtk_window_group_new()) }
25    }
26}
27
28impl Default for WindowGroup {
29    fn default() -> Self {
30        Self::new()
31    }
32}
33
34pub const NONE_WINDOW_GROUP: Option<&WindowGroup> = None;
35
36pub trait WindowGroupExt: 'static {
37    fn add_window<P: IsA<Window>>(&self, window: &P);
38
39    fn get_current_device_grab(&self, device: &gdk::Device) -> Option<Widget>;
40
41    fn get_current_grab(&self) -> Option<Widget>;
42
43    fn list_windows(&self) -> Vec<Window>;
44
45    fn remove_window<P: IsA<Window>>(&self, window: &P);
46}
47
48impl<O: IsA<WindowGroup>> WindowGroupExt for O {
49    fn add_window<P: IsA<Window>>(&self, window: &P) {
50        unsafe {
51            gtk_sys::gtk_window_group_add_window(
52                self.as_ref().to_glib_none().0,
53                window.as_ref().to_glib_none().0,
54            );
55        }
56    }
57
58    fn get_current_device_grab(&self, device: &gdk::Device) -> Option<Widget> {
59        unsafe {
60            from_glib_none(gtk_sys::gtk_window_group_get_current_device_grab(
61                self.as_ref().to_glib_none().0,
62                device.to_glib_none().0,
63            ))
64        }
65    }
66
67    fn get_current_grab(&self) -> Option<Widget> {
68        unsafe {
69            from_glib_none(gtk_sys::gtk_window_group_get_current_grab(
70                self.as_ref().to_glib_none().0,
71            ))
72        }
73    }
74
75    fn list_windows(&self) -> Vec<Window> {
76        unsafe {
77            FromGlibPtrContainer::from_glib_container(gtk_sys::gtk_window_group_list_windows(
78                self.as_ref().to_glib_none().0,
79            ))
80        }
81    }
82
83    fn remove_window<P: IsA<Window>>(&self, window: &P) {
84        unsafe {
85            gtk_sys::gtk_window_group_remove_window(
86                self.as_ref().to_glib_none().0,
87                window.as_ref().to_glib_none().0,
88            );
89        }
90    }
91}
92
93impl fmt::Display for WindowGroup {
94    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
95        write!(f, "WindowGroup")
96    }
97}