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