From: Arnaud Ferraris <aferraris@debian.org>
Date: Thu, 23 Oct 2025 15:18:09 +0200
Subject: treewide: import generated code from latest Debian upload

The latest glib upload (2.86) breaks code generation. As this package is
unmaintained upstream and only kept alive while we wait for its users to
migrate to more recent versions, there's no need to keep regenerating
the code, we can just copy it from the latest Debian upload.

Forwarded: not-needed
---
 Cargo.toml       |   50 +-
 Gir.toml         |    2 +-
 build.rs         |    2 +-
 src/lib.rs       | 1364 ++++++++++++++++++++----------------------------------
 tests/abi.rs     |  552 ++++------------------
 tests/constant.c |    4 +-
 tests/layout.c   |    3 +-
 versions.txt     |    4 +-
 8 files changed, 621 insertions(+), 1360 deletions(-)

diff --git a/Cargo.toml b/Cargo.toml
index e282bdf..8341889 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,14 +1,3 @@
-# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
-#
-# When uploading crates to the registry Cargo will automatically
-# "normalize" Cargo.toml files for maximal compatibility
-# with all versions of Cargo and also rewrite `path` dependencies
-# to registry (e.g., crates.io) dependencies.
-#
-# If you are reading this file be aware that the original Cargo.toml
-# will likely look very different (and much more reasonable).
-# See Cargo.toml.orig for the original contents.
-
 [package]
 edition = "2021"
 rust-version = "1.70"
@@ -19,26 +8,15 @@ build = "build.rs"
 links = "atk-1.0"
 description = "FFI bindings to libatk-1"
 homepage = "https://gtk-rs.org/"
-keywords = [
-    "atk",
-    "ffi",
-    "gtk-rs",
-    "gnome",
-]
+keywords = ["atk", "ffi", "gtk-rs", "gnome"]
 license = "MIT"
 repository = "https://github.com/gtk-rs/gtk3-rs"
 resolver = "1"
 
 [package.metadata.docs.rs]
 features = []
-rustc-args = [
-    "--cfg",
-    "docsrs",
-]
-rustdoc-args = [
-    "--cfg",
-    "docsrs",
-]
+rustc-args = ["--cfg", "docsrs"]
+rustdoc-args = ["--cfg", "docsrs"]
 
 [package.metadata.system-deps.atk]
 name = "atk"
@@ -62,9 +40,15 @@ version = "2.46"
 [package.metadata.system-deps.atk.v2_50]
 version = "2.50"
 
+[package.metadata.system-deps.atk.v2_52]
+version = "2.52"
+
 [lib]
 name = "atk_sys"
 
+[dependencies]
+libc = "0.2"
+
 [dependencies.glib]
 version = "0.18"
 package = "glib-sys"
@@ -73,17 +57,12 @@ package = "glib-sys"
 version = "0.18"
 package = "gobject-sys"
 
-[dependencies.libc]
-version = "0.2"
+[dev-dependencies]
+shell-words = "1.0.0"
+tempfile = "3"
 
-[dev-dependencies.shell-words]
-version = "1.0.0"
-
-[dev-dependencies.tempfile]
-version = "3"
-
-[build-dependencies.system-deps]
-version = "7"
+[build-dependencies]
+system-deps = "7"
 
 [features]
 v2_30 = []
@@ -92,3 +71,4 @@ v2_34 = ["v2_32"]
 v2_38 = ["v2_34"]
 v2_46 = ["v2_38"]
 v2_50 = ["v2_46"]
+v2_52 = ["v2_50"]
diff --git a/Gir.toml b/Gir.toml
index f803c4f..6ed90b3 100644
--- a/Gir.toml
+++ b/Gir.toml
@@ -4,7 +4,7 @@ library = "Atk"
 version = "1.0"
 min_cfg_version = "2.28"
 single_version_file = "."
-girs_directories = ["../../gir-files"]
+girs_directories=["."]
 
 external_libraries = [
     "GLib",
diff --git a/build.rs b/build.rs
index e98844f..2b27c21 100644
--- a/build.rs
+++ b/build.rs
@@ -1,5 +1,5 @@
 // This file was generated by gir (https://github.com/gtk-rs/gir)
-// from gir-files (https://github.com/gtk-rs/gir-files)
+// from 
 // DO NOT EDIT
 
 #[cfg(not(docsrs))]
diff --git a/src/lib.rs b/src/lib.rs
index acfe373..7af60f8 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,21 +1,20 @@
 // This file was generated by gir (https://github.com/gtk-rs/gir)
-// from gir-files (https://github.com/gtk-rs/gir-files)
+// from 
 // DO NOT EDIT
 
 #![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
-#![allow(
-    clippy::approx_constant,
-    clippy::type_complexity,
-    clippy::unreadable_literal,
-    clippy::upper_case_acronyms
-)]
+#![allow(clippy::approx_constant, clippy::type_complexity, clippy::unreadable_literal, clippy::upper_case_acronyms)]
 #![cfg_attr(docsrs, feature(doc_cfg))]
 
+
 #[allow(unused_imports)]
-use libc::{
-    c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
-    intptr_t, size_t, ssize_t, uintptr_t, FILE,
-};
+use std::ffi::{c_int, c_char, c_uchar, c_float, c_uint, c_double,
+    c_short, c_ushort, c_long, c_ulong, c_void};
+#[allow(unused_imports)]
+use libc::{size_t, ssize_t, time_t, off_t, intptr_t, uintptr_t, FILE};
+#[cfg(unix)]
+#[allow(unused_imports)]
+use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
 
 #[allow(unused_imports)]
 use glib::{gboolean, gconstpointer, gpointer, GType};
@@ -117,7 +116,7 @@ pub const ATK_ROLE_PANEL: AtkRole = 38;
 pub const ATK_ROLE_PASSWORD_TEXT: AtkRole = 39;
 pub const ATK_ROLE_POPUP_MENU: AtkRole = 40;
 pub const ATK_ROLE_PROGRESS_BAR: AtkRole = 41;
-pub const ATK_ROLE_PUSH_BUTTON: AtkRole = 42;
+pub const ATK_ROLE_BUTTON: AtkRole = 42;
 pub const ATK_ROLE_RADIO_BUTTON: AtkRole = 43;
 pub const ATK_ROLE_RADIO_MENU_ITEM: AtkRole = 44;
 pub const ATK_ROLE_ROOT_PANE: AtkRole = 45;
@@ -203,7 +202,9 @@ pub const ATK_ROLE_CONTENT_INSERTION: AtkRole = 124;
 pub const ATK_ROLE_MARK: AtkRole = 125;
 pub const ATK_ROLE_SUGGESTION: AtkRole = 126;
 pub const ATK_ROLE_PUSH_BUTTON_MENU: AtkRole = 127;
-pub const ATK_ROLE_LAST_DEFINED: AtkRole = 128;
+pub const ATK_ROLE_SWITCH: AtkRole = 128;
+pub const ATK_ROLE_LAST_DEFINED: AtkRole = 129;
+pub const ATK_ROLE_PUSH_BUTTON: AtkRole = 42;
 
 pub type AtkScrollType = c_int;
 pub const ATK_SCROLL_TOP_LEFT: AtkScrollType = 0;
@@ -261,6 +262,7 @@ pub const ATK_STATE_READ_ONLY: AtkStateType = 42;
 #[cfg(feature = "v2_38")]
 #[cfg_attr(docsrs, doc(cfg(feature = "v2_38")))]
 pub const ATK_STATE_COLLAPSED: AtkStateType = 43;
+pub const ATK_STATE_LAST_DEFINED: AtkStateType = 44;
 
 pub type AtkTextAttribute = c_int;
 pub const ATK_TEXT_ATTR_INVALID: AtkTextAttribute = 0;
@@ -346,8 +348,7 @@ pub type AtkEventListenerInit = Option<unsafe extern "C" fn()>;
 pub type AtkFocusHandler = Option<unsafe extern "C" fn(*mut AtkObject, gboolean)>;
 pub type AtkFunction = Option<unsafe extern "C" fn(gpointer) -> gboolean>;
 pub type AtkKeySnoopFunc = Option<unsafe extern "C" fn(*mut AtkKeyEventStruct, gpointer) -> c_int>;
-pub type AtkPropertyChangeHandler =
-    Option<unsafe extern "C" fn(*mut AtkObject, *mut AtkPropertyValues)>;
+pub type AtkPropertyChangeHandler = Option<unsafe extern "C" fn(*mut AtkObject, *mut AtkPropertyValues)>;
 
 // Records
 #[derive(Copy, Clone)]
@@ -359,22 +360,21 @@ pub struct AtkActionIface {
     pub get_description: Option<unsafe extern "C" fn(*mut AtkAction, c_int) -> *const c_char>,
     pub get_name: Option<unsafe extern "C" fn(*mut AtkAction, c_int) -> *const c_char>,
     pub get_keybinding: Option<unsafe extern "C" fn(*mut AtkAction, c_int) -> *const c_char>,
-    pub set_description:
-        Option<unsafe extern "C" fn(*mut AtkAction, c_int, *const c_char) -> gboolean>,
+    pub set_description: Option<unsafe extern "C" fn(*mut AtkAction, c_int, *const c_char) -> gboolean>,
     pub get_localized_name: Option<unsafe extern "C" fn(*mut AtkAction, c_int) -> *const c_char>,
 }
 
 impl ::std::fmt::Debug for AtkActionIface {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkActionIface @ {self:p}"))
-            .field("do_action", &self.do_action)
-            .field("get_n_actions", &self.get_n_actions)
-            .field("get_description", &self.get_description)
-            .field("get_name", &self.get_name)
-            .field("get_keybinding", &self.get_keybinding)
-            .field("set_description", &self.set_description)
-            .field("get_localized_name", &self.get_localized_name)
-            .finish()
+         .field("do_action", &self.do_action)
+         .field("get_n_actions", &self.get_n_actions)
+         .field("get_description", &self.get_description)
+         .field("get_name", &self.get_name)
+         .field("get_keybinding", &self.get_keybinding)
+         .field("set_description", &self.set_description)
+         .field("get_localized_name", &self.get_localized_name)
+         .finish()
     }
 }
 
@@ -388,9 +388,9 @@ pub struct AtkAttribute {
 impl ::std::fmt::Debug for AtkAttribute {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkAttribute @ {self:p}"))
-            .field("name", &self.name)
-            .field("value", &self.value)
-            .finish()
+         .field("name", &self.name)
+         .field("value", &self.value)
+         .finish()
     }
 }
 
@@ -398,71 +398,46 @@ impl ::std::fmt::Debug for AtkAttribute {
 #[repr(C)]
 pub struct AtkComponentIface {
     pub parent: gobject::GTypeInterface,
-    pub add_focus_handler:
-        Option<unsafe extern "C" fn(*mut AtkComponent, AtkFocusHandler) -> c_uint>,
-    pub contains:
-        Option<unsafe extern "C" fn(*mut AtkComponent, c_int, c_int, AtkCoordType) -> gboolean>,
-    pub ref_accessible_at_point: Option<
-        unsafe extern "C" fn(*mut AtkComponent, c_int, c_int, AtkCoordType) -> *mut AtkObject,
-    >,
-    pub get_extents: Option<
-        unsafe extern "C" fn(
-            *mut AtkComponent,
-            *mut c_int,
-            *mut c_int,
-            *mut c_int,
-            *mut c_int,
-            AtkCoordType,
-        ),
-    >,
-    pub get_position:
-        Option<unsafe extern "C" fn(*mut AtkComponent, *mut c_int, *mut c_int, AtkCoordType)>,
+    pub add_focus_handler: Option<unsafe extern "C" fn(*mut AtkComponent, AtkFocusHandler) -> c_uint>,
+    pub contains: Option<unsafe extern "C" fn(*mut AtkComponent, c_int, c_int, AtkCoordType) -> gboolean>,
+    pub ref_accessible_at_point: Option<unsafe extern "C" fn(*mut AtkComponent, c_int, c_int, AtkCoordType) -> *mut AtkObject>,
+    pub get_extents: Option<unsafe extern "C" fn(*mut AtkComponent, *mut c_int, *mut c_int, *mut c_int, *mut c_int, AtkCoordType)>,
+    pub get_position: Option<unsafe extern "C" fn(*mut AtkComponent, *mut c_int, *mut c_int, AtkCoordType)>,
     pub get_size: Option<unsafe extern "C" fn(*mut AtkComponent, *mut c_int, *mut c_int)>,
     pub grab_focus: Option<unsafe extern "C" fn(*mut AtkComponent) -> gboolean>,
     pub remove_focus_handler: Option<unsafe extern "C" fn(*mut AtkComponent, c_uint)>,
-    pub set_extents: Option<
-        unsafe extern "C" fn(
-            *mut AtkComponent,
-            c_int,
-            c_int,
-            c_int,
-            c_int,
-            AtkCoordType,
-        ) -> gboolean,
-    >,
-    pub set_position:
-        Option<unsafe extern "C" fn(*mut AtkComponent, c_int, c_int, AtkCoordType) -> gboolean>,
+    pub set_extents: Option<unsafe extern "C" fn(*mut AtkComponent, c_int, c_int, c_int, c_int, AtkCoordType) -> gboolean>,
+    pub set_position: Option<unsafe extern "C" fn(*mut AtkComponent, c_int, c_int, AtkCoordType) -> gboolean>,
     pub set_size: Option<unsafe extern "C" fn(*mut AtkComponent, c_int, c_int) -> gboolean>,
     pub get_layer: Option<unsafe extern "C" fn(*mut AtkComponent) -> AtkLayer>,
     pub get_mdi_zorder: Option<unsafe extern "C" fn(*mut AtkComponent) -> c_int>,
     pub bounds_changed: Option<unsafe extern "C" fn(*mut AtkComponent, *mut AtkRectangle)>,
     pub get_alpha: Option<unsafe extern "C" fn(*mut AtkComponent) -> c_double>,
     pub scroll_to: Option<unsafe extern "C" fn(*mut AtkComponent, AtkScrollType) -> gboolean>,
-    pub scroll_to_point:
-        Option<unsafe extern "C" fn(*mut AtkComponent, AtkCoordType, c_int, c_int) -> gboolean>,
+    pub scroll_to_point: Option<unsafe extern "C" fn(*mut AtkComponent, AtkCoordType, c_int, c_int) -> gboolean>,
 }
 
 impl ::std::fmt::Debug for AtkComponentIface {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkComponentIface @ {self:p}"))
-            .field("add_focus_handler", &self.add_focus_handler)
-            .field("contains", &self.contains)
-            .field("ref_accessible_at_point", &self.ref_accessible_at_point)
-            .field("get_extents", &self.get_extents)
-            .field("get_position", &self.get_position)
-            .field("get_size", &self.get_size)
-            .field("grab_focus", &self.grab_focus)
-            .field("remove_focus_handler", &self.remove_focus_handler)
-            .field("set_extents", &self.set_extents)
-            .field("set_position", &self.set_position)
-            .field("set_size", &self.set_size)
-            .field("get_layer", &self.get_layer)
-            .field("get_mdi_zorder", &self.get_mdi_zorder)
-            .field("bounds_changed", &self.bounds_changed)
-            .field("get_alpha", &self.get_alpha)
-            .field("scroll_to", &self.scroll_to)
-            .field("scroll_to_point", &self.scroll_to_point)
-            .finish()
+         .field("add_focus_handler", &self.add_focus_handler)
+         .field("contains", &self.contains)
+         .field("ref_accessible_at_point", &self.ref_accessible_at_point)
+         .field("get_extents", &self.get_extents)
+         .field("get_position", &self.get_position)
+         .field("get_size", &self.get_size)
+         .field("grab_focus", &self.grab_focus)
+         .field("remove_focus_handler", &self.remove_focus_handler)
+         .field("set_extents", &self.set_extents)
+         .field("set_position", &self.set_position)
+         .field("set_size", &self.set_size)
+         .field("get_layer", &self.get_layer)
+         .field("get_mdi_zorder", &self.get_mdi_zorder)
+         .field("bounds_changed", &self.bounds_changed)
+         .field("get_alpha", &self.get_alpha)
+         .field("scroll_to", &self.scroll_to)
+         .field("scroll_to_point", &self.scroll_to_point)
+         .finish()
     }
 }
 
