gtk4/auto/
window_group.rs1use crate::{ffi, Window};
6use glib::{prelude::*, translate::*};
7
8glib::wrapper! {
9 #[doc(alias = "GtkWindowGroup")]
10 pub struct WindowGroup(Object<ffi::GtkWindowGroup, ffi::GtkWindowGroupClass>);
11
12 match fn {
13 type_ => || ffi::gtk_window_group_get_type(),
14 }
15}
16
17impl WindowGroup {
18 pub const NONE: Option<&'static WindowGroup> = None;
19
20 #[doc(alias = "gtk_window_group_new")]
21 pub fn new() -> WindowGroup {
22 assert_initialized_main_thread!();
23 unsafe { from_glib_full(ffi::gtk_window_group_new()) }
24 }
25}
26
27impl Default for WindowGroup {
28 fn default() -> Self {
29 Self::new()
30 }
31}
32
33pub trait WindowGroupExt: IsA<WindowGroup> + 'static {
34 #[doc(alias = "gtk_window_group_add_window")]
35 fn add_window(&self, window: &impl IsA<Window>) {
36 unsafe {
37 ffi::gtk_window_group_add_window(
38 self.as_ref().to_glib_none().0,
39 window.as_ref().to_glib_none().0,
40 );
41 }
42 }
43
44 #[doc(alias = "gtk_window_group_list_windows")]
45 fn list_windows(&self) -> Vec<Window> {
46 unsafe {
47 FromGlibPtrContainer::from_glib_container(ffi::gtk_window_group_list_windows(
48 self.as_ref().to_glib_none().0,
49 ))
50 }
51 }
52
53 #[doc(alias = "gtk_window_group_remove_window")]
54 fn remove_window(&self, window: &impl IsA<Window>) {
55 unsafe {
56 ffi::gtk_window_group_remove_window(
57 self.as_ref().to_glib_none().0,
58 window.as_ref().to_glib_none().0,
59 );
60 }
61 }
62}
63
64impl<O: IsA<WindowGroup>> WindowGroupExt for O {}