[go: up one dir, main page]

gtk4/auto/
tree_sortable.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4#![allow(deprecated)]
5
6use crate::{ffi, TreeModel};
7use glib::{
8    object::ObjectType as _,
9    prelude::*,
10    signal::{connect_raw, SignalHandlerId},
11    translate::*,
12};
13use std::boxed::Box as Box_;
14
15glib::wrapper! {
16    #[doc(alias = "GtkTreeSortable")]
17    pub struct TreeSortable(Interface<ffi::GtkTreeSortable, ffi::GtkTreeSortableIface>) @requires TreeModel;
18
19    match fn {
20        type_ => || ffi::gtk_tree_sortable_get_type(),
21    }
22}
23
24impl TreeSortable {
25    pub const NONE: Option<&'static TreeSortable> = None;
26}
27
28pub trait TreeSortableExt: IsA<TreeSortable> + 'static {
29    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
30    #[allow(deprecated)]
31    #[doc(alias = "gtk_tree_sortable_has_default_sort_func")]
32    fn has_default_sort_func(&self) -> bool {
33        unsafe {
34            from_glib(ffi::gtk_tree_sortable_has_default_sort_func(
35                self.as_ref().to_glib_none().0,
36            ))
37        }
38    }
39
40    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
41    #[allow(deprecated)]
42    #[doc(alias = "gtk_tree_sortable_sort_column_changed")]
43    fn sort_column_changed(&self) {
44        unsafe {
45            ffi::gtk_tree_sortable_sort_column_changed(self.as_ref().to_glib_none().0);
46        }
47    }
48
49    #[doc(alias = "sort-column-changed")]
50    fn connect_sort_column_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
51        unsafe extern "C" fn sort_column_changed_trampoline<
52            P: IsA<TreeSortable>,
53            F: Fn(&P) + 'static,
54        >(
55            this: *mut ffi::GtkTreeSortable,
56            f: glib::ffi::gpointer,
57        ) {
58            let f: &F = &*(f as *const F);
59            f(TreeSortable::from_glib_borrow(this).unsafe_cast_ref())
60        }
61        unsafe {
62            let f: Box_<F> = Box_::new(f);
63            connect_raw(
64                self.as_ptr() as *mut _,
65                c"sort-column-changed".as_ptr() as *const _,
66                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
67                    sort_column_changed_trampoline::<Self, F> as *const (),
68                )),
69                Box_::into_raw(f),
70            )
71        }
72    }
73}
74
75impl<O: IsA<TreeSortable>> TreeSortableExt for O {}