gtk4/auto/
tree_model_filter.rs1#![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 {}