// GENERATED — DO NOT EDIT
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/class.WindowGroup.html).
pub type WindowGroup
///|
pub(open) trait IWindowGroup {
fn as_window_group(Self) -> WindowGroup
fn add_window(Self, &IWindow) -> Unit = _
fn list_windows(Self) -> Array[Window] = _
fn remove_window(Self, &IWindow) -> Unit = _
}
///|
pub impl IWindowGroup for WindowGroup with fn as_window_group(self) {
self
}
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/ctor.WindowGroup.new.html).
pub extern "c" fn WindowGroup::new() -> WindowGroup = "moonbit_gtk_window_group_new"
///|
#borrow(self_, window)
extern "c" fn moonbit_gtk_window_group_add_window(
self_ : WindowGroup,
window : Window,
) = "moonbit_gtk_window_group_add_window"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.WindowGroup.add_window.html).
pub fn WindowGroup::add_window(self : WindowGroup, window : &IWindow) -> Unit {
moonbit_gtk_window_group_add_window(self, window.as_window())
}
///|
#borrow(self_, result)
extern "c" fn moonbit_gtk_window_group_list_windows(
self_ : WindowGroup,
result : Ref[FixedArray[Window]],
) = "moonbit_gtk_window_group_list_windows"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.WindowGroup.list_windows.html).
pub fn WindowGroup::list_windows(self : WindowGroup) -> Array[Window] {
let result_ref : Ref[FixedArray[Window]] = Ref([])
moonbit_gtk_window_group_list_windows(self, result_ref)
let values : Array[Window] = Array::new(capacity=result_ref.val.length())
for value in result_ref.val {
values.push(value)
}
values
}
///|
#borrow(self_, window)
extern "c" fn moonbit_gtk_window_group_remove_window(
self_ : WindowGroup,
window : Window,
) = "moonbit_gtk_window_group_remove_window"
///|
/// [Upstream documentation](https://docs.gtk.org/gtk4/method.WindowGroup.remove_window.html).
pub fn WindowGroup::remove_window(
self : WindowGroup,
window : &IWindow,
) -> Unit {
moonbit_gtk_window_group_remove_window(self, window.as_window())
}
///|
impl IWindowGroup with fn add_window(self, window) -> Unit {
self.as_window_group().add_window(window)
}
///|
impl IWindowGroup with fn list_windows(self) -> Array[Window] {
self.as_window_group().list_windows()
}
///|
impl IWindowGroup with fn remove_window(self, window) -> Unit {
self.as_window_group().remove_window(window)
}
///|
pub fn WindowGroup::as_gobject_object(self : WindowGroup) -> @gobject.Object = "%identity"
///|
pub impl @gobject.IObject for WindowGroup with fn as_object(self) {
self.as_gobject_object()
}