gtk4/auto/
tree_model_filter.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, TreeDragSource, TreeIter, TreeModel, TreePath};
7use glib::{prelude::*, translate::*};
8use std::boxed::Box as Box_;
9
10glib::wrapper! {
11    #[doc(alias = "GtkTreeModelFilter")]
12    pub struct TreeModelFilter(Object<ffi::GtkTreeModelFilter, ffi::GtkTreeModelFilterClass>) @implements TreeDragSource, TreeModel;
13
14    match fn {
15        type_ => || ffi::gtk_tree_model_filter_get_type(),
16    }
17}
18
19impl TreeModelFilter {
20    pub const NONE: Option<&'static TreeModelFilter> = None;
21}
22
23pub trait TreeModelFilterExt: IsA<TreeModelFilter> + 'static {
24    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
25    #[allow(deprecated)]
26    #[doc(alias = "gtk_tree_model_filter_clear_cache")]
27    fn clear_cache(&self) {
28        unsafe {
29            ffi::gtk_tree_model_filter_clear_cache(self.as_ref().to_glib_none().0);
30        }
31    }
32
33    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
34    #[allow(deprecated)]
35    #[doc(alias = "gtk_tree_model_filter_convert_child_iter_to_iter")]
36    fn convert_child_iter_to_iter(&self, child_iter: &TreeIter) -> Option<TreeIter> {
37        unsafe {
38            let mut filter_iter = TreeIter::uninitialized();
39            let ret = from_glib(ffi::gtk_tree_model_filter_convert_child_iter_to_iter(
40                self.as_ref().to_glib_none().0,
41                filter_iter.to_glib_none_mut().0,
42                mut_override(child_iter.to_glib_none().0),
43            ));
44            if ret {
45                Some(filter_iter)
46            } else {
47                None
48            }
49        }
50    }
51
52    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
53    #[allow(deprecated)]
54    #[doc(alias = "gtk_tree_model_filter_convert_child_path_to_path")]
55    fn convert_child_path_to_path(&self, child_path: &TreePath) -> Option<TreePath> {
56        unsafe {
57            from_glib_full(ffi::gtk_tree_model_filter_convert_child_path_to_path(
58                self.as_ref().to_glib_none().0,
59                mut_override(child_path.to_glib_none().0),
60            ))
61        }
62    }
63
64    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
65    #[allow(deprecated)]
66    #[doc(alias = "gtk_tree_model_filter_convert_iter_to_child_iter")]
67    fn convert_iter_to_child_iter(&self, filter_iter: &TreeIter) -> TreeIter {
68        unsafe {
69            let mut child_iter = TreeIter::uninitialized();
70            ffi::gtk_tree_model_filter_convert_iter_to_child_iter(
71                self.as_ref().to_glib_none().0,
72                child_iter.to_glib_none_mut().0,
73                mut_override(filter_iter.to_glib_none().0),
74            );
75            child_iter
76        }
77    }
78
79    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
80    #[allow(deprecated)]
81    #[doc(alias = "gtk_tree_model_filter_convert_path_to_child_path")]
82    fn convert_path_to_child_path(&self, filter_path: &TreePath) -> Option<TreePath> {
83        unsafe {
84            from_glib_full(ffi::gtk_tree_model_filter_convert_path_to_child_path(
85                self.as_ref().to_glib_none().0,
86                mut_override(filter_path.to_glib_none().0),
87            ))
88        }
89    }
90
91    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
92    #[allow(deprecated)]
93    #[doc(alias = "gtk_tree_model_filter_get_model")]
94    #[doc(alias = "get_model")]
95    fn model(&self) -> TreeModel {
96        unsafe {
97            from_glib_none(ffi::gtk_tree_model_filter_get_model(
98                self.as_ref().to_glib_none().0,
99            ))
100        }
101    }
102
103    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
104    #[allow(deprecated)]
105    #[doc(alias = "gtk_tree_model_filter_refilter")]
106    fn refilter(&self) {
107        unsafe {
108            ffi::gtk_tree_model_filter_refilter(self.as_ref().to_glib_none().0);
109        }
110    }
111
112    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
113    #[allow(deprecated)]
114    #[doc(alias = "gtk_tree_model_filter_set_visible_column")]
115    fn set_visible_column(&self, column: i32) {
116        unsafe {
117            ffi::gtk_tree_model_filter_set_visible_column(self.as_ref().to_glib_none().0, column);
118        }
119    }
120
121    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
122    #[allow(deprecated)]
123    #[doc(alias = "gtk_tree_model_filter_set_visible_func")]
124    fn set_visible_func<P: Fn(&TreeModel, &TreeIter) -> bool + 'static>(&self, func: P) {
125        let func_data: Box_<P> = Box_::new(func);
126        unsafe extern "C" fn func_func<P: Fn(&TreeModel, &TreeIter) -> bool + 'static>(
127            model: *mut ffi::GtkTreeModel,
128            iter: *mut ffi::GtkTreeIter,
129            data: glib::ffi::gpointer,
130        ) -> glib::ffi::gboolean {
131            let model = from_glib_borrow(model);
132            let iter = from_glib_borrow(iter);
133            let callback = &*(data as *mut P);
134            (*callback)(&model, &iter).into_glib()
135        }
136        let func = Some(func_func::<P> as _);
137        unsafe extern "C" fn destroy_func<P: Fn(&TreeModel, &TreeIter) -> bool + 'static>(
138            data: glib::ffi::gpointer,
139        ) {
140            let _callback = Box_::from_raw(data as *mut P);
141        }
142        let destroy_call3 = Some(destroy_func::<P> as _);
143        let super_callback0: Box_<P> = func_data;
144        unsafe {
145            ffi::gtk_tree_model_filter_set_visible_func(
146                self.as_ref().to_glib_none().0,
147                func,
148                Box_::into_raw(super_callback0) as *mut _,
149                destroy_call3,
150            );
151        }
152    }
153
154    #[doc(alias = "child-model")]
155    fn child_model(&self) -> Option<TreeModel> {
156        ObjectExt::property(self.as_ref(), "child-model")
157    }
158}
159
160impl<O: IsA<TreeModelFilter>> TreeModelFilterExt for O {}