@@ -473,32 +448,30 @@ pub struct AtkDocumentIface {
     pub get_document_type: Option<unsafe extern "C" fn(*mut AtkDocument) -> *const c_char>,
     pub get_document: Option<unsafe extern "C" fn(*mut AtkDocument) -> gpointer>,
     pub get_document_locale: Option<unsafe extern "C" fn(*mut AtkDocument) -> *const c_char>,
-    pub get_document_attributes:
-        Option<unsafe extern "C" fn(*mut AtkDocument) -> *mut AtkAttributeSet>,
-    pub get_document_attribute_value:
-        Option<unsafe extern "C" fn(*mut AtkDocument, *const c_char) -> *const c_char>,
-    pub set_document_attribute:
-        Option<unsafe extern "C" fn(*mut AtkDocument, *const c_char, *const c_char) -> gboolean>,
+    pub get_document_attributes: Option<unsafe extern "C" fn(*mut AtkDocument) -> *mut AtkAttributeSet>,
+    pub get_document_attribute_value: Option<unsafe extern "C" fn(*mut AtkDocument, *const c_char) -> *const c_char>,
+    pub set_document_attribute: Option<unsafe extern "C" fn(*mut AtkDocument, *const c_char, *const c_char) -> gboolean>,
     pub get_current_page_number: Option<unsafe extern "C" fn(*mut AtkDocument) -> c_int>,
     pub get_page_count: Option<unsafe extern "C" fn(*mut AtkDocument) -> c_int>,
+    pub get_text_selections: Option<unsafe extern "C" fn(*mut AtkDocument) -> *mut glib::GArray>,
+    pub set_text_selections: Option<unsafe extern "C" fn(*mut AtkDocument, *mut glib::GArray) -> gboolean>,
 }
 
 impl ::std::fmt::Debug for AtkDocumentIface {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkDocumentIface @ {self:p}"))
-            .field("parent", &self.parent)
-            .field("get_document_type", &self.get_document_type)
-            .field("get_document", &self.get_document)
-            .field("get_document_locale", &self.get_document_locale)
-            .field("get_document_attributes", &self.get_document_attributes)
-            .field(
-                "get_document_attribute_value",
-                &self.get_document_attribute_value,
-            )
-            .field("set_document_attribute", &self.set_document_attribute)
-            .field("get_current_page_number", &self.get_current_page_number)
-            .field("get_page_count", &self.get_page_count)
-            .finish()
+         .field("parent", &self.parent)
+         .field("get_document_type", &self.get_document_type)
+         .field("get_document", &self.get_document)
+         .field("get_document_locale", &self.get_document_locale)
+         .field("get_document_attributes", &self.get_document_attributes)
+         .field("get_document_attribute_value", &self.get_document_attribute_value)
+         .field("set_document_attribute", &self.set_document_attribute)
+         .field("get_current_page_number", &self.get_current_page_number)
+         .field("get_page_count", &self.get_page_count)
+         .field("get_text_selections", &self.get_text_selections)
+         .field("set_text_selections", &self.set_text_selections)
+         .finish()
     }
 }
 
@@ -506,12 +479,9 @@ impl ::std::fmt::Debug for AtkDocumentIface {
 #[repr(C)]
 pub struct AtkEditableTextIface {
     pub parent_interface: gobject::GTypeInterface,
-    pub set_run_attributes: Option<
-        unsafe extern "C" fn(*mut AtkEditableText, *mut AtkAttributeSet, c_int, c_int) -> gboolean,
-    >,
+    pub set_run_attributes: Option<unsafe extern "C" fn(*mut AtkEditableText, *mut AtkAttributeSet, c_int, c_int) -> gboolean>,
     pub set_text_contents: Option<unsafe extern "C" fn(*mut AtkEditableText, *const c_char)>,
-    pub insert_text:
-        Option<unsafe extern "C" fn(*mut AtkEditableText, *const c_char, c_int, *mut c_int)>,
+    pub insert_text: Option<unsafe extern "C" fn(*mut AtkEditableText, *const c_char, c_int, *mut c_int)>,
     pub copy_text: Option<unsafe extern "C" fn(*mut AtkEditableText, c_int, c_int)>,
     pub cut_text: Option<unsafe extern "C" fn(*mut AtkEditableText, c_int, c_int)>,
     pub delete_text: Option<unsafe extern "C" fn(*mut AtkEditableText, c_int, c_int)>,
@@ -521,15 +491,15 @@ pub struct AtkEditableTextIface {
 impl ::std::fmt::Debug for AtkEditableTextIface {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkEditableTextIface @ {self:p}"))
-            .field("parent_interface", &self.parent_interface)
-            .field("set_run_attributes", &self.set_run_attributes)
-            .field("set_text_contents", &self.set_text_contents)
-            .field("insert_text", &self.insert_text)
-            .field("copy_text", &self.copy_text)
-            .field("cut_text", &self.cut_text)
-            .field("delete_text", &self.delete_text)
-            .field("paste_text", &self.paste_text)
-            .finish()
+         .field("parent_interface", &self.parent_interface)
+         .field("set_run_attributes", &self.set_run_attributes)
+         .field("set_text_contents", &self.set_text_contents)
+         .field("insert_text", &self.insert_text)
+         .field("copy_text", &self.copy_text)
+         .field("cut_text", &self.cut_text)
+         .field("delete_text", &self.delete_text)
+         .field("paste_text", &self.paste_text)
+         .finish()
     }
 }
 
@@ -544,10 +514,10 @@ pub struct AtkGObjectAccessibleClass {
 impl ::std::fmt::Debug for AtkGObjectAccessibleClass {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkGObjectAccessibleClass @ {self:p}"))
-            .field("parent_class", &self.parent_class)
-            .field("pad1", &self.pad1)
-            .field("pad2", &self.pad2)
-            .finish()
+         .field("parent_class", &self.parent_class)
+         .field("pad1", &self.pad1)
+         .field("pad2", &self.pad2)
+         .finish()
     }
 }
 
@@ -570,18 +540,18 @@ pub struct AtkHyperlinkClass {
 impl ::std::fmt::Debug for AtkHyperlinkClass {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkHyperlinkClass @ {self:p}"))
-            .field("parent", &self.parent)
-            .field("get_uri", &self.get_uri)
-            .field("get_object", &self.get_object)
-            .field("get_end_index", &self.get_end_index)
-            .field("get_start_index", &self.get_start_index)
-            .field("is_valid", &self.is_valid)
-            .field("get_n_anchors", &self.get_n_anchors)
-            .field("link_state", &self.link_state)
-            .field("is_selected_link", &self.is_selected_link)
-            .field("link_activated", &self.link_activated)
-            .field("pad1", &self.pad1)
-            .finish()
+         .field("parent", &self.parent)
+         .field("get_uri", &self.get_uri)
+         .field("get_object", &self.get_object)
+         .field("get_end_index", &self.get_end_index)
+         .field("get_start_index", &self.get_start_index)
+         .field("is_valid", &self.is_valid)
+         .field("get_n_anchors", &self.get_n_anchors)
+         .field("link_state", &self.link_state)
+         .field("is_selected_link", &self.is_selected_link)
+         .field("link_activated", &self.link_activated)
+         .field("pad1", &self.pad1)
+         .finish()
     }
 }
 
@@ -595,9 +565,9 @@ pub struct AtkHyperlinkImplIface {
 impl ::std::fmt::Debug for AtkHyperlinkImplIface {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkHyperlinkImplIface @ {self:p}"))
-            .field("parent", &self.parent)
-            .field("get_hyperlink", &self.get_hyperlink)
-            .finish()
+         .field("parent", &self.parent)
+         .field("get_hyperlink", &self.get_hyperlink)
+         .finish()
     }
 }
 
@@ -614,12 +584,12 @@ pub struct AtkHypertextIface {
 impl ::std::fmt::Debug for AtkHypertextIface {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkHypertextIface @ {self:p}"))
-            .field("parent", &self.parent)
-            .field("get_link", &self.get_link)
-            .field("get_n_links", &self.get_n_links)
-            .field("get_link_index", &self.get_link_index)
-            .field("link_selected", &self.link_selected)
-            .finish()
+         .field("parent", &self.parent)
+         .field("get_link", &self.get_link)
+         .field("get_n_links", &self.get_n_links)
+         .field("get_link_index", &self.get_link_index)
+         .field("link_selected", &self.link_selected)
+         .finish()
     }
 }
 
@@ -627,35 +597,34 @@ impl ::std::fmt::Debug for AtkHypertextIface {
 #[repr(C)]
 pub struct AtkImageIface {
     pub parent: gobject::GTypeInterface,
-    pub get_image_position:
-        Option<unsafe extern "C" fn(*mut AtkImage, *mut c_int, *mut c_int, AtkCoordType)>,
+    pub get_image_position: Option<unsafe extern "C" fn(*mut AtkImage, *mut c_int, *mut c_int, AtkCoordType)>,
     pub get_image_description: Option<unsafe extern "C" fn(*mut AtkImage) -> *const c_char>,
     pub get_image_size: Option<unsafe extern "C" fn(*mut AtkImage, *mut c_int, *mut c_int)>,
-    pub set_image_description:
-        Option<unsafe extern "C" fn(*mut AtkImage, *const c_char) -> gboolean>,
+    pub set_image_description: Option<unsafe extern "C" fn(*mut AtkImage, *const c_char) -> gboolean>,
     pub get_image_locale: Option<unsafe extern "C" fn(*mut AtkImage) -> *const c_char>,
 }
 
 impl ::std::fmt::Debug for AtkImageIface {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkImageIface @ {self:p}"))
-            .field("parent", &self.parent)
-            .field("get_image_position", &self.get_image_position)
-            .field("get_image_description", &self.get_image_description)
-            .field("get_image_size", &self.get_image_size)
-            .field("set_image_description", &self.set_image_description)
-            .field("get_image_locale", &self.get_image_locale)
-            .finish()
+         .field("parent", &self.parent)
+         .field("get_image_position", &self.get_image_position)
+         .field("get_image_description", &self.get_image_description)
+         .field("get_image_size", &self.get_image_size)
+         .field("set_image_description", &self.set_image_description)
+         .field("get_image_locale", &self.get_image_locale)
+         .finish()
     }
 }
 
 #[repr(C)]
+#[allow(dead_code)]
 pub struct _AtkImplementor {
     _data: [u8; 0],
     _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
 }
 
-pub type AtkImplementor = *mut _AtkImplementor;
+pub type AtkImplementor = _AtkImplementor;
 
 #[derive(Copy, Clone)]
 #[repr(C)]
@@ -672,14 +641,14 @@ pub struct AtkKeyEventStruct {
 impl ::std::fmt::Debug for AtkKeyEventStruct {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkKeyEventStruct @ {self:p}"))
-            .field("type_", &self.type_)
-            .field("state", &self.state)
-            .field("keyval", &self.keyval)
-            .field("length", &self.length)
-            .field("string", &self.string)
-            .field("keycode", &self.keycode)
-            .field("timestamp", &self.timestamp)
-            .finish()
+         .field("type_", &self.type_)
+         .field("state", &self.state)
+         .field("keyval", &self.keyval)
+         .field("length", &self.length)
+         .field("string", &self.string)
+         .field("keycode", &self.keycode)
+         .field("timestamp", &self.timestamp)
+         .finish()
     }
 }
 
@@ -695,11 +664,11 @@ pub struct AtkMiscClass {
 impl ::std::fmt::Debug for AtkMiscClass {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkMiscClass @ {self:p}"))
-            .field("parent", &self.parent)
-            .field("threads_enter", &self.threads_enter)
-            .field("threads_leave", &self.threads_leave)
-            .field("vfuncs", &self.vfuncs)
-            .finish()
+         .field("parent", &self.parent)
+         .field("threads_enter", &self.threads_enter)
+         .field("threads_leave", &self.threads_leave)
+         .field("vfuncs", &self.vfuncs)
+         .finish()
     }
 }
 
@@ -712,8 +681,8 @@ pub struct AtkNoOpObjectClass {
 impl ::std::fmt::Debug for AtkNoOpObjectClass {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkNoOpObjectClass @ {self:p}"))
-            .field("parent_class", &self.parent_class)
-            .finish()
+         .field("parent_class", &self.parent_class)
+         .finish()
     }
 }
 
@@ -726,8 +695,8 @@ pub struct AtkNoOpObjectFactoryClass {
 impl ::std::fmt::Debug for AtkNoOpObjectFactoryClass {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkNoOpObjectFactoryClass @ {self:p}"))
-            .field("parent_class", &self.parent_class)
-            .finish()
+         .field("parent_class", &self.parent_class)
+         .finish()
     }
 }
 
@@ -750,8 +719,7 @@ pub struct AtkObjectClass {
     pub set_description: Option<unsafe extern "C" fn(*mut AtkObject, *const c_char)>,
     pub set_parent: Option<unsafe extern "C" fn(*mut AtkObject, *mut AtkObject)>,
     pub set_role: Option<unsafe extern "C" fn(*mut AtkObject, AtkRole)>,
-    pub connect_property_change_handler:
-        Option<unsafe extern "C" fn(*mut AtkObject, *mut AtkPropertyChangeHandler) -> c_uint>,
+    pub connect_property_change_handler: Option<unsafe extern "C" fn(*mut AtkObject, *mut AtkPropertyChangeHandler) -> c_uint>,
     pub remove_property_change_handler: Option<unsafe extern "C" fn(*mut AtkObject, c_uint)>,
     pub initialize: Option<unsafe extern "C" fn(*mut AtkObject, *mut gpointer)>,
     pub children_changed: Option<unsafe extern "C" fn(*mut AtkObject, c_uint, gpointer)>,
@@ -768,41 +736,35 @@ pub struct AtkObjectClass {
 impl ::std::fmt::Debug for AtkObjectClass {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkObjectClass @ {self:p}"))
-            .field("parent", &self.parent)
-            .field("get_name", &self.get_name)
-            .field("get_description", &self.get_description)
-            .field("get_parent", &self.get_parent)
-            .field("get_n_children", &self.get_n_children)
-            .field("ref_child", &self.ref_child)
-            .field("get_index_in_parent", &self.get_index_in_parent)
-            .field("ref_relation_set", &self.ref_relation_set)
-            .field("get_role", &self.get_role)
-            .field("get_layer", &self.get_layer)
-            .field("get_mdi_zorder", &self.get_mdi_zorder)
-            .field("ref_state_set", &self.ref_state_set)
-            .field("set_name", &self.set_name)
-            .field("set_description", &self.set_description)
-            .field("set_parent", &self.set_parent)
-            .field("set_role", &self.set_role)
-            .field(
-                "connect_property_change_handler",
-                &self.connect_property_change_handler,
-            )
-            .field(
-                "remove_property_change_handler",
-                &self.remove_property_change_handler,
-            )
-            .field("initialize", &self.initialize)
-            .field("children_changed", &self.children_changed)
-            .field("focus_event", &self.focus_event)
-            .field("property_change", &self.property_change)
-            .field("state_change", &self.state_change)
-            .field("visible_data_changed", &self.visible_data_changed)
-            .field("active_descendant_changed", &self.active_descendant_changed)
-            .field("get_attributes", &self.get_attributes)
-            .field("get_object_locale", &self.get_object_locale)
-            .field("pad1", &self.pad1)
-            .finish()
+         .field("parent", &self.parent)
+         .field("get_name", &self.get_name)
+         .field("get_description", &self.get_description)
+         .field("get_parent", &self.get_parent)
+         .field("get_n_children", &self.get_n_children)
+         .field("ref_child", &self.ref_child)
+         .field("get_index_in_parent", &self.get_index_in_parent)
+         .field("ref_relation_set", &self.ref_relation_set)
+         .field("get_role", &self.get_role)
+         .field("get_layer", &self.get_layer)
+         .field("get_mdi_zorder", &self.get_mdi_zorder)
+         .field("ref_state_set", &self.ref_state_set)
+         .field("set_name", &self.set_name)
+         .field("set_description", &self.set_description)
+         .field("set_parent", &self.set_parent)
+         .field("set_role", &self.set_role)
+         .field("connect_property_change_handler", &self.connect_property_change_handler)
+         .field("remove_property_change_handler", &self.remove_property_change_handler)
+         .field("initialize", &self.initialize)
+         .field("children_changed", &self.children_changed)
+         .field("focus_event", &self.focus_event)
+         .field("property_change", &self.property_change)
+         .field("state_change", &self.state_change)
+         .field("visible_data_changed", &self.visible_data_changed)
+         .field("active_descendant_changed", &self.active_descendant_changed)
+         .field("get_attributes", &self.get_attributes)
+         .field("get_object_locale", &self.get_object_locale)
+         .field("pad1", &self.pad1)
+         .finish()
     }
 }
 
@@ -820,13 +782,13 @@ pub struct AtkObjectFactoryClass {
 impl ::std::fmt::Debug for AtkObjectFactoryClass {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkObjectFactoryClass @ {self:p}"))
-            .field("parent_class", &self.parent_class)
-            .field("create_accessible", &self.create_accessible)
-            .field("invalidate", &self.invalidate)
-            .field("get_accessible_type", &self.get_accessible_type)
-            .field("pad1", &self.pad1)
-            .field("pad2", &self.pad2)
-            .finish()
+         .field("parent_class", &self.parent_class)
+         .field("create_accessible", &self.create_accessible)
+         .field("invalidate", &self.invalidate)
+         .field("get_accessible_type", &self.get_accessible_type)
+         .field("pad1", &self.pad1)
+         .field("pad2", &self.pad2)
+         .finish()
     }
 }
 
@@ -840,9 +802,9 @@ pub struct AtkPlugClass {
 impl ::std::fmt::Debug for AtkPlugClass {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkPlugClass @ {self:p}"))
-            .field("parent_class", &self.parent_class)
-            .field("get_object_id", &self.get_object_id)
-            .finish()
+         .field("parent_class", &self.parent_class)
+         .field("get_object_id", &self.get_object_id)
+         .finish()
     }
 }
 
@@ -857,14 +819,15 @@ pub struct AtkPropertyValues {
 impl ::std::fmt::Debug for AtkPropertyValues {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkPropertyValues @ {self:p}"))
-            .field("property_name", &self.property_name)
-            .field("old_value", &self.old_value)
-            .field("new_value", &self.new_value)
-            .finish()
+         .field("property_name", &self.property_name)
+         .field("old_value", &self.old_value)
+         .field("new_value", &self.new_value)
+         .finish()
     }
 }
 
 #[repr(C)]
+#[allow(dead_code)]
 pub struct AtkRange {
     _data: [u8; 0],
     _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@@ -872,7 +835,8 @@ pub struct AtkRange {
 
 impl ::std::fmt::Debug for AtkRange {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
-        f.debug_struct(&format!("AtkRange @ {self:p}")).finish()
+        f.debug_struct(&format!("AtkRange @ {self:p}"))
+         .finish()
     }
 }
 
@@ -888,11 +852,11 @@ pub struct AtkRectangle {
 impl ::std::fmt::Debug for AtkRectangle {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkRectangle @ {self:p}"))
-            .field("x", &self.x)
-            .field("y", &self.y)
-            .field("width", &self.width)
-            .field("height", &self.height)
-            .finish()
+         .field("x", &self.x)
+         .field("y", &self.y)
+         .field("width", &self.width)
+         .field("height", &self.height)
+         .finish()
     }
 }
 
@@ -905,8 +869,8 @@ pub struct AtkRegistryClass {
 impl ::std::fmt::Debug for AtkRegistryClass {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkRegistryClass @ {self:p}"))
-            .field("parent_class", &self.parent_class)
-            .finish()
+         .field("parent_class", &self.parent_class)
+         .finish()
     }
 }
 
@@ -919,8 +883,8 @@ pub struct AtkRelationClass {
 impl ::std::fmt::Debug for AtkRelationClass {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkRelationClass @ {self:p}"))
-            .field("parent", &self.parent)
-            .finish()
+         .field("parent", &self.parent)
+         .finish()
     }
 }
 
@@ -935,10 +899,10 @@ pub struct AtkRelationSetClass {
 impl ::std::fmt::Debug for AtkRelationSetClass {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkRelationSetClass @ {self:p}"))
-            .field("parent", &self.parent)
-            .field("pad1", &self.pad1)
-            .field("pad2", &self.pad2)
-            .finish()
+         .field("parent", &self.parent)
+         .field("pad1", &self.pad1)
+         .field("pad2", &self.pad2)
+         .finish()
     }
 }
 
@@ -959,16 +923,16 @@ pub struct AtkSelectionIface {
 impl ::std::fmt::Debug for AtkSelectionIface {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkSelectionIface @ {self:p}"))
-            .field("parent", &self.parent)
-            .field("add_selection", &self.add_selection)
-            .field("clear_selection", &self.clear_selection)
-            .field("ref_selection", &self.ref_selection)
-            .field("get_selection_count", &self.get_selection_count)
-            .field("is_child_selected", &self.is_child_selected)
-            .field("remove_selection", &self.remove_selection)
-            .field("select_all_selection", &self.select_all_selection)
-            .field("selection_changed", &self.selection_changed)
-            .finish()
+         .field("parent", &self.parent)
+         .field("add_selection", &self.add_selection)
+         .field("clear_selection", &self.clear_selection)
+         .field("ref_selection", &self.ref_selection)
+         .field("get_selection_count", &self.get_selection_count)
+         .field("is_child_selected", &self.is_child_selected)
+         .field("remove_selection", &self.remove_selection)
+         .field("select_all_selection", &self.select_all_selection)
+         .field("selection_changed", &self.selection_changed)
+         .finish()
     }
 }
 
@@ -982,9 +946,9 @@ pub struct AtkSocketClass {
 impl ::std::fmt::Debug for AtkSocketClass {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkSocketClass @ {self:p}"))
-            .field("parent_class", &self.parent_class)
-            .field("embed", &self.embed)
-            .finish()
+         .field("parent_class", &self.parent_class)
+         .field("embed", &self.embed)
+         .finish()
     }
 }
 
@@ -997,8 +961,8 @@ pub struct AtkStateSetClass {
 impl ::std::fmt::Debug for AtkStateSetClass {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkStateSetClass @ {self:p}"))
-            .field("parent", &self.parent)
-            .finish()
+         .field("parent", &self.parent)
+         .finish()
     }
 }
 
@@ -1007,13 +971,9 @@ impl ::std::fmt::Debug for AtkStateSetClass {
 pub struct AtkStreamableContentIface {
     pub parent: gobject::GTypeInterface,
     pub get_n_mime_types: Option<unsafe extern "C" fn(*mut AtkStreamableContent) -> c_int>,
-    pub get_mime_type:
-        Option<unsafe extern "C" fn(*mut AtkStreamableContent, c_int) -> *const c_char>,
-    pub get_stream: Option<
-        unsafe extern "C" fn(*mut AtkStreamableContent, *const c_char) -> *mut glib::GIOChannel,
-    >,
-    pub get_uri:
-        Option<unsafe extern "C" fn(*mut AtkStreamableContent, *const c_char) -> *const c_char>,
+    pub get_mime_type: Option<unsafe extern "C" fn(*mut AtkStreamableContent, c_int) -> *const c_char>,
+    pub get_stream: Option<unsafe extern "C" fn(*mut AtkStreamableContent, *const c_char) -> *mut glib::GIOChannel>,
+    pub get_uri: Option<unsafe extern "C" fn(*mut AtkStreamableContent, *const c_char) -> *const c_char>,
     pub pad1: AtkFunction,
     pub pad2: AtkFunction,
     pub pad3: AtkFunction,
@@ -1022,15 +982,15 @@ pub struct AtkStreamableContentIface {
 impl ::std::fmt::Debug for AtkStreamableContentIface {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkStreamableContentIface @ {self:p}"))
-            .field("parent", &self.parent)
-            .field("get_n_mime_types", &self.get_n_mime_types)
-            .field("get_mime_type", &self.get_mime_type)
-            .field("get_stream", &self.get_stream)
-            .field("get_uri", &self.get_uri)
-            .field("pad1", &self.pad1)
-            .field("pad2", &self.pad2)
-            .field("pad3", &self.pad3)
-            .finish()
+         .field("parent", &self.parent)
+         .field("get_n_mime_types", &self.get_n_mime_types)
+         .field("get_mime_type", &self.get_mime_type)
+         .field("get_stream", &self.get_stream)
+         .field("get_uri", &self.get_uri)
+         .field("pad1", &self.pad1)
+         .field("pad2", &self.pad2)
+         .field("pad3", &self.pad3)
+         .finish()
     }
 }
 
@@ -1039,36 +999,25 @@ impl ::std::fmt::Debug for AtkStreamableContentIface {
 pub struct AtkTableCellIface {
     pub parent: gobject::GTypeInterface,
     pub get_column_span: Option<unsafe extern "C" fn(*mut AtkTableCell) -> c_int>,
-    pub get_column_header_cells:
-        Option<unsafe extern "C" fn(*mut AtkTableCell) -> *mut glib::GPtrArray>,
-    pub get_position:
-        Option<unsafe extern "C" fn(*mut AtkTableCell, *mut c_int, *mut c_int) -> gboolean>,
+    pub get_column_header_cells: Option<unsafe extern "C" fn(*mut AtkTableCell) -> *mut glib::GPtrArray>,
+    pub get_position: Option<unsafe extern "C" fn(*mut AtkTableCell, *mut c_int, *mut c_int) -> gboolean>,
     pub get_row_span: Option<unsafe extern "C" fn(*mut AtkTableCell) -> c_int>,
-    pub get_row_header_cells:
-        Option<unsafe extern "C" fn(*mut AtkTableCell) -> *mut glib::GPtrArray>,
-    pub get_row_column_span: Option<
-        unsafe extern "C" fn(
-            *mut AtkTableCell,
-            *mut c_int,
-            *mut c_int,
-            *mut c_int,
-            *mut c_int,
-        ) -> gboolean,
-    >,
+    pub get_row_header_cells: Option<unsafe extern "C" fn(*mut AtkTableCell) -> *mut glib::GPtrArray>,
+    pub get_row_column_span: Option<unsafe extern "C" fn(*mut AtkTableCell, *mut c_int, *mut c_int, *mut c_int, *mut c_int) -> gboolean>,
     pub get_table: Option<unsafe extern "C" fn(*mut AtkTableCell) -> *mut AtkObject>,
 }
 
 impl ::std::fmt::Debug for AtkTableCellIface {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkTableCellIface @ {self:p}"))
-            .field("get_column_span", &self.get_column_span)
-            .field("get_column_header_cells", &self.get_column_header_cells)
-            .field("get_position", &self.get_position)
-            .field("get_row_span", &self.get_row_span)
-            .field("get_row_header_cells", &self.get_row_header_cells)
-            .field("get_row_column_span", &self.get_row_column_span)
-            .field("get_table", &self.get_table)
-            .finish()
+         .field("get_column_span", &self.get_column_span)
+         .field("get_column_header_cells", &self.get_column_header_cells)
+         .field("get_position", &self.get_position)
+         .field("get_row_span", &self.get_row_span)
+         .field("get_row_header_cells", &self.get_row_header_cells)
+         .field("get_row_column_span", &self.get_row_column_span)
+         .field("get_table", &self.get_table)
+         .finish()
     }
 }
 
@@ -1117,44 +1066,44 @@ pub struct AtkTableIface {
 impl ::std::fmt::Debug for AtkTableIface {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkTableIface @ {self:p}"))
-            .field("parent", &self.parent)
-            .field("ref_at", &self.ref_at)
-            .field("get_index_at", &self.get_index_at)
-            .field("get_column_at_index", &self.get_column_at_index)
-            .field("get_row_at_index", &self.get_row_at_index)
-            .field("get_n_columns", &self.get_n_columns)
-            .field("get_n_rows", &self.get_n_rows)
-            .field("get_column_extent_at", &self.get_column_extent_at)
-            .field("get_row_extent_at", &self.get_row_extent_at)
-            .field("get_caption", &self.get_caption)
-            .field("get_column_description", &self.get_column_description)
-            .field("get_column_header", &self.get_column_header)
-            .field("get_row_description", &self.get_row_description)
-            .field("get_row_header", &self.get_row_header)
-            .field("get_summary", &self.get_summary)
-            .field("set_caption", &self.set_caption)
-            .field("set_column_description", &self.set_column_description)
-            .field("set_column_header", &self.set_column_header)
-            .field("set_row_description", &self.set_row_description)
-            .field("set_row_header", &self.set_row_header)
-            .field("set_summary", &self.set_summary)
-            .field("get_selected_columns", &self.get_selected_columns)
-            .field("get_selected_rows", &self.get_selected_rows)
-            .field("is_column_selected", &self.is_column_selected)
-            .field("is_row_selected", &self.is_row_selected)
-            .field("is_selected", &self.is_selected)
-            .field("add_row_selection", &self.add_row_selection)
-            .field("remove_row_selection", &self.remove_row_selection)
-            .field("add_column_selection", &self.add_column_selection)
-            .field("remove_column_selection", &self.remove_column_selection)
-            .field("row_inserted", &self.row_inserted)
-            .field("column_inserted", &self.column_inserted)
-            .field("row_deleted", &self.row_deleted)
-            .field("column_deleted", &self.column_deleted)
-            .field("row_reordered", &self.row_reordered)
-            .field("column_reordered", &self.column_reordered)
-            .field("model_changed", &self.model_changed)
-            .finish()
+         .field("parent", &self.parent)
+         .field("ref_at", &self.ref_at)
+         .field("get_index_at", &self.get_index_at)
+         .field("get_column_at_index", &self.get_column_at_index)
+         .field("get_row_at_index", &self.get_row_at_index)
+         .field("get_n_columns", &self.get_n_columns)
+         .field("get_n_rows", &self.get_n_rows)
+         .field("get_column_extent_at", &self.get_column_extent_at)
+         .field("get_row_extent_at", &self.get_row_extent_at)
+         .field("get_caption", &self.get_caption)
+         .field("get_column_description", &self.get_column_description)
+         .field("get_column_header", &self.get_column_header)
+         .field("get_row_description", &self.get_row_description)
+         .field("get_row_header", &self.get_row_header)
+         .field("get_summary", &self.get_summary)
+         .field("set_caption", &self.set_caption)
+         .field("set_column_description", &self.set_column_description)
+         .field("set_column_header", &self.set_column_header)
+         .field("set_row_description", &self.set_row_description)
+         .field("set_row_header", &self.set_row_header)
+         .field("set_summary", &self.set_summary)
+         .field("get_selected_columns", &self.get_selected_columns)
+         .field("get_selected_rows", &self.get_selected_rows)
+         .field("is_column_selected", &self.is_column_selected)
+         .field("is_row_selected", &self.is_row_selected)
+         .field("is_selected", &self.is_selected)
+         .field("add_row_selection", &self.add_row_selection)
+         .field("remove_row_selection", &self.remove_row_selection)
+         .field("add_column_selection", &self.add_column_selection)
+         .field("remove_column_selection", &self.remove_column_selection)
+         .field("row_inserted", &self.row_inserted)
+         .field("column_inserted", &self.column_inserted)
+         .field("row_deleted", &self.row_deleted)
+         .field("column_deleted", &self.column_deleted)
+         .field("row_reordered", &self.row_reordered)
+         .field("column_reordered", &self.column_reordered)
+         .field("model_changed", &self.model_changed)
+         .finish()
     }
 }
 
@@ -1163,56 +1112,18 @@ impl ::std::fmt::Debug for AtkTableIface {
 pub struct AtkTextIface {
     pub parent: gobject::GTypeInterface,
     pub get_text: Option<unsafe extern "C" fn(*mut AtkText, c_int, c_int) -> *mut c_char>,
-    pub get_text_after_offset: Option<
-        unsafe extern "C" fn(
-            *mut AtkText,
-            c_int,
-            AtkTextBoundary,
-            *mut c_int,
-            *mut c_int,
-        ) -> *mut c_char,
-    >,
-    pub get_text_at_offset: Option<
-        unsafe extern "C" fn(
-            *mut AtkText,
-            c_int,
-            AtkTextBoundary,
-            *mut c_int,
-            *mut c_int,
-        ) -> *mut c_char,
-    >,
+    pub get_text_after_offset: Option<unsafe extern "C" fn(*mut AtkText, c_int, AtkTextBoundary, *mut c_int, *mut c_int) -> *mut c_char>,
+    pub get_text_at_offset: Option<unsafe extern "C" fn(*mut AtkText, c_int, AtkTextBoundary, *mut c_int, *mut c_int) -> *mut c_char>,
     pub get_character_at_offset: Option<unsafe extern "C" fn(*mut AtkText, c_int) -> u32>,
-    pub get_text_before_offset: Option<
-        unsafe extern "C" fn(
-            *mut AtkText,
-            c_int,
-            AtkTextBoundary,
-            *mut c_int,
-            *mut c_int,
-        ) -> *mut c_char,
-    >,
+    pub get_text_before_offset: Option<unsafe extern "C" fn(*mut AtkText, c_int, AtkTextBoundary, *mut c_int, *mut c_int) -> *mut c_char>,
     pub get_caret_offset: Option<unsafe extern "C" fn(*mut AtkText) -> c_int>,
-    pub get_run_attributes: Option<
-        unsafe extern "C" fn(*mut AtkText, c_int, *mut c_int, *mut c_int) -> *mut AtkAttributeSet,
-    >,
+    pub get_run_attributes: Option<unsafe extern "C" fn(*mut AtkText, c_int, *mut c_int, *mut c_int) -> *mut AtkAttributeSet>,
     pub get_default_attributes: Option<unsafe extern "C" fn(*mut AtkText) -> *mut AtkAttributeSet>,
-    pub get_character_extents: Option<
-        unsafe extern "C" fn(
-            *mut AtkText,
-            c_int,
-            *mut c_int,
-            *mut c_int,
-            *mut c_int,
-            *mut c_int,
-            AtkCoordType,
-        ),
-    >,
+    pub get_character_extents: Option<unsafe extern "C" fn(*mut AtkText, c_int, *mut c_int, *mut c_int, *mut c_int, *mut c_int, AtkCoordType)>,
     pub get_character_count: Option<unsafe extern "C" fn(*mut AtkText) -> c_int>,
-    pub get_offset_at_point:
-        Option<unsafe extern "C" fn(*mut AtkText, c_int, c_int, AtkCoordType) -> c_int>,
+    pub get_offset_at_point: Option<unsafe extern "C" fn(*mut AtkText, c_int, c_int, AtkCoordType) -> c_int>,
     pub get_n_selections: Option<unsafe extern "C" fn(*mut AtkText) -> c_int>,
-    pub get_selection:
-        Option<unsafe extern "C" fn(*mut AtkText, c_int, *mut c_int, *mut c_int) -> *mut c_char>,
+    pub get_selection: Option<unsafe extern "C" fn(*mut AtkText, c_int, *mut c_int, *mut c_int) -> *mut c_char>,
     pub add_selection: Option<unsafe extern "C" fn(*mut AtkText, c_int, c_int) -> gboolean>,
     pub remove_selection: Option<unsafe extern "C" fn(*mut AtkText, c_int) -> gboolean>,
     pub set_selection: Option<unsafe extern "C" fn(*mut AtkText, c_int, c_int, c_int) -> gboolean>,
@@ -1221,65 +1132,44 @@ pub struct AtkTextIface {
     pub text_caret_moved: Option<unsafe extern "C" fn(*mut AtkText, c_int)>,
     pub text_selection_changed: Option<unsafe extern "C" fn(*mut AtkText)>,
     pub text_attributes_changed: Option<unsafe extern "C" fn(*mut AtkText)>,
-    pub get_range_extents: Option<
-        unsafe extern "C" fn(*mut AtkText, c_int, c_int, AtkCoordType, *mut AtkTextRectangle),
-    >,
-    pub get_bounded_ranges: Option<
-        unsafe extern "C" fn(
-            *mut AtkText,
-            *mut AtkTextRectangle,
-            AtkCoordType,
-            AtkTextClipType,
-            AtkTextClipType,
-        ) -> *mut *mut AtkTextRange,
-    >,
-    pub get_string_at_offset: Option<
-        unsafe extern "C" fn(
-            *mut AtkText,
-            c_int,
-            AtkTextGranularity,
-            *mut c_int,
-            *mut c_int,
-        ) -> *mut c_char,
-    >,
-    pub scroll_substring_to:
-        Option<unsafe extern "C" fn(*mut AtkText, c_int, c_int, AtkScrollType) -> gboolean>,
-    pub scroll_substring_to_point: Option<
-        unsafe extern "C" fn(*mut AtkText, c_int, c_int, AtkCoordType, c_int, c_int) -> gboolean,
-    >,
+    pub get_range_extents: Option<unsafe extern "C" fn(*mut AtkText, c_int, c_int, AtkCoordType, *mut AtkTextRectangle)>,
+    pub get_bounded_ranges: Option<unsafe extern "C" fn(*mut AtkText, *mut AtkTextRectangle, AtkCoordType, AtkTextClipType, AtkTextClipType) -> *mut *mut AtkTextRange>,
+    pub get_string_at_offset: Option<unsafe extern "C" fn(*mut AtkText, c_int, AtkTextGranularity, *mut c_int, *mut c_int) -> *mut c_char>,
+    pub scroll_substring_to: Option<unsafe extern "C" fn(*mut AtkText, c_int, c_int, AtkScrollType) -> gboolean>,
+    pub scroll_substring_to_point: Option<unsafe extern "C" fn(*mut AtkText, c_int, c_int, AtkCoordType, c_int, c_int) -> gboolean>,
 }
 
 impl ::std::fmt::Debug for AtkTextIface {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkTextIface @ {self:p}"))
-            .field("parent", &self.parent)
-            .field("get_text", &self.get_text)
-            .field("get_text_after_offset", &self.get_text_after_offset)
-            .field("get_text_at_offset", &self.get_text_at_offset)
-            .field("get_character_at_offset", &self.get_character_at_offset)
-            .field("get_text_before_offset", &self.get_text_before_offset)
-            .field("get_caret_offset", &self.get_caret_offset)
-            .field("get_run_attributes", &self.get_run_attributes)
-            .field("get_default_attributes", &self.get_default_attributes)
-            .field("get_character_extents", &self.get_character_extents)
-            .field("get_character_count", &self.get_character_count)
-            .field("get_offset_at_point", &self.get_offset_at_point)
-            .field("get_n_selections", &self.get_n_selections)
-            .field("get_selection", &self.get_selection)
-            .field("add_selection", &self.add_selection)
-            .field("remove_selection", &self.remove_selection)
-            .field("set_selection", &self.set_selection)
-            .field("set_caret_offset", &self.set_caret_offset)
-            .field("text_changed", &self.text_changed)
-            .field("text_caret_moved", &self.text_caret_moved)
-            .field("text_selection_changed", &self.text_selection_changed)
-            .field("text_attributes_changed", &self.text_attributes_changed)
-            .field("get_range_extents", &self.get_range_extents)
-            .field("get_bounded_ranges", &self.get_bounded_ranges)
-            .field("get_string_at_offset", &self.get_string_at_offset)
-            .field("scroll_substring_to", &self.scroll_substring_to)
-            .field("scroll_substring_to_point", &self.scroll_substring_to_point)
-            .finish()
+         .field("parent", &self.parent)
+         .field("get_text", &self.get_text)
+         .field("get_text_after_offset", &self.get_text_after_offset)
+         .field("get_text_at_offset", &self.get_text_at_offset)
+         .field("get_character_at_offset", &self.get_character_at_offset)
+         .field("get_text_before_offset", &self.get_text_before_offset)
+         .field("get_caret_offset", &self.get_caret_offset)
+         .field("get_run_attributes", &self.get_run_attributes)
+         .field("get_default_attributes", &self.get_default_attributes)
+         .field("get_character_extents", &self.get_character_extents)
+         .field("get_character_count", &self.get_character_count)
+         .field("get_offset_at_point", &self.get_offset_at_point)
+         .field("get_n_selections", &self.get_n_selections)
+         .field("get_selection", &self.get_selection)
+         .field("add_selection", &self.add_selection)
+         .field("remove_selection", &self.remove_selection)
+         .field("set_selection", &self.set_selection)
+         .field("set_caret_offset", &self.set_caret_offset)
+         .field("text_changed", &self.text_changed)
+         .field("text_caret_moved", &self.text_caret_moved)
+         .field("text_selection_changed", &self.text_selection_changed)
+         .field("text_attributes_changed", &self.text_attributes_changed)
+         .field("get_range_extents", &self.get_range_extents)
+         .field("get_bounded_ranges", &self.get_bounded_ranges)
+         .field("get_string_at_offset", &self.get_string_at_offset)
+         .field("scroll_substring_to", &self.scroll_substring_to)
+         .field("scroll_substring_to_point", &self.scroll_substring_to_point)
+         .finish()
     }
 }
 
@@ -1295,11 +1185,11 @@ pub struct AtkTextRange {
 impl ::std::fmt::Debug for AtkTextRange {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkTextRange @ {self:p}"))
-            .field("bounds", &self.bounds)
-            .field("start_offset", &self.start_offset)
-            .field("end_offset", &self.end_offset)
-            .field("content", &self.content)
-            .finish()
+         .field("bounds", &self.bounds)
+         .field("start_offset", &self.start_offset)
+         .field("end_offset", &self.end_offset)
+         .field("content", &self.content)
+         .finish()
     }
 }
 
@@ -1315,11 +1205,33 @@ pub struct AtkTextRectangle {
 impl ::std::fmt::Debug for AtkTextRectangle {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkTextRectangle @ {self:p}"))
-            .field("x", &self.x)
-            .field("y", &self.y)
-            .field("width", &self.width)
-            .field("height", &self.height)
-            .finish()
+         .field("x", &self.x)
+         .field("y", &self.y)
+         .field("width", &self.width)
+         .field("height", &self.height)
+         .finish()
+    }
+}
+
+#[derive(Copy, Clone)]
+#[repr(C)]
+pub struct AtkTextSelection {
+    pub start_object: *mut AtkObject,
+    pub start_offset: c_int,
+    pub end_object: *mut AtkObject,
+    pub end_offset: c_int,
+    pub start_is_active: gboolean,
+}
+
+impl ::std::fmt::Debug for AtkTextSelection {
+    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
+        f.debug_struct(&format!("AtkTextSelection @ {self:p}"))
+         .field("start_object", &self.start_object)
+         .field("start_offset", &self.start_offset)
+         .field("end_object", &self.end_object)
+         .field("end_offset", &self.end_offset)
+         .field("start_is_active", &self.start_is_active)
+         .finish()
     }
 }
 
@@ -1327,8 +1239,7 @@ impl ::std::fmt::Debug for AtkTextRectangle {
 #[repr(C)]
 pub struct AtkUtilClass {
     pub parent: gobject::GObjectClass,
-    pub add_global_event_listener:
-        Option<unsafe extern "C" fn(gobject::GSignalEmissionHook, *const c_char) -> c_uint>,
+    pub add_global_event_listener: Option<unsafe extern "C" fn(gobject::GSignalEmissionHook, *const c_char) -> c_uint>,
     pub remove_global_event_listener: Option<unsafe extern "C" fn(c_uint)>,
     pub add_key_event_listener: Option<unsafe extern "C" fn(AtkKeySnoopFunc, gpointer) -> c_uint>,
     pub remove_key_event_listener: Option<unsafe extern "C" fn(c_uint)>,
@@ -1340,18 +1251,15 @@ pub struct AtkUtilClass {
 impl ::std::fmt::Debug for AtkUtilClass {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkUtilClass @ {self:p}"))
-            .field("parent", &self.parent)
-            .field("add_global_event_listener", &self.add_global_event_listener)
-            .field(
-                "remove_global_event_listener",
-                &self.remove_global_event_listener,
-            )
-            .field("add_key_event_listener", &self.add_key_event_listener)
-            .field("remove_key_event_listener", &self.remove_key_event_listener)
-            .field("get_root", &self.get_root)
-            .field("get_toolkit_name", &self.get_toolkit_name)
-            .field("get_toolkit_version", &self.get_toolkit_version)
-            .finish()
+         .field("parent", &self.parent)
+         .field("add_global_event_listener", &self.add_global_event_listener)
+         .field("remove_global_event_listener", &self.remove_global_event_listener)
+         .field("add_key_event_listener", &self.add_key_event_listener)
+         .field("remove_key_event_listener", &self.remove_key_event_listener)
+         .field("get_root", &self.get_root)
+         .field("get_toolkit_name", &self.get_toolkit_name)
+         .field("get_toolkit_version", &self.get_toolkit_version)
+         .finish()
     }
 }
 
@@ -1362,11 +1270,9 @@ pub struct AtkValueIface {
     pub get_current_value: Option<unsafe extern "C" fn(*mut AtkValue, *mut gobject::GValue)>,
     pub get_maximum_value: Option<unsafe extern "C" fn(*mut AtkValue, *mut gobject::GValue)>,
     pub get_minimum_value: Option<unsafe extern "C" fn(*mut AtkValue, *mut gobject::GValue)>,
-    pub set_current_value:
-        Option<unsafe extern "C" fn(*mut AtkValue, *const gobject::GValue) -> gboolean>,
+    pub set_current_value: Option<unsafe extern "C" fn(*mut AtkValue, *const gobject::GValue) -> gboolean>,
     pub get_minimum_increment: Option<unsafe extern "C" fn(*mut AtkValue, *mut gobject::GValue)>,
-    pub get_value_and_text:
-        Option<unsafe extern "C" fn(*mut AtkValue, *mut c_double, *mut *mut c_char)>,
+    pub get_value_and_text: Option<unsafe extern "C" fn(*mut AtkValue, *mut c_double, *mut *mut c_char)>,
     pub get_range: Option<unsafe extern "C" fn(*mut AtkValue) -> *mut AtkRange>,
     pub get_increment: Option<unsafe extern "C" fn(*mut AtkValue) -> c_double>,
     pub get_sub_ranges: Option<unsafe extern "C" fn(*mut AtkValue) -> *mut glib::GSList>,
@@ -1376,18 +1282,18 @@ pub struct AtkValueIface {
 impl ::std::fmt::Debug for AtkValueIface {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkValueIface @ {self:p}"))
-            .field("parent", &self.parent)
-            .field("get_current_value", &self.get_current_value)
-            .field("get_maximum_value", &self.get_maximum_value)
-            .field("get_minimum_value", &self.get_minimum_value)
-            .field("set_current_value", &self.set_current_value)
-            .field("get_minimum_increment", &self.get_minimum_increment)
-            .field("get_value_and_text", &self.get_value_and_text)
-            .field("get_range", &self.get_range)
-            .field("get_increment", &self.get_increment)
-            .field("get_sub_ranges", &self.get_sub_ranges)
-            .field("set_value", &self.set_value)
-            .finish()
+         .field("parent", &self.parent)
+         .field("get_current_value", &self.get_current_value)
+         .field("get_maximum_value", &self.get_maximum_value)
+         .field("get_minimum_value", &self.get_minimum_value)
+         .field("set_current_value", &self.set_current_value)
+         .field("get_minimum_increment", &self.get_minimum_increment)
+         .field("get_value_and_text", &self.get_value_and_text)
+         .field("get_range", &self.get_range)
+         .field("get_increment", &self.get_increment)
+         .field("get_sub_ranges", &self.get_sub_ranges)
+         .field("set_value", &self.set_value)
+         .finish()
     }
 }
 
@@ -1400,8 +1306,8 @@ pub struct AtkWindowIface {
 impl ::std::fmt::Debug for AtkWindowIface {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkWindowIface @ {self:p}"))
-            .field("parent", &self.parent)
-            .finish()
+         .field("parent", &self.parent)
+         .finish()
     }
 }
 
@@ -1415,8 +1321,8 @@ pub struct AtkGObjectAccessible {
 impl ::std::fmt::Debug for AtkGObjectAccessible {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkGObjectAccessible @ {self:p}"))
-            .field("parent", &self.parent)
-            .finish()
+         .field("parent", &self.parent)
+         .finish()
     }
 }
 
@@ -1429,8 +1335,8 @@ pub struct AtkHyperlink {
 impl ::std::fmt::Debug for AtkHyperlink {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkHyperlink @ {self:p}"))
-            .field("parent", &self.parent)
-            .finish()
+         .field("parent", &self.parent)
+         .finish()
     }
 }
 
@@ -1443,8 +1349,8 @@ pub struct AtkMisc {
 impl ::std::fmt::Debug for AtkMisc {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkMisc @ {self:p}"))
-            .field("parent", &self.parent)
-            .finish()
+         .field("parent", &self.parent)
+         .finish()
     }
 }
 
@@ -1457,8 +1363,8 @@ pub struct AtkNoOpObject {
 impl ::std::fmt::Debug for AtkNoOpObject {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkNoOpObject @ {self:p}"))
-            .field("parent", &self.parent)
-            .finish()
+         .field("parent", &self.parent)
+         .finish()
     }
 }
 
@@ -1471,8 +1377,8 @@ pub struct AtkNoOpObjectFactory {
 impl ::std::fmt::Debug for AtkNoOpObjectFactory {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkNoOpObjectFactory @ {self:p}"))
-            .field("parent", &self.parent)
-            .finish()
+         .field("parent", &self.parent)
+         .finish()
     }
 }
 
@@ -1491,14 +1397,14 @@ pub struct AtkObject {
 impl ::std::fmt::Debug for AtkObject {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkObject @ {self:p}"))
-            .field("parent", &self.parent)
-            .field("description", &self.description)
-            .field("name", &self.name)
-            .field("accessible_parent", &self.accessible_parent)
-            .field("role", &self.role)
-            .field("relation_set", &self.relation_set)
-            .field("layer", &self.layer)
-            .finish()
+         .field("parent", &self.parent)
+         .field("description", &self.description)
+         .field("name", &self.name)
+         .field("accessible_parent", &self.accessible_parent)
+         .field("role", &self.role)
+         .field("relation_set", &self.relation_set)
+         .field("layer", &self.layer)
+         .finish()
     }
 }
 
@@ -1511,8 +1417,8 @@ pub struct AtkObjectFactory {
 impl ::std::fmt::Debug for AtkObjectFactory {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkObjectFactory @ {self:p}"))
-            .field("parent", &self.parent)
-            .finish()
+         .field("parent", &self.parent)
+         .finish()
     }
 }
 
@@ -1525,8 +1431,8 @@ pub struct AtkPlug {
 impl ::std::fmt::Debug for AtkPlug {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkPlug @ {self:p}"))
-            .field("parent", &self.parent)
-            .finish()
+         .field("parent", &self.parent)
+         .finish()
     }
 }
 
@@ -1541,10 +1447,10 @@ pub struct AtkRegistry {
 impl ::std::fmt::Debug for AtkRegistry {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkRegistry @ {self:p}"))
-            .field("parent", &self.parent)
-            .field("factory_type_registry", &self.factory_type_registry)
-            .field("factory_singleton_cache", &self.factory_singleton_cache)
-            .finish()
+         .field("parent", &self.parent)
+         .field("factory_type_registry", &self.factory_type_registry)
+         .field("factory_singleton_cache", &self.factory_singleton_cache)
+         .finish()
     }
 }
 
@@ -1559,10 +1465,10 @@ pub struct AtkRelation {
 impl ::std::fmt::Debug for AtkRelation {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkRelation @ {self:p}"))
-            .field("parent", &self.parent)
-            .field("target", &self.target)
-            .field("relationship", &self.relationship)
-            .finish()
+         .field("parent", &self.parent)
+         .field("target", &self.target)
+         .field("relationship", &self.relationship)
+         .finish()
     }
 }
 
@@ -1576,9 +1482,9 @@ pub struct AtkRelationSet {
 impl ::std::fmt::Debug for AtkRelationSet {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkRelationSet @ {self:p}"))
-            .field("parent", &self.parent)
-            .field("relations", &self.relations)
-            .finish()
+         .field("parent", &self.parent)
+         .field("relations", &self.relations)
+         .finish()
     }
 }
 
@@ -1592,8 +1498,8 @@ pub struct AtkSocket {
 impl ::std::fmt::Debug for AtkSocket {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkSocket @ {self:p}"))
-            .field("parent", &self.parent)
-            .finish()
+         .field("parent", &self.parent)
+         .finish()
     }
 }
 
@@ -1606,8 +1512,8 @@ pub struct AtkStateSet {
 impl ::std::fmt::Debug for AtkStateSet {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkStateSet @ {self:p}"))
-            .field("parent", &self.parent)
-            .finish()
+         .field("parent", &self.parent)
+         .finish()
     }
 }
 
@@ -1620,13 +1526,14 @@ pub struct AtkUtil {
 impl ::std::fmt::Debug for AtkUtil {
     fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
         f.debug_struct(&format!("AtkUtil @ {self:p}"))
-            .field("parent", &self.parent)
-            .finish()
+         .field("parent", &self.parent)
+         .finish()
     }
 }
 
 // Interfaces
 #[repr(C)]
+#[allow(dead_code)]
 pub struct AtkAction {
     _data: [u8; 0],
     _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@@ -1639,6 +1546,7 @@ impl ::std::fmt::Debug for AtkAction {
 }
 
 #[repr(C)]
+#[allow(dead_code)]
 pub struct AtkComponent {
     _data: [u8; 0],
     _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@@ -1651,6 +1559,7 @@ impl ::std::fmt::Debug for AtkComponent {
 }
 
 #[repr(C)]
+#[allow(dead_code)]
 pub struct AtkDocument {
     _data: [u8; 0],
     _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@@ -1663,6 +1572,7 @@ impl ::std::fmt::Debug for AtkDocument {
 }
 
 #[repr(C)]
+#[allow(dead_code)]
 pub struct AtkEditableText {
     _data: [u8; 0],
     _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@@ -1675,6 +1585,7 @@ impl ::std::fmt::Debug for AtkEditableText {
 }
 
 #[repr(C)]
+#[allow(dead_code)]
 pub struct AtkHyperlinkImpl {
     _data: [u8; 0],
     _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@@ -1687,6 +1598,7 @@ impl ::std::fmt::Debug for AtkHyperlinkImpl {
 }
 
 #[repr(C)]
+#[allow(dead_code)]
 pub struct AtkHypertext {
     _data: [u8; 0],
     _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@@ -1699,6 +1611,7 @@ impl ::std::fmt::Debug for AtkHypertext {
 }
 
 #[repr(C)]
+#[allow(dead_code)]
 pub struct AtkImage {
     _data: [u8; 0],
     _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@@ -1711,6 +1624,7 @@ impl ::std::fmt::Debug for AtkImage {
 }
 
 #[repr(C)]
+#[allow(dead_code)]
 pub struct AtkImplementorIface {
     _data: [u8; 0],
     _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@@ -1723,6 +1637,7 @@ impl ::std::fmt::Debug for AtkImplementorIface {
 }
 
 #[repr(C)]
+#[allow(dead_code)]
 pub struct AtkSelection {
     _data: [u8; 0],
     _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@@ -1735,6 +1650,7 @@ impl ::std::fmt::Debug for AtkSelection {
 }
 
 #[repr(C)]
+#[allow(dead_code)]
 pub struct AtkStreamableContent {
     _data: [u8; 0],
     _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@@ -1747,6 +1663,7 @@ impl ::std::fmt::Debug for AtkStreamableContent {
 }
 
 #[repr(C)]
+#[allow(dead_code)]
 pub struct AtkTable {
     _data: [u8; 0],
     _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@@ -1759,6 +1676,7 @@ impl ::std::fmt::Debug for AtkTable {
 }
 
 #[repr(C)]
+#[allow(dead_code)]
 pub struct AtkTableCell {
     _data: [u8; 0],
     _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@@ -1771,6 +1689,7 @@ impl ::std::fmt::Debug for AtkTableCell {
 }
 
 #[repr(C)]
+#[allow(dead_code)]
 pub struct AtkText {
     _data: [u8; 0],
     _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@@ -1783,6 +1702,7 @@ impl ::std::fmt::Debug for AtkText {
 }
 
 #[repr(C)]
+#[allow(dead_code)]
 pub struct AtkValue {
     _data: [u8; 0],
     _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@@ -1795,6 +1715,7 @@ impl ::std::fmt::Debug for AtkValue {
 }
 
 #[repr(C)]
+#[allow(dead_code)]
 pub struct AtkWindow {
     _data: [u8; 0],
     _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
@@ -1806,7 +1727,7 @@ impl ::std::fmt::Debug for AtkWindow {
     }
 }
 
-#[link(name = "atk-1.0")]
+
 extern "C" {
 
     //=========================================================================
@@ -1913,11 +1834,7 @@ extern "C" {
     // AtkRange
     //=========================================================================
     pub fn atk_range_get_type() -> GType;
-    pub fn atk_range_new(
-        lower_limit: c_double,
-        upper_limit: c_double,
-        description: *const c_char,
-    ) -> *mut AtkRange;
+    pub fn atk_range_new(lower_limit: c_double, upper_limit: c_double, description: *const c_char) -> *mut AtkRange;
     pub fn atk_range_copy(src: *mut AtkRange) -> *mut AtkRange;
     pub fn atk_range_free(range: *mut AtkRange);
     pub fn atk_range_get_description(range: *mut AtkRange) -> *const c_char;
@@ -1939,9 +1856,7 @@ extern "C" {
     //=========================================================================
     pub fn atk_gobject_accessible_get_type() -> GType;
     pub fn atk_gobject_accessible_for_object(obj: *mut gobject::GObject) -> *mut AtkObject;
-    pub fn atk_gobject_accessible_get_object(
-        obj: *mut AtkGObjectAccessible,
-    ) -> *mut gobject::GObject;
+    pub fn atk_gobject_accessible_get_object(obj: *mut AtkGObjectAccessible) -> *mut gobject::GObject;
 
     //=========================================================================
     // AtkHyperlink
@@ -1980,20 +1895,16 @@ extern "C" {
     // AtkObject
     //=========================================================================
     pub fn atk_object_get_type() -> GType;
-    pub fn atk_object_add_relationship(
-        object: *mut AtkObject,
-        relationship: AtkRelationType,
-        target: *mut AtkObject,
-    ) -> gboolean;
-    pub fn atk_object_connect_property_change_handler(
-        accessible: *mut AtkObject,
-        handler: *mut AtkPropertyChangeHandler,
-    ) -> c_uint;
+    pub fn atk_object_add_relationship(object: *mut AtkObject, relationship: AtkRelationType, target: *mut AtkObject) -> gboolean;
+    pub fn atk_object_connect_property_change_handler(accessible: *mut AtkObject, handler: *mut AtkPropertyChangeHandler) -> c_uint;
     #[cfg(feature = "v2_34")]
     #[cfg_attr(docsrs, doc(cfg(feature = "v2_34")))]
     pub fn atk_object_get_accessible_id(accessible: *mut AtkObject) -> *const c_char;
     pub fn atk_object_get_attributes(accessible: *mut AtkObject) -> *mut AtkAttributeSet;
     pub fn atk_object_get_description(accessible: *mut AtkObject) -> *const c_char;
+    #[cfg(feature = "v2_52")]
+    #[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
+    pub fn atk_object_get_help_text(accessible: *mut AtkObject) -> *const c_char;
     pub fn atk_object_get_index_in_parent(accessible: *mut AtkObject) -> c_int;
     pub fn atk_object_get_layer(accessible: *mut AtkObject) -> AtkLayer;
     pub fn atk_object_get_mdi_zorder(accessible: *mut AtkObject) -> c_int;
@@ -2003,28 +1914,20 @@ extern "C" {
     pub fn atk_object_get_parent(accessible: *mut AtkObject) -> *mut AtkObject;
     pub fn atk_object_get_role(accessible: *mut AtkObject) -> AtkRole;
     pub fn atk_object_initialize(accessible: *mut AtkObject, data: gpointer);
-    pub fn atk_object_notify_state_change(
-        accessible: *mut AtkObject,
-        state: AtkState,
-        value: gboolean,
-    );
+    pub fn atk_object_notify_state_change(accessible: *mut AtkObject, state: AtkState, value: gboolean);
     pub fn atk_object_peek_parent(accessible: *mut AtkObject) -> *mut AtkObject;
     pub fn atk_object_ref_accessible_child(accessible: *mut AtkObject, i: c_int) -> *mut AtkObject;
     pub fn atk_object_ref_relation_set(accessible: *mut AtkObject) -> *mut AtkRelationSet;
     pub fn atk_object_ref_state_set(accessible: *mut AtkObject) -> *mut AtkStateSet;
-    pub fn atk_object_remove_property_change_handler(
-        accessible: *mut AtkObject,
-        handler_id: c_uint,
-    );
-    pub fn atk_object_remove_relationship(
-        object: *mut AtkObject,
-        relationship: AtkRelationType,
-        target: *mut AtkObject,
-    ) -> gboolean;
+    pub fn atk_object_remove_property_change_handler(accessible: *mut AtkObject, handler_id: c_uint);
+    pub fn atk_object_remove_relationship(object: *mut AtkObject, relationship: AtkRelationType, target: *mut AtkObject) -> gboolean;
     #[cfg(feature = "v2_34")]
     #[cfg_attr(docsrs, doc(cfg(feature = "v2_34")))]
-    pub fn atk_object_set_accessible_id(accessible: *mut AtkObject, name: *const c_char);
+    pub fn atk_object_set_accessible_id(accessible: *mut AtkObject, id: *const c_char);
     pub fn atk_object_set_description(accessible: *mut AtkObject, description: *const c_char);
+    #[cfg(feature = "v2_52")]
+    #[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
+    pub fn atk_object_set_help_text(accessible: *mut AtkObject, help_text: *const c_char);
     pub fn atk_object_set_name(accessible: *mut AtkObject, name: *const c_char);
     pub fn atk_object_set_parent(accessible: *mut AtkObject, parent: *mut AtkObject);
     pub fn atk_object_set_role(accessible: *mut AtkObject, role: AtkRole);
@@ -2033,10 +1936,7 @@ extern "C" {
     // AtkObjectFactory
     //=========================================================================
     pub fn atk_object_factory_get_type() -> GType;
-    pub fn atk_object_factory_create_accessible(
-        factory: *mut AtkObjectFactory,
-        obj: *mut gobject::GObject,
-    ) -> *mut AtkObject;
+    pub fn atk_object_factory_create_accessible(factory: *mut AtkObjectFactory, obj: *mut gobject::GObject) -> *mut AtkObject;
     pub fn atk_object_factory_get_accessible_type(factory: *mut AtkObjectFactory) -> GType;
     pub fn atk_object_factory_invalidate(factory: *mut AtkObjectFactory);
 
@@ -2051,33 +1951,19 @@ extern "C" {
     // AtkRegistry
     //=========================================================================
     pub fn atk_registry_get_type() -> GType;
-    pub fn atk_registry_get_factory(
-        registry: *mut AtkRegistry,
-        type_: GType,
-    ) -> *mut AtkObjectFactory;
+    pub fn atk_registry_get_factory(registry: *mut AtkRegistry, type_: GType) -> *mut AtkObjectFactory;
     pub fn atk_registry_get_factory_type(registry: *mut AtkRegistry, type_: GType) -> GType;
-    pub fn atk_registry_set_factory_type(
-        registry: *mut AtkRegistry,
-        type_: GType,
-        factory_type: GType,
-    );
+    pub fn atk_registry_set_factory_type(registry: *mut AtkRegistry, type_: GType, factory_type: GType);
 
     //=========================================================================
     // AtkRelation
     //=========================================================================
     pub fn atk_relation_get_type() -> GType;
-    pub fn atk_relation_new(
-        targets: *mut *mut AtkObject,
-        n_targets: c_int,
-        relationship: AtkRelationType,
-    ) -> *mut AtkRelation;
+    pub fn atk_relation_new(targets: *mut *mut AtkObject, n_targets: c_int, relationship: AtkRelationType) -> *mut AtkRelation;
     pub fn atk_relation_add_target(relation: *mut AtkRelation, target: *mut AtkObject);
     pub fn atk_relation_get_relation_type(relation: *mut AtkRelation) -> AtkRelationType;
     pub fn atk_relation_get_target(relation: *mut AtkRelation) -> *mut glib::GPtrArray;
-    pub fn atk_relation_remove_target(
-        relation: *mut AtkRelation,
-        target: *mut AtkObject,
-    ) -> gboolean;
+    pub fn atk_relation_remove_target(relation: *mut AtkRelation, target: *mut AtkObject) -> gboolean;
 
     //=========================================================================
     // AtkRelationSet
@@ -2085,26 +1971,12 @@ extern "C" {
     pub fn atk_relation_set_get_type() -> GType;
     pub fn atk_relation_set_new() -> *mut AtkRelationSet;
     pub fn atk_relation_set_add(set: *mut AtkRelationSet, relation: *mut AtkRelation);
-    pub fn atk_relation_set_add_relation_by_type(
-        set: *mut AtkRelationSet,
-        relationship: AtkRelationType,
-        target: *mut AtkObject,
-    );
-    pub fn atk_relation_set_contains(
-        set: *mut AtkRelationSet,
-        relationship: AtkRelationType,
-    ) -> gboolean;
-    pub fn atk_relation_set_contains_target(
-        set: *mut AtkRelationSet,
-        relationship: AtkRelationType,
-        target: *mut AtkObject,
-    ) -> gboolean;
+    pub fn atk_relation_set_add_relation_by_type(set: *mut AtkRelationSet, relationship: AtkRelationType, target: *mut AtkObject);
+    pub fn atk_relation_set_contains(set: *mut AtkRelationSet, relationship: AtkRelationType) -> gboolean;
+    pub fn atk_relation_set_contains_target(set: *mut AtkRelationSet, relationship: AtkRelationType, target: *mut AtkObject) -> gboolean;
     pub fn atk_relation_set_get_n_relations(set: *mut AtkRelationSet) -> c_int;
     pub fn atk_relation_set_get_relation(set: *mut AtkRelationSet, i: c_int) -> *mut AtkRelation;
-    pub fn atk_relation_set_get_relation_by_type(
-        set: *mut AtkRelationSet,
-        relationship: AtkRelationType,
-    ) -> *mut AtkRelation;
+    pub fn atk_relation_set_get_relation_by_type(set: *mut AtkRelationSet, relationship: AtkRelationType) -> *mut AtkRelation;
     pub fn atk_relation_set_remove(set: *mut AtkRelationSet, relation: *mut AtkRelation);
 
     //=========================================================================
@@ -2121,32 +1993,15 @@ extern "C" {
     pub fn atk_state_set_get_type() -> GType;
     pub fn atk_state_set_new() -> *mut AtkStateSet;
     pub fn atk_state_set_add_state(set: *mut AtkStateSet, type_: AtkStateType) -> gboolean;
-    pub fn atk_state_set_add_states(
-        set: *mut AtkStateSet,
-        types: *mut AtkStateType,
-        n_types: c_int,
-    );
-    pub fn atk_state_set_and_sets(
-        set: *mut AtkStateSet,
-        compare_set: *mut AtkStateSet,
-    ) -> *mut AtkStateSet;
+    pub fn atk_state_set_add_states(set: *mut AtkStateSet, types: *mut AtkStateType, n_types: c_int);
+    pub fn atk_state_set_and_sets(set: *mut AtkStateSet, compare_set: *mut AtkStateSet) -> *mut AtkStateSet;
     pub fn atk_state_set_clear_states(set: *mut AtkStateSet);
     pub fn atk_state_set_contains_state(set: *mut AtkStateSet, type_: AtkStateType) -> gboolean;
-    pub fn atk_state_set_contains_states(
-        set: *mut AtkStateSet,
-        types: *mut AtkStateType,
-        n_types: c_int,
-    ) -> gboolean;
+    pub fn atk_state_set_contains_states(set: *mut AtkStateSet, types: *mut AtkStateType, n_types: c_int) -> gboolean;
     pub fn atk_state_set_is_empty(set: *mut AtkStateSet) -> gboolean;
-    pub fn atk_state_set_or_sets(
-        set: *mut AtkStateSet,
-        compare_set: *mut AtkStateSet,
-    ) -> *mut AtkStateSet;
+    pub fn atk_state_set_or_sets(set: *mut AtkStateSet, compare_set: *mut AtkStateSet) -> *mut AtkStateSet;
     pub fn atk_state_set_remove_state(set: *mut AtkStateSet, type_: AtkStateType) -> gboolean;
-    pub fn atk_state_set_xor_sets(
-        set: *mut AtkStateSet,
-        compare_set: *mut AtkStateSet,
-    ) -> *mut AtkStateSet;
+    pub fn atk_state_set_xor_sets(set: *mut AtkStateSet, compare_set: *mut AtkStateSet) -> *mut AtkStateSet;
 
     //=========================================================================
     // AtkUtil
@@ -2163,135 +2018,62 @@ extern "C" {
     pub fn atk_action_get_localized_name(action: *mut AtkAction, i: c_int) -> *const c_char;
     pub fn atk_action_get_n_actions(action: *mut AtkAction) -> c_int;
     pub fn atk_action_get_name(action: *mut AtkAction, i: c_int) -> *const c_char;
-    pub fn atk_action_set_description(
-        action: *mut AtkAction,
-        i: c_int,
-        desc: *const c_char,
-    ) -> gboolean;
+    pub fn atk_action_set_description(action: *mut AtkAction, i: c_int, desc: *const c_char) -> gboolean;
 
     //=========================================================================
     // AtkComponent
     //=========================================================================
     pub fn atk_component_get_type() -> GType;
-    pub fn atk_component_add_focus_handler(
-        component: *mut AtkComponent,
-        handler: AtkFocusHandler,
-    ) -> c_uint;
-    pub fn atk_component_contains(
-        component: *mut AtkComponent,
-        x: c_int,
-        y: c_int,
-        coord_type: AtkCoordType,
-    ) -> gboolean;
+    pub fn atk_component_add_focus_handler(component: *mut AtkComponent, handler: AtkFocusHandler) -> c_uint;
+    pub fn atk_component_contains(component: *mut AtkComponent, x: c_int, y: c_int, coord_type: AtkCoordType) -> gboolean;
     pub fn atk_component_get_alpha(component: *mut AtkComponent) -> c_double;
-    pub fn atk_component_get_extents(
-        component: *mut AtkComponent,
-        x: *mut c_int,
-        y: *mut c_int,
-        width: *mut c_int,
-        height: *mut c_int,
-        coord_type: AtkCoordType,
-    );
+    pub fn atk_component_get_extents(component: *mut AtkComponent, x: *mut c_int, y: *mut c_int, width: *mut c_int, height: *mut c_int, coord_type: AtkCoordType);
     pub fn atk_component_get_layer(component: *mut AtkComponent) -> AtkLayer;
     pub fn atk_component_get_mdi_zorder(component: *mut AtkComponent) -> c_int;
-    pub fn atk_component_get_position(
-        component: *mut AtkComponent,
-        x: *mut c_int,
-        y: *mut c_int,
-        coord_type: AtkCoordType,
-    );
-    pub fn atk_component_get_size(
-        component: *mut AtkComponent,
-        width: *mut c_int,
-        height: *mut c_int,
-    );
+    pub fn atk_component_get_position(component: *mut AtkComponent, x: *mut c_int, y: *mut c_int, coord_type: AtkCoordType);
+    pub fn atk_component_get_size(component: *mut AtkComponent, width: *mut c_int, height: *mut c_int);
     pub fn atk_component_grab_focus(component: *mut AtkComponent) -> gboolean;
-    pub fn atk_component_ref_accessible_at_point(
-        component: *mut AtkComponent,
-        x: c_int,
-        y: c_int,
-        coord_type: AtkCoordType,
-    ) -> *mut AtkObject;
+    pub fn atk_component_ref_accessible_at_point(component: *mut AtkComponent, x: c_int, y: c_int, coord_type: AtkCoordType) -> *mut AtkObject;
     pub fn atk_component_remove_focus_handler(component: *mut AtkComponent, handler_id: c_uint);
     #[cfg(feature = "v2_30")]
     #[cfg_attr(docsrs, doc(cfg(feature = "v2_30")))]
     pub fn atk_component_scroll_to(component: *mut AtkComponent, type_: AtkScrollType) -> gboolean;
     #[cfg(feature = "v2_30")]
     #[cfg_attr(docsrs, doc(cfg(feature = "v2_30")))]
-    pub fn atk_component_scroll_to_point(
-        component: *mut AtkComponent,
-        coords: AtkCoordType,
-        x: c_int,
-        y: c_int,
-    ) -> gboolean;
-    pub fn atk_component_set_extents(
-        component: *mut AtkComponent,
-        x: c_int,
-        y: c_int,
-        width: c_int,
-        height: c_int,
-        coord_type: AtkCoordType,
-    ) -> gboolean;
-    pub fn atk_component_set_position(
-        component: *mut AtkComponent,
-        x: c_int,
-        y: c_int,
-        coord_type: AtkCoordType,
-    ) -> gboolean;
-    pub fn atk_component_set_size(
-        component: *mut AtkComponent,
-        width: c_int,
-        height: c_int,
-    ) -> gboolean;
+    pub fn atk_component_scroll_to_point(component: *mut AtkComponent, coords: AtkCoordType, x: c_int, y: c_int) -> gboolean;
+    pub fn atk_component_set_extents(component: *mut AtkComponent, x: c_int, y: c_int, width: c_int, height: c_int, coord_type: AtkCoordType) -> gboolean;
+    pub fn atk_component_set_position(component: *mut AtkComponent, x: c_int, y: c_int, coord_type: AtkCoordType) -> gboolean;
+    pub fn atk_component_set_size(component: *mut AtkComponent, width: c_int, height: c_int) -> gboolean;
 
     //=========================================================================
     // AtkDocument
     //=========================================================================
     pub fn atk_document_get_type() -> GType;
-    pub fn atk_document_get_attribute_value(
-        document: *mut AtkDocument,
-        attribute_name: *const c_char,
-    ) -> *const c_char;
+    pub fn atk_document_get_attribute_value(document: *mut AtkDocument, attribute_name: *const c_char) -> *const c_char;
     pub fn atk_document_get_attributes(document: *mut AtkDocument) -> *mut AtkAttributeSet;
     pub fn atk_document_get_current_page_number(document: *mut AtkDocument) -> c_int;
     pub fn atk_document_get_document(document: *mut AtkDocument) -> gpointer;
     pub fn atk_document_get_document_type(document: *mut AtkDocument) -> *const c_char;
     pub fn atk_document_get_locale(document: *mut AtkDocument) -> *const c_char;
     pub fn atk_document_get_page_count(document: *mut AtkDocument) -> c_int;
-    pub fn atk_document_set_attribute_value(
-        document: *mut AtkDocument,
-        attribute_name: *const c_char,
-        attribute_value: *const c_char,
-    ) -> gboolean;
+    #[cfg(feature = "v2_52")]
+    #[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
+    pub fn atk_document_get_text_selections(document: *mut AtkDocument) -> *mut glib::GArray;
+    pub fn atk_document_set_attribute_value(document: *mut AtkDocument, attribute_name: *const c_char, attribute_value: *const c_char) -> gboolean;
+    #[cfg(feature = "v2_52")]
+    #[cfg_attr(docsrs, doc(cfg(feature = "v2_52")))]
+    pub fn atk_document_set_text_selections(document: *mut AtkDocument, selections: *mut glib::GArray) -> gboolean;
 
     //=========================================================================
     // AtkEditableText
     //=========================================================================
     pub fn atk_editable_text_get_type() -> GType;
-    pub fn atk_editable_text_copy_text(
-        text: *mut AtkEditableText,
-        start_pos: c_int,
-        end_pos: c_int,
-    );
+    pub fn atk_editable_text_copy_text(text: *mut AtkEditableText, start_pos: c_int, end_pos: c_int);
     pub fn atk_editable_text_cut_text(text: *mut AtkEditableText, start_pos: c_int, end_pos: c_int);
-    pub fn atk_editable_text_delete_text(
-        text: *mut AtkEditableText,
-        start_pos: c_int,
-        end_pos: c_int,
-    );
-    pub fn atk_editable_text_insert_text(
-        text: *mut AtkEditableText,
-        string: *const c_char,
-        length: c_int,
-        position: *mut c_int,
-    );
+    pub fn atk_editable_text_delete_text(text: *mut AtkEditableText, start_pos: c_int, end_pos: c_int);
+    pub fn atk_editable_text_insert_text(text: *mut AtkEditableText, string: *const c_char, length: c_int, position: *mut c_int);
     pub fn atk_editable_text_paste_text(text: *mut AtkEditableText, position: c_int);
-    pub fn atk_editable_text_set_run_attributes(
-        text: *mut AtkEditableText,
-        attrib_set: *mut AtkAttributeSet,
-        start_offset: c_int,
-        end_offset: c_int,
-    ) -> gboolean;
+    pub fn atk_editable_text_set_run_attributes(text: *mut AtkEditableText, attrib_set: *mut AtkAttributeSet, start_offset: c_int, end_offset: c_int) -> gboolean;
     pub fn atk_editable_text_set_text_contents(text: *mut AtkEditableText, string: *const c_char);
 
     //=========================================================================
@@ -2304,10 +2086,7 @@ extern "C" {
     // AtkHypertext
     //=========================================================================
     pub fn atk_hypertext_get_type() -> GType;
-    pub fn atk_hypertext_get_link(
-        hypertext: *mut AtkHypertext,
-        link_index: c_int,
-    ) -> *mut AtkHyperlink;
+    pub fn atk_hypertext_get_link(hypertext: *mut AtkHypertext, link_index: c_int) -> *mut AtkHyperlink;
     pub fn atk_hypertext_get_link_index(hypertext: *mut AtkHypertext, char_index: c_int) -> c_int;
     pub fn atk_hypertext_get_n_links(hypertext: *mut AtkHypertext) -> c_int;
 
@@ -2317,17 +2096,9 @@ extern "C" {
     pub fn atk_image_get_type() -> GType;
     pub fn atk_image_get_image_description(image: *mut AtkImage) -> *const c_char;
     pub fn atk_image_get_image_locale(image: *mut AtkImage) -> *const c_char;
-    pub fn atk_image_get_image_position(
-        image: *mut AtkImage,
-        x: *mut c_int,
-        y: *mut c_int,
-        coord_type: AtkCoordType,
-    );
+    pub fn atk_image_get_image_position(image: *mut AtkImage, x: *mut c_int, y: *mut c_int, coord_type: AtkCoordType);
     pub fn atk_image_get_image_size(image: *mut AtkImage, width: *mut c_int, height: *mut c_int);
-    pub fn atk_image_set_image_description(
-        image: *mut AtkImage,
-        description: *const c_char,
-    ) -> gboolean;
+    pub fn atk_image_set_image_description(image: *mut AtkImage, description: *const c_char) -> gboolean;
 
     //=========================================================================
     // AtkImplementorIface
@@ -2350,19 +2121,10 @@ extern "C" {
     // AtkStreamableContent
     //=========================================================================
     pub fn atk_streamable_content_get_type() -> GType;
-    pub fn atk_streamable_content_get_mime_type(
-        streamable: *mut AtkStreamableContent,
-        i: c_int,
-    ) -> *const c_char;
+    pub fn atk_streamable_content_get_mime_type(streamable: *mut AtkStreamableContent, i: c_int) -> *const c_char;
     pub fn atk_streamable_content_get_n_mime_types(streamable: *mut AtkStreamableContent) -> c_int;
-    pub fn atk_streamable_content_get_stream(
-        streamable: *mut AtkStreamableContent,
-        mime_type: *const c_char,
-    ) -> *mut glib::GIOChannel;
-    pub fn atk_streamable_content_get_uri(
-        streamable: *mut AtkStreamableContent,
-        mime_type: *const c_char,
-    ) -> *const c_char;
+    pub fn atk_streamable_content_get_stream(streamable: *mut AtkStreamableContent, mime_type: *const c_char) -> *mut glib::GIOChannel;
+    pub fn atk_streamable_content_get_uri(streamable: *mut AtkStreamableContent, mime_type: *const c_char) -> *const c_char;
 
     //=========================================================================
     // AtkTable
@@ -2373,8 +2135,7 @@ extern "C" {
     pub fn atk_table_get_caption(table: *mut AtkTable) -> *mut AtkObject;
     pub fn atk_table_get_column_at_index(table: *mut AtkTable, index_: c_int) -> c_int;
     pub fn atk_table_get_column_description(table: *mut AtkTable, column: c_int) -> *const c_char;
-    pub fn atk_table_get_column_extent_at(table: *mut AtkTable, row: c_int, column: c_int)
-        -> c_int;
+    pub fn atk_table_get_column_extent_at(table: *mut AtkTable, row: c_int, column: c_int) -> c_int;
     pub fn atk_table_get_column_header(table: *mut AtkTable, column: c_int) -> *mut AtkObject;
     pub fn atk_table_get_index_at(table: *mut AtkTable, row: c_int, column: c_int) -> c_int;
     pub fn atk_table_get_n_columns(table: *mut AtkTable) -> c_int;
@@ -2383,8 +2144,7 @@ extern "C" {
     pub fn atk_table_get_row_description(table: *mut AtkTable, row: c_int) -> *const c_char;
     pub fn atk_table_get_row_extent_at(table: *mut AtkTable, row: c_int, column: c_int) -> c_int;
     pub fn atk_table_get_row_header(table: *mut AtkTable, row: c_int) -> *mut AtkObject;
-    pub fn atk_table_get_selected_columns(table: *mut AtkTable, selected: *mut *mut c_int)
-        -> c_int;
+    pub fn atk_table_get_selected_columns(table: *mut AtkTable, selected: *mut *mut c_int) -> c_int;
     pub fn atk_table_get_selected_rows(table: *mut AtkTable, selected: *mut *mut c_int) -> c_int;
     pub fn atk_table_get_summary(table: *mut AtkTable) -> *mut AtkObject;
     pub fn atk_table_is_column_selected(table: *mut AtkTable, column: c_int) -> gboolean;
@@ -2394,17 +2154,9 @@ extern "C" {
     pub fn atk_table_remove_column_selection(table: *mut AtkTable, column: c_int) -> gboolean;
     pub fn atk_table_remove_row_selection(table: *mut AtkTable, row: c_int) -> gboolean;
     pub fn atk_table_set_caption(table: *mut AtkTable, caption: *mut AtkObject);
-    pub fn atk_table_set_column_description(
-        table: *mut AtkTable,
-        column: c_int,
-        description: *const c_char,
-    );
+    pub fn atk_table_set_column_description(table: *mut AtkTable, column: c_int, description: *const c_char);
     pub fn atk_table_set_column_header(table: *mut AtkTable, column: c_int, header: *mut AtkObject);
-    pub fn atk_table_set_row_description(
-        table: *mut AtkTable,
-        row: c_int,
-        description: *const c_char,
-    );
+    pub fn atk_table_set_row_description(table: *mut AtkTable, row: c_int, description: *const c_char);
     pub fn atk_table_set_row_header(table: *mut AtkTable, row: c_int, header: *mut AtkObject);
     pub fn atk_table_set_summary(table: *mut AtkTable, accessible: *mut AtkObject);
 
@@ -2414,18 +2166,8 @@ extern "C" {
     pub fn atk_table_cell_get_type() -> GType;
     pub fn atk_table_cell_get_column_header_cells(cell: *mut AtkTableCell) -> *mut glib::GPtrArray;
     pub fn atk_table_cell_get_column_span(cell: *mut AtkTableCell) -> c_int;
-    pub fn atk_table_cell_get_position(
-        cell: *mut AtkTableCell,
-        row: *mut c_int,
-        column: *mut c_int,
-    ) -> gboolean;
-    pub fn atk_table_cell_get_row_column_span(
-        cell: *mut AtkTableCell,
-        row: *mut c_int,
-        column: *mut c_int,
-        row_span: *mut c_int,
-        column_span: *mut c_int,
-    ) -> gboolean;
+    pub fn atk_table_cell_get_position(cell: *mut AtkTableCell, row: *mut c_int, column: *mut c_int) -> gboolean;
+    pub fn atk_table_cell_get_row_column_span(cell: *mut AtkTableCell, row: *mut c_int, column: *mut c_int, row_span: *mut c_int, column_span: *mut c_int) -> gboolean;
     pub fn atk_table_cell_get_row_header_cells(cell: *mut AtkTableCell) -> *mut glib::GPtrArray;
     pub fn atk_table_cell_get_row_span(cell: *mut AtkTableCell) -> c_int;
     pub fn atk_table_cell_get_table(cell: *mut AtkTableCell) -> *mut AtkObject;
@@ -2435,116 +2177,32 @@ extern "C" {
     //=========================================================================
     pub fn atk_text_get_type() -> GType;
     pub fn atk_text_free_ranges(ranges: *mut *mut AtkTextRange);
-    pub fn atk_text_add_selection(
-        text: *mut AtkText,
-        start_offset: c_int,
-        end_offset: c_int,
-    ) -> gboolean;
-    pub fn atk_text_get_bounded_ranges(
-        text: *mut AtkText,
-        rect: *mut AtkTextRectangle,
-        coord_type: AtkCoordType,
-        x_clip_type: AtkTextClipType,
-        y_clip_type: AtkTextClipType,
-    ) -> *mut *mut AtkTextRange;
+    pub fn atk_text_add_selection(text: *mut AtkText, start_offset: c_int, end_offset: c_int) -> gboolean;
+    pub fn atk_text_get_bounded_ranges(text: *mut AtkText, rect: *mut AtkTextRectangle, coord_type: AtkCoordType, x_clip_type: AtkTextClipType, y_clip_type: AtkTextClipType) -> *mut *mut AtkTextRange;
     pub fn atk_text_get_caret_offset(text: *mut AtkText) -> c_int;
     pub fn atk_text_get_character_at_offset(text: *mut AtkText, offset: c_int) -> u32;
     pub fn atk_text_get_character_count(text: *mut AtkText) -> c_int;
-    pub fn atk_text_get_character_extents(
-        text: *mut AtkText,
-        offset: c_int,
-        x: *mut c_int,
-        y: *mut c_int,
-        width: *mut c_int,
-        height: *mut c_int,
-        coords: AtkCoordType,
-    );
+    pub fn atk_text_get_character_extents(text: *mut AtkText, offset: c_int, x: *mut c_int, y: *mut c_int, width: *mut c_int, height: *mut c_int, coords: AtkCoordType);
     pub fn atk_text_get_default_attributes(text: *mut AtkText) -> *mut AtkAttributeSet;
     pub fn atk_text_get_n_selections(text: *mut AtkText) -> c_int;
-    pub fn atk_text_get_offset_at_point(
-        text: *mut AtkText,
-        x: c_int,
-        y: c_int,
-        coords: AtkCoordType,
-    ) -> c_int;
-    pub fn atk_text_get_range_extents(
-        text: *mut AtkText,
-        start_offset: c_int,
-        end_offset: c_int,
-        coord_type: AtkCoordType,
-        rect: *mut AtkTextRectangle,
-    );
-    pub fn atk_text_get_run_attributes(
-        text: *mut AtkText,
-        offset: c_int,
-        start_offset: *mut c_int,
-        end_offset: *mut c_int,
-    ) -> *mut AtkAttributeSet;
-    pub fn atk_text_get_selection(
-        text: *mut AtkText,
-        selection_num: c_int,
-        start_offset: *mut c_int,
-        end_offset: *mut c_int,
-    ) -> *mut c_char;
-    pub fn atk_text_get_string_at_offset(
-        text: *mut AtkText,
-        offset: c_int,
-        granularity: AtkTextGranularity,
-        start_offset: *mut c_int,
-        end_offset: *mut c_int,
-    ) -> *mut c_char;
-    pub fn atk_text_get_text(
-        text: *mut AtkText,
-        start_offset: c_int,
-        end_offset: c_int,
-    ) -> *mut c_char;
-    pub fn atk_text_get_text_after_offset(
-        text: *mut AtkText,
-        offset: c_int,
-        boundary_type: AtkTextBoundary,
-        start_offset: *mut c_int,
-        end_offset: *mut c_int,
-    ) -> *mut c_char;
-    pub fn atk_text_get_text_at_offset(
-        text: *mut AtkText,
-        offset: c_int,
-        boundary_type: AtkTextBoundary,
-        start_offset: *mut c_int,
-        end_offset: *mut c_int,
-    ) -> *mut c_char;
-    pub fn atk_text_get_text_before_offset(
-        text: *mut AtkText,
-        offset: c_int,
-        boundary_type: AtkTextBoundary,
-        start_offset: *mut c_int,
-        end_offset: *mut c_int,
-    ) -> *mut c_char;
+    pub fn atk_text_get_offset_at_point(text: *mut AtkText, x: c_int, y: c_int, coords: AtkCoordType) -> c_int;
+    pub fn atk_text_get_range_extents(text: *mut AtkText, start_offset: c_int, end_offset: c_int, coord_type: AtkCoordType, rect: *mut AtkTextRectangle);
+    pub fn atk_text_get_run_attributes(text: *mut AtkText, offset: c_int, start_offset: *mut c_int, end_offset: *mut c_int) -> *mut AtkAttributeSet;
+    pub fn atk_text_get_selection(text: *mut AtkText, selection_num: c_int, start_offset: *mut c_int, end_offset: *mut c_int) -> *mut c_char;
+    pub fn atk_text_get_string_at_offset(text: *mut AtkText, offset: c_int, granularity: AtkTextGranularity, start_offset: *mut c_int, end_offset: *mut c_int) -> *mut c_char;
+    pub fn atk_text_get_text(text: *mut AtkText, start_offset: c_int, end_offset: c_int) -> *mut c_char;
+    pub fn atk_text_get_text_after_offset(text: *mut AtkText, offset: c_int, boundary_type: AtkTextBoundary, start_offset: *mut c_int, end_offset: *mut c_int) -> *mut c_char;
+    pub fn atk_text_get_text_at_offset(text: *mut AtkText, offset: c_int, boundary_type: AtkTextBoundary, start_offset: *mut c_int, end_offset: *mut c_int) -> *mut c_char;
+    pub fn atk_text_get_text_before_offset(text: *mut AtkText, offset: c_int, boundary_type: AtkTextBoundary, start_offset: *mut c_int, end_offset: *mut c_int) -> *mut c_char;
     pub fn atk_text_remove_selection(text: *mut AtkText, selection_num: c_int) -> gboolean;
     #[cfg(feature = "v2_32")]
     #[cfg_attr(docsrs, doc(cfg(feature = "v2_32")))]
-    pub fn atk_text_scroll_substring_to(
-        text: *mut AtkText,
-        start_offset: c_int,
-        end_offset: c_int,
-        type_: AtkScrollType,
-    ) -> gboolean;
+    pub fn atk_text_scroll_substring_to(text: *mut AtkText, start_offset: c_int, end_offset: c_int, type_: AtkScrollType) -> gboolean;
     #[cfg(feature = "v2_32")]
     #[cfg_attr(docsrs, doc(cfg(feature = "v2_32")))]
-    pub fn atk_text_scroll_substring_to_point(
-        text: *mut AtkText,
-        start_offset: c_int,
-        end_offset: c_int,
-        coords: AtkCoordType,
-        x: c_int,
-        y: c_int,
-    ) -> gboolean;
+    pub fn atk_text_scroll_substring_to_point(text: *mut AtkText, start_offset: c_int, end_offset: c_int, coords: AtkCoordType, x: c_int, y: c_int) -> gboolean;
     pub fn atk_text_set_caret_offset(text: *mut AtkText, offset: c_int) -> gboolean;
-    pub fn atk_text_set_selection(
-        text: *mut AtkText,
-        selection_num: c_int,
-        start_offset: c_int,
-        end_offset: c_int,
-    ) -> gboolean;
+    pub fn atk_text_set_selection(text: *mut AtkText, selection_num: c_int, start_offset: c_int, end_offset: c_int) -> gboolean;
 
     //=========================================================================
     // AtkValue
@@ -2557,15 +2215,8 @@ extern "C" {
     pub fn atk_value_get_minimum_value(obj: *mut AtkValue, value: *mut gobject::GValue);
     pub fn atk_value_get_range(obj: *mut AtkValue) -> *mut AtkRange;
     pub fn atk_value_get_sub_ranges(obj: *mut AtkValue) -> *mut glib::GSList;
-    pub fn atk_value_get_value_and_text(
-        obj: *mut AtkValue,
-        value: *mut c_double,
-        text: *mut *mut c_char,
-    );
-    pub fn atk_value_set_current_value(
-        obj: *mut AtkValue,
-        value: *const gobject::GValue,
-    ) -> gboolean;
+    pub fn atk_value_get_value_and_text(obj: *mut AtkValue, value: *mut c_double, text: *mut *mut c_char);
+    pub fn atk_value_set_current_value(obj: *mut AtkValue, value: *const gobject::GValue) -> gboolean;
     pub fn atk_value_set_value(obj: *mut AtkValue, new_value: c_double);
 
     //=========================================================================
@@ -2577,10 +2228,7 @@ extern "C" {
     // Other functions
     //=========================================================================
     pub fn atk_add_focus_tracker(focus_tracker: AtkEventListener) -> c_uint;
-    pub fn atk_add_global_event_listener(
-        listener: gobject::GSignalEmissionHook,
-        event_type: *const c_char,
-    ) -> c_uint;
+    pub fn atk_add_global_event_listener(listener: gobject::GSignalEmissionHook, event_type: *const c_char) -> c_uint;
     pub fn atk_add_key_event_listener(listener: AtkKeySnoopFunc, data: gpointer) -> c_uint;
     pub fn atk_focus_tracker_init(init: AtkEventListenerInit);
     pub fn atk_focus_tracker_notify(object: *mut AtkObject);
diff --git a/tests/abi.rs b/tests/abi.rs
index 82d18e3..c9dc233 100644
--- a/tests/abi.rs
+++ b/tests/abi.rs
@@ -1,16 +1,16 @@
 // This file was generated by gir (https://github.com/gtk-rs/gir)
-// from gir-files (https://github.com/gtk-rs/gir-files)
+// from 
 // DO NOT EDIT
 
 #![cfg(unix)]
 
 use atk_sys::*;
+use std::mem::{align_of, size_of};
 use std::env;
 use std::error::Error;
 use std::ffi::OsString;
-use std::mem::{align_of, size_of};
 use std::path::Path;
-use std::process::Command;
+use std::process::{Command, Stdio};
 use std::str;
 use tempfile::Builder;
 
@@ -66,18 +66,22 @@ fn pkg_config_cflags(packages: &[&str]) -> Result<Vec<String>, Box<dyn Error>> {
     if packages.is_empty() {
         return Ok(Vec::new());
     }
-    let pkg_config = env::var_os("PKG_CONFIG").unwrap_or_else(|| OsString::from("pkg-config"));
+    let pkg_config = env::var_os("PKG_CONFIG")
+        .unwrap_or_else(|| OsString::from("pkg-config"));
     let mut cmd = Command::new(pkg_config);
     cmd.arg("--cflags");
     cmd.args(packages);
+    cmd.stderr(Stdio::inherit());
     let out = cmd.output()?;
     if !out.status.success() {
-        return Err(format!("command {cmd:?} returned {}", out.status).into());
+        let (status, stdout) = (out.status, String::from_utf8_lossy(&out.stdout));
+        return Err(format!("command {cmd:?} failed, {status:?}\nstdout: {stdout}").into());
     }
     let stdout = str::from_utf8(&out.stdout)?;
     Ok(shell_words::split(stdout.trim())?)
 }
 
+
 #[derive(Copy, Clone, Debug, Eq, PartialEq)]
 struct Layout {
     size: usize,
@@ -160,7 +164,8 @@ fn cross_validate_layout_with_c() {
 
     let mut results = Results::default();
 
-    for ((rust_name, rust_layout), (c_name, c_layout)) in RUST_LAYOUTS.iter().zip(c_layouts.iter())
+    for ((rust_name, rust_layout), (c_name, c_layout)) in
+        RUST_LAYOUTS.iter().zip(c_layouts.iter())
     {
         if rust_name != c_name {
             results.record_failed();
@@ -170,7 +175,9 @@ fn cross_validate_layout_with_c() {
 
         if rust_layout != c_layout {
             results.record_failed();
-            eprintln!("Layout mismatch for {rust_name}\nRust: {rust_layout:?}\nC:    {c_layout:?}",);
+            eprintln!(
+                "Layout mismatch for {rust_name}\nRust: {rust_layout:?}\nC:    {c_layout:?}",
+            );
             continue;
         }
 
@@ -188,464 +195,83 @@ fn get_c_output(name: &str) -> Result<String, Box<dyn Error>> {
     let cc = Compiler::new().expect("configured compiler");
     cc.compile(&c_file, &exe)?;
 
-    let mut abi_cmd = Command::new(exe);
-    let output = abi_cmd.output()?;
-    if !output.status.success() {
-        return Err(format!("command {abi_cmd:?} failed, {output:?}").into());
+    let mut cmd = Command::new(exe);
+    cmd.stderr(Stdio::inherit());
+    let out = cmd.output()?;
+    if !out.status.success() {
+        let (status, stdout) = (out.status, String::from_utf8_lossy(&out.stdout));
+        return Err(format!("command {cmd:?} failed, {status:?}\nstdout: {stdout}").into());
     }
 
-    Ok(String::from_utf8(output.stdout)?)
+    Ok(String::from_utf8(out.stdout)?)
 }
 
 const RUST_LAYOUTS: &[(&str, Layout)] = &[
-    (
-        "AtkActionIface",
-        Layout {
-            size: size_of::<AtkActionIface>(),
-            alignment: align_of::<AtkActionIface>(),
-        },
-    ),
-    (
-        "AtkAttribute",
-        Layout {
-            size: size_of::<AtkAttribute>(),
-            alignment: align_of::<AtkAttribute>(),
-        },
-    ),
-    (
-        "AtkAttributeSet",
-        Layout {
-            size: size_of::<AtkAttributeSet>(),
-            alignment: align_of::<AtkAttributeSet>(),
-        },
-    ),
-    (
-        "AtkComponentIface",
-        Layout {
-            size: size_of::<AtkComponentIface>(),
-            alignment: align_of::<AtkComponentIface>(),
-        },
-    ),
-    (
-        "AtkCoordType",
-        Layout {
-            size: size_of::<AtkCoordType>(),
-            alignment: align_of::<AtkCoordType>(),
-        },
-    ),
-    (
-        "AtkDocumentIface",
-        Layout {
-            size: size_of::<AtkDocumentIface>(),
-            alignment: align_of::<AtkDocumentIface>(),
-        },
-    ),
-    (
-        "AtkEditableTextIface",
-        Layout {
-            size: size_of::<AtkEditableTextIface>(),
-            alignment: align_of::<AtkEditableTextIface>(),
-        },
-    ),
-    (
-        "AtkGObjectAccessible",
-        Layout {
-            size: size_of::<AtkGObjectAccessible>(),
-            alignment: align_of::<AtkGObjectAccessible>(),
-        },
-    ),
-    (
-        "AtkGObjectAccessibleClass",
-        Layout {
-            size: size_of::<AtkGObjectAccessibleClass>(),
-            alignment: align_of::<AtkGObjectAccessibleClass>(),
-        },
-    ),
-    (
-        "AtkHyperlink",
-        Layout {
-            size: size_of::<AtkHyperlink>(),
-            alignment: align_of::<AtkHyperlink>(),
-        },
-    ),
-    (
-        "AtkHyperlinkClass",
-        Layout {
-            size: size_of::<AtkHyperlinkClass>(),
-            alignment: align_of::<AtkHyperlinkClass>(),
-        },
-    ),
-    (
-        "AtkHyperlinkImplIface",
-        Layout {
-            size: size_of::<AtkHyperlinkImplIface>(),
-            alignment: align_of::<AtkHyperlinkImplIface>(),
-        },
-    ),
-    (
-        "AtkHyperlinkStateFlags",
-        Layout {
-            size: size_of::<AtkHyperlinkStateFlags>(),
-            alignment: align_of::<AtkHyperlinkStateFlags>(),
-        },
-    ),
-    (
-        "AtkHypertextIface",
-        Layout {
-            size: size_of::<AtkHypertextIface>(),
-            alignment: align_of::<AtkHypertextIface>(),
-        },
-    ),
-    (
-        "AtkImageIface",
-        Layout {
-            size: size_of::<AtkImageIface>(),
-            alignment: align_of::<AtkImageIface>(),
-        },
-    ),
-    (
-        "AtkKeyEventStruct",
-        Layout {
-            size: size_of::<AtkKeyEventStruct>(),
-            alignment: align_of::<AtkKeyEventStruct>(),
-        },
-    ),
-    (
-        "AtkKeyEventType",
-        Layout {
-            size: size_of::<AtkKeyEventType>(),
-            alignment: align_of::<AtkKeyEventType>(),
-        },
-    ),
-    (
-        "AtkLayer",
-        Layout {
-            size: size_of::<AtkLayer>(),
-            alignment: align_of::<AtkLayer>(),
-        },
-    ),
-    (
-        "AtkLive",
-        Layout {
-            size: size_of::<AtkLive>(),
-            alignment: align_of::<AtkLive>(),
-        },
-    ),
-    (
-        "AtkMisc",
-        Layout {
-            size: size_of::<AtkMisc>(),
-            alignment: align_of::<AtkMisc>(),
-        },
-    ),
-    (
-        "AtkMiscClass",
-        Layout {
-            size: size_of::<AtkMiscClass>(),
-            alignment: align_of::<AtkMiscClass>(),
-        },
-    ),
-    (
-        "AtkNoOpObject",
-        Layout {
-            size: size_of::<AtkNoOpObject>(),
-            alignment: align_of::<AtkNoOpObject>(),
-        },
-    ),
-    (
-        "AtkNoOpObjectClass",
-        Layout {
-            size: size_of::<AtkNoOpObjectClass>(),
-            alignment: align_of::<AtkNoOpObjectClass>(),
-        },
-    ),
-    (
-        "AtkNoOpObjectFactory",
-        Layout {
-            size: size_of::<AtkNoOpObjectFactory>(),
-            alignment: align_of::<AtkNoOpObjectFactory>(),
-        },
-    ),
-    (
-        "AtkNoOpObjectFactoryClass",
-        Layout {
-            size: size_of::<AtkNoOpObjectFactoryClass>(),
-            alignment: align_of::<AtkNoOpObjectFactoryClass>(),
-        },
-    ),
-    (
-        "AtkObject",
-        Layout {
-            size: size_of::<AtkObject>(),
-            alignment: align_of::<AtkObject>(),
-        },
-    ),
-    (
-        "AtkObjectClass",
-        Layout {
-            size: size_of::<AtkObjectClass>(),
-            alignment: align_of::<AtkObjectClass>(),
-        },
-    ),
-    (
-        "AtkObjectFactory",
-        Layout {
-            size: size_of::<AtkObjectFactory>(),
-            alignment: align_of::<AtkObjectFactory>(),
-        },
-    ),
-    (
-        "AtkObjectFactoryClass",
-        Layout {
-            size: size_of::<AtkObjectFactoryClass>(),
-            alignment: align_of::<AtkObjectFactoryClass>(),
-        },
-    ),
-    (
-        "AtkPlug",
-        Layout {
-            size: size_of::<AtkPlug>(),
-            alignment: align_of::<AtkPlug>(),
-        },
-    ),
-    (
-        "AtkPlugClass",
-        Layout {
-            size: size_of::<AtkPlugClass>(),
-            alignment: align_of::<AtkPlugClass>(),
-        },
-    ),
-    (
-        "AtkPropertyValues",
-        Layout {
-            size: size_of::<AtkPropertyValues>(),
-            alignment: align_of::<AtkPropertyValues>(),
-        },
-    ),
-    (
-        "AtkRectangle",
-        Layout {
-            size: size_of::<AtkRectangle>(),
-            alignment: align_of::<AtkRectangle>(),
-        },
-    ),
-    (
-        "AtkRegistry",
-        Layout {
-            size: size_of::<AtkRegistry>(),
-            alignment: align_of::<AtkRegistry>(),
-        },
-    ),
-    (
-        "AtkRegistryClass",
-        Layout {
-            size: size_of::<AtkRegistryClass>(),
-            alignment: align_of::<AtkRegistryClass>(),
-        },
-    ),
-    (
-        "AtkRelation",
-        Layout {
-            size: size_of::<AtkRelation>(),
-            alignment: align_of::<AtkRelation>(),
-        },
-    ),
-    (
-        "AtkRelationClass",
-        Layout {
-            size: size_of::<AtkRelationClass>(),
-            alignment: align_of::<AtkRelationClass>(),
-        },
-    ),
-    (
-        "AtkRelationSet",
-        Layout {
-            size: size_of::<AtkRelationSet>(),
-            alignment: align_of::<AtkRelationSet>(),
-        },
-    ),
-    (
-        "AtkRelationSetClass",
-        Layout {
-            size: size_of::<AtkRelationSetClass>(),
-            alignment: align_of::<AtkRelationSetClass>(),
-        },
-    ),
-    (
-        "AtkRelationType",
-        Layout {
-            size: size_of::<AtkRelationType>(),
-            alignment: align_of::<AtkRelationType>(),
-        },
-    ),
-    (
-        "AtkRole",
-        Layout {
-            size: size_of::<AtkRole>(),
-            alignment: align_of::<AtkRole>(),
-        },
-    ),
-    (
-        "AtkScrollType",
-        Layout {
-            size: size_of::<AtkScrollType>(),
-            alignment: align_of::<AtkScrollType>(),
-        },
-    ),
-    (
-        "AtkSelectionIface",
-        Layout {
-            size: size_of::<AtkSelectionIface>(),
-            alignment: align_of::<AtkSelectionIface>(),
-        },
-    ),
-    (
-        "AtkSocket",
-        Layout {
-            size: size_of::<AtkSocket>(),
-            alignment: align_of::<AtkSocket>(),
-        },
-    ),
-    (
-        "AtkSocketClass",
-        Layout {
-            size: size_of::<AtkSocketClass>(),
-            alignment: align_of::<AtkSocketClass>(),
-        },
-    ),
-    (
-        "AtkState",
-        Layout {
-            size: size_of::<AtkState>(),
-            alignment: align_of::<AtkState>(),
-        },
-    ),
-    (
-        "AtkStateSet",
-        Layout {
-            size: size_of::<AtkStateSet>(),
-            alignment: align_of::<AtkStateSet>(),
-        },
-    ),
-    (
-        "AtkStateSetClass",
-        Layout {
-            size: size_of::<AtkStateSetClass>(),
-            alignment: align_of::<AtkStateSetClass>(),
-        },
-    ),
-    (
-        "AtkStateType",
-        Layout {
-            size: size_of::<AtkStateType>(),
-            alignment: align_of::<AtkStateType>(),
-        },
-    ),
-    (
-        "AtkStreamableContentIface",
-        Layout {
-            size: size_of::<AtkStreamableContentIface>(),
-            alignment: align_of::<AtkStreamableContentIface>(),
-        },
-    ),
-    (
-        "AtkTableCellIface",
-        Layout {
-            size: size_of::<AtkTableCellIface>(),
-            alignment: align_of::<AtkTableCellIface>(),
-        },
-    ),
-    (
-        "AtkTableIface",
-        Layout {
-            size: size_of::<AtkTableIface>(),
-            alignment: align_of::<AtkTableIface>(),
-        },
-    ),
-    (
-        "AtkTextAttribute",
-        Layout {
-            size: size_of::<AtkTextAttribute>(),
-            alignment: align_of::<AtkTextAttribute>(),
-        },
-    ),
-    (
-        "AtkTextBoundary",
-        Layout {
-            size: size_of::<AtkTextBoundary>(),
-            alignment: align_of::<AtkTextBoundary>(),
-        },
-    ),
-    (
-        "AtkTextClipType",
-        Layout {
-            size: size_of::<AtkTextClipType>(),
-            alignment: align_of::<AtkTextClipType>(),
-        },
-    ),
-    (
-        "AtkTextGranularity",
-        Layout {
-            size: size_of::<AtkTextGranularity>(),
-            alignment: align_of::<AtkTextGranularity>(),
-        },
-    ),
-    (
-        "AtkTextIface",
-        Layout {
-            size: size_of::<AtkTextIface>(),
-            alignment: align_of::<AtkTextIface>(),
-        },
-    ),
-    (
-        "AtkTextRange",
-        Layout {
-            size: size_of::<AtkTextRange>(),
-            alignment: align_of::<AtkTextRange>(),
-        },
-    ),
-    (
-        "AtkTextRectangle",
-        Layout {
-            size: size_of::<AtkTextRectangle>(),
-            alignment: align_of::<AtkTextRectangle>(),
-        },
-    ),
-    (
-        "AtkUtil",
-        Layout {
-            size: size_of::<AtkUtil>(),
-            alignment: align_of::<AtkUtil>(),
-        },
-    ),
-    (
-        "AtkUtilClass",
-        Layout {
-            size: size_of::<AtkUtilClass>(),
-            alignment: align_of::<AtkUtilClass>(),
-        },
-    ),
-    (
-        "AtkValueIface",
-        Layout {
-            size: size_of::<AtkValueIface>(),
-            alignment: align_of::<AtkValueIface>(),
-        },
-    ),
-    (
-        "AtkValueType",
-        Layout {
-            size: size_of::<AtkValueType>(),
-            alignment: align_of::<AtkValueType>(),
-        },
-    ),
-    (
-        "AtkWindowIface",
-        Layout {
-            size: size_of::<AtkWindowIface>(),
-            alignment: align_of::<AtkWindowIface>(),
-        },
-    ),
+    ("AtkActionIface", Layout {size: size_of::<AtkActionIface>(), alignment: align_of::<AtkActionIface>()}),
+    ("AtkAttribute", Layout {size: size_of::<AtkAttribute>(), alignment: align_of::<AtkAttribute>()}),
+    ("AtkAttributeSet", Layout {size: size_of::<AtkAttributeSet>(), alignment: align_of::<AtkAttributeSet>()}),
+    ("AtkComponentIface", Layout {size: size_of::<AtkComponentIface>(), alignment: align_of::<AtkComponentIface>()}),
+    ("AtkCoordType", Layout {size: size_of::<AtkCoordType>(), alignment: align_of::<AtkCoordType>()}),
+    ("AtkDocumentIface", Layout {size: size_of::<AtkDocumentIface>(), alignment: align_of::<AtkDocumentIface>()}),
+    ("AtkEditableTextIface", Layout {size: size_of::<AtkEditableTextIface>(), alignment: align_of::<AtkEditableTextIface>()}),
+    ("AtkGObjectAccessible", Layout {size: size_of::<AtkGObjectAccessible>(), alignment: align_of::<AtkGObjectAccessible>()}),
+    ("AtkGObjectAccessibleClass", Layout {size: size_of::<AtkGObjectAccessibleClass>(), alignment: align_of::<AtkGObjectAccessibleClass>()}),
+    ("AtkHyperlink", Layout {size: size_of::<AtkHyperlink>(), alignment: align_of::<AtkHyperlink>()}),
+    ("AtkHyperlinkClass", Layout {size: size_of::<AtkHyperlinkClass>(), alignment: align_of::<AtkHyperlinkClass>()}),
+    ("AtkHyperlinkImplIface", Layout {size: size_of::<AtkHyperlinkImplIface>(), alignment: align_of::<AtkHyperlinkImplIface>()}),
+    ("AtkHyperlinkStateFlags", Layout {size: size_of::<AtkHyperlinkStateFlags>(), alignment: align_of::<AtkHyperlinkStateFlags>()}),
+    ("AtkHypertextIface", Layout {size: size_of::<AtkHypertextIface>(), alignment: align_of::<AtkHypertextIface>()}),
+    ("AtkImageIface", Layout {size: size_of::<AtkImageIface>(), alignment: align_of::<AtkImageIface>()}),
+    ("AtkKeyEventStruct", Layout {size: size_of::<AtkKeyEventStruct>(), alignment: align_of::<AtkKeyEventStruct>()}),
+    ("AtkKeyEventType", Layout {size: size_of::<AtkKeyEventType>(), alignment: align_of::<AtkKeyEventType>()}),
+    ("AtkLayer", Layout {size: size_of::<AtkLayer>(), alignment: align_of::<AtkLayer>()}),
+    ("AtkLive", Layout {size: size_of::<AtkLive>(), alignment: align_of::<AtkLive>()}),
+    ("AtkMisc", Layout {size: size_of::<AtkMisc>(), alignment: align_of::<AtkMisc>()}),
+    ("AtkMiscClass", Layout {size: size_of::<AtkMiscClass>(), alignment: align_of::<AtkMiscClass>()}),
+    ("AtkNoOpObject", Layout {size: size_of::<AtkNoOpObject>(), alignment: align_of::<AtkNoOpObject>()}),
+    ("AtkNoOpObjectClass", Layout {size: size_of::<AtkNoOpObjectClass>(), alignment: align_of::<AtkNoOpObjectClass>()}),
+    ("AtkNoOpObjectFactory", Layout {size: size_of::<AtkNoOpObjectFactory>(), alignment: align_of::<AtkNoOpObjectFactory>()}),
+    ("AtkNoOpObjectFactoryClass", Layout {size: size_of::<AtkNoOpObjectFactoryClass>(), alignment: align_of::<AtkNoOpObjectFactoryClass>()}),
+    ("AtkObject", Layout {size: size_of::<AtkObject>(), alignment: align_of::<AtkObject>()}),
+    ("AtkObjectClass", Layout {size: size_of::<AtkObjectClass>(), alignment: align_of::<AtkObjectClass>()}),
+    ("AtkObjectFactory", Layout {size: size_of::<AtkObjectFactory>(), alignment: align_of::<AtkObjectFactory>()}),
+    ("AtkObjectFactoryClass", Layout {size: size_of::<AtkObjectFactoryClass>(), alignment: align_of::<AtkObjectFactoryClass>()}),
+    ("AtkPlug", Layout {size: size_of::<AtkPlug>(), alignment: align_of::<AtkPlug>()}),
+    ("AtkPlugClass", Layout {size: size_of::<AtkPlugClass>(), alignment: align_of::<AtkPlugClass>()}),
+    ("AtkPropertyValues", Layout {size: size_of::<AtkPropertyValues>(), alignment: align_of::<AtkPropertyValues>()}),
+    ("AtkRectangle", Layout {size: size_of::<AtkRectangle>(), alignment: align_of::<AtkRectangle>()}),
+    ("AtkRegistry", Layout {size: size_of::<AtkRegistry>(), alignment: align_of::<AtkRegistry>()}),
+    ("AtkRegistryClass", Layout {size: size_of::<AtkRegistryClass>(), alignment: align_of::<AtkRegistryClass>()}),
+    ("AtkRelation", Layout {size: size_of::<AtkRelation>(), alignment: align_of::<AtkRelation>()}),
+    ("AtkRelationClass", Layout {size: size_of::<AtkRelationClass>(), alignment: align_of::<AtkRelationClass>()}),
+    ("AtkRelationSet", Layout {size: size_of::<AtkRelationSet>(), alignment: align_of::<AtkRelationSet>()}),
+    ("AtkRelationSetClass", Layout {size: size_of::<AtkRelationSetClass>(), alignment: align_of::<AtkRelationSetClass>()}),
+    ("AtkRelationType", Layout {size: size_of::<AtkRelationType>(), alignment: align_of::<AtkRelationType>()}),
+    ("AtkRole", Layout {size: size_of::<AtkRole>(), alignment: align_of::<AtkRole>()}),
+    ("AtkScrollType", Layout {size: size_of::<AtkScrollType>(), alignment: align_of::<AtkScrollType>()}),
+    ("AtkSelectionIface", Layout {size: size_of::<AtkSelectionIface>(), alignment: align_of::<AtkSelectionIface>()}),
+    ("AtkSocket", Layout {size: size_of::<AtkSocket>(), alignment: align_of::<AtkSocket>()}),
+    ("AtkSocketClass", Layout {size: size_of::<AtkSocketClass>(), alignment: align_of::<AtkSocketClass>()}),
+    ("AtkState", Layout {size: size_of::<AtkState>(), alignment: align_of::<AtkState>()}),
+    ("AtkStateSet", Layout {size: size_of::<AtkStateSet>(), alignment: align_of::<AtkStateSet>()}),
+    ("AtkStateSetClass", Layout {size: size_of::<AtkStateSetClass>(), alignment: align_of::<AtkStateSetClass>()}),
+    ("AtkStateType", Layout {size: size_of::<AtkStateType>(), alignment: align_of::<AtkStateType>()}),
+    ("AtkStreamableContentIface", Layout {size: size_of::<AtkStreamableContentIface>(), alignment: align_of::<AtkStreamableContentIface>()}),
+    ("AtkTableCellIface", Layout {size: size_of::<AtkTableCellIface>(), alignment: align_of::<AtkTableCellIface>()}),
+    ("AtkTableIface", Layout {size: size_of::<AtkTableIface>(), alignment: align_of::<AtkTableIface>()}),
+    ("AtkTextAttribute", Layout {size: size_of::<AtkTextAttribute>(), alignment: align_of::<AtkTextAttribute>()}),
+    ("AtkTextBoundary", Layout {size: size_of::<AtkTextBoundary>(), alignment: align_of::<AtkTextBoundary>()}),
+    ("AtkTextClipType", Layout {size: size_of::<AtkTextClipType>(), alignment: align_of::<AtkTextClipType>()}),
+    ("AtkTextGranularity", Layout {size: size_of::<AtkTextGranularity>(), alignment: align_of::<AtkTextGranularity>()}),
+    ("AtkTextIface", Layout {size: size_of::<AtkTextIface>(), alignment: align_of::<AtkTextIface>()}),
+    ("AtkTextRange", Layout {size: size_of::<AtkTextRange>(), alignment: align_of::<AtkTextRange>()}),
+    ("AtkTextRectangle", Layout {size: size_of::<AtkTextRectangle>(), alignment: align_of::<AtkTextRectangle>()}),
+    ("AtkTextSelection", Layout {size: size_of::<AtkTextSelection>(), alignment: align_of::<AtkTextSelection>()}),
+    ("AtkUtil", Layout {size: size_of::<AtkUtil>(), alignment: align_of::<AtkUtil>()}),
+    ("AtkUtilClass", Layout {size: size_of::<AtkUtilClass>(), alignment: align_of::<AtkUtilClass>()}),
+    ("AtkValueIface", Layout {size: size_of::<AtkValueIface>(), alignment: align_of::<AtkValueIface>()}),
+    ("AtkValueType", Layout {size: size_of::<AtkValueType>(), alignment: align_of::<AtkValueType>()}),
+    ("AtkWindowIface", Layout {size: size_of::<AtkWindowIface>(), alignment: align_of::<AtkWindowIface>()}),
 ];
 
 const RUST_CONSTANTS: &[(&str, &str)] = &[
@@ -695,6 +321,7 @@ const RUST_CONSTANTS: &[(&str, &str)] = &[
     ("(gint) ATK_ROLE_AUDIO", "104"),
     ("(gint) ATK_ROLE_AUTOCOMPLETE", "74"),
     ("(gint) ATK_ROLE_BLOCK_QUOTE", "103"),
+    ("(gint) ATK_ROLE_BUTTON", "42"),
     ("(gint) ATK_ROLE_CALENDAR", "5"),
     ("(gint) ATK_ROLE_CANVAS", "6"),
     ("(gint) ATK_ROLE_CAPTION", "79"),
@@ -748,7 +375,7 @@ const RUST_CONSTANTS: &[(&str, &str)] = &[
     ("(gint) ATK_ROLE_INVALID", "0"),
     ("(gint) ATK_ROLE_LABEL", "28"),
     ("(gint) ATK_ROLE_LANDMARK", "108"),
-    ("(gint) ATK_ROLE_LAST_DEFINED", "128"),
+    ("(gint) ATK_ROLE_LAST_DEFINED", "129"),
     ("(gint) ATK_ROLE_LAYERED_PANE", "29"),
     ("(gint) ATK_ROLE_LEVEL_BAR", "101"),
     ("(gint) ATK_ROLE_LINK", "86"),
@@ -795,6 +422,7 @@ const RUST_CONSTANTS: &[(&str, &str)] = &[
     ("(gint) ATK_ROLE_SUBSCRIPT", "120"),
     ("(gint) ATK_ROLE_SUGGESTION", "126"),
     ("(gint) ATK_ROLE_SUPERSCRIPT", "121"),
+    ("(gint) ATK_ROLE_SWITCH", "128"),
     ("(gint) ATK_ROLE_TABLE", "54"),
     ("(gint) ATK_ROLE_TABLE_CELL", "55"),
     ("(gint) ATK_ROLE_TABLE_COLUMN_HEADER", "56"),
@@ -933,3 +561,5 @@ const RUST_CONSTANTS: &[(&str, &str)] = &[
     ("(gint) ATK_XY_SCREEN", "0"),
     ("(gint) ATK_XY_WINDOW", "1"),
 ];
+
+
diff --git a/tests/constant.c b/tests/constant.c
index aa10886..5f93de9 100644
--- a/tests/constant.c
+++ b/tests/constant.c
@@ -1,5 +1,5 @@
 // This file was generated by gir (https://github.com/gtk-rs/gir)
-// from gir-files (https://github.com/gtk-rs/gir-files)
+// from 
 // DO NOT EDIT
 
 #include "manual.h"
@@ -74,6 +74,7 @@ int main() {
     PRINT_CONSTANT((gint) ATK_ROLE_AUDIO);
     PRINT_CONSTANT((gint) ATK_ROLE_AUTOCOMPLETE);
     PRINT_CONSTANT((gint) ATK_ROLE_BLOCK_QUOTE);
+    PRINT_CONSTANT((gint) ATK_ROLE_BUTTON);
     PRINT_CONSTANT((gint) ATK_ROLE_CALENDAR);
     PRINT_CONSTANT((gint) ATK_ROLE_CANVAS);
     PRINT_CONSTANT((gint) ATK_ROLE_CAPTION);
@@ -174,6 +175,7 @@ int main() {
     PRINT_CONSTANT((gint) ATK_ROLE_SUBSCRIPT);
     PRINT_CONSTANT((gint) ATK_ROLE_SUGGESTION);
     PRINT_CONSTANT((gint) ATK_ROLE_SUPERSCRIPT);
+    PRINT_CONSTANT((gint) ATK_ROLE_SWITCH);
     PRINT_CONSTANT((gint) ATK_ROLE_TABLE);
     PRINT_CONSTANT((gint) ATK_ROLE_TABLE_CELL);
     PRINT_CONSTANT((gint) ATK_ROLE_TABLE_COLUMN_HEADER);
diff --git a/tests/layout.c b/tests/layout.c
index 675fd4e..7a84647 100644
--- a/tests/layout.c
+++ b/tests/layout.c
@@ -1,5 +1,5 @@
 // This file was generated by gir (https://github.com/gtk-rs/gir)
-// from gir-files (https://github.com/gtk-rs/gir-files)
+// from 
 // DO NOT EDIT
 
 #include "manual.h"
@@ -66,6 +66,7 @@ int main() {
     printf("%s;%zu;%zu\n", "AtkTextIface", sizeof(AtkTextIface), alignof(AtkTextIface));
     printf("%s;%zu;%zu\n", "AtkTextRange", sizeof(AtkTextRange), alignof(AtkTextRange));
     printf("%s;%zu;%zu\n", "AtkTextRectangle", sizeof(AtkTextRectangle), alignof(AtkTextRectangle));
+    printf("%s;%zu;%zu\n", "AtkTextSelection", sizeof(AtkTextSelection), alignof(AtkTextSelection));
     printf("%s;%zu;%zu\n", "AtkUtil", sizeof(AtkUtil), alignof(AtkUtil));
     printf("%s;%zu;%zu\n", "AtkUtilClass", sizeof(AtkUtilClass), alignof(AtkUtilClass));
     printf("%s;%zu;%zu\n", "AtkValueIface", sizeof(AtkValueIface), alignof(AtkValueIface));
diff --git a/versions.txt b/versions.txt
index 17a2d3e..535fa46 100644
--- a/versions.txt
+++ b/versions.txt
@@ -1,2 +1,2 @@
-Generated by gir (https://github.com/gtk-rs/gir @ 76bbe9b90aaa)
-from gir-files (https://github.com/gtk-rs/gir-files @ 307566e1ab58)
+Generated by gir (https://github.com/gtk-rs/gir @ 0.0.1)
+from  (@ ???)
