gtk4/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 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 {}