[go: up one dir, main page]

gtk4/auto/
tree_model.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, TreeIter, TreeModelFlags, TreePath};
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 = "GtkTreeModel")]
17    pub struct TreeModel(Interface<ffi::GtkTreeModel, ffi::GtkTreeModelIface>);
18
19    match fn {
20        type_ => || ffi::gtk_tree_model_get_type(),
21    }
22}
23
24impl TreeModel {
25    pub const NONE: Option<&'static TreeModel> = None;
26}
27
28pub trait TreeModelExt: IsA<TreeModel> + 'static {
29    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
30    #[allow(deprecated)]
31    #[doc(alias = "gtk_tree_model_foreach")]
32    fn foreach<P: FnMut(&TreeModel, &TreePath, &TreeIter) -> bool>(&self, func: P) {
33        let mut func_data: P = func;
34        unsafe extern "C" fn func_func<P: FnMut(&TreeModel, &TreePath, &TreeIter) -> bool>(
35            model: *mut ffi::GtkTreeModel,
36            path: *mut ffi::GtkTreePath,
37            iter: *mut ffi::GtkTreeIter,
38            data: glib::ffi::gpointer,
39        ) -> glib::ffi::gboolean {
40            let model = from_glib_borrow(model);
41            let path = from_glib_borrow(path);
42            let iter = from_glib_borrow(iter);
43            let callback = data as *mut P;
44            (*callback)(&model, &path, &iter).into_glib()
45        }
46        let func = Some(func_func::<P> as _);
47        let super_callback0: &mut P = &mut func_data;
48        unsafe {
49            ffi::gtk_tree_model_foreach(
50                self.as_ref().to_glib_none().0,
51                func,
52                super_callback0 as *mut _ as *mut _,
53            );
54        }
55    }
56
57    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
58    #[allow(deprecated)]
59    #[doc(alias = "gtk_tree_model_get_column_type")]
60    #[doc(alias = "get_column_type")]
61    fn column_type(&self, index_: i32) -> glib::types::Type {
62        unsafe {
63            from_glib(ffi::gtk_tree_model_get_column_type(
64                self.as_ref().to_glib_none().0,
65                index_,
66            ))
67        }
68    }
69
70    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
71    #[allow(deprecated)]
72    #[doc(alias = "gtk_tree_model_get_flags")]
73    #[doc(alias = "get_flags")]
74    fn flags(&self) -> TreeModelFlags {
75        unsafe {
76            from_glib(ffi::gtk_tree_model_get_flags(
77                self.as_ref().to_glib_none().0,
78            ))
79        }
80    }
81
82    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
83    #[allow(deprecated)]
84    #[doc(alias = "gtk_tree_model_get_iter")]
85    #[doc(alias = "get_iter")]
86    fn iter(&self, path: &TreePath) -> Option<TreeIter> {
87        unsafe {
88            let mut iter = TreeIter::uninitialized();
89            let ret = from_glib(ffi::gtk_tree_model_get_iter(
90                self.as_ref().to_glib_none().0,
91                iter.to_glib_none_mut().0,
92                mut_override(path.to_glib_none().0),
93            ));
94            if ret {
95                Some(iter)
96            } else {
97                None
98            }
99        }
100    }
101
102    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
103    #[allow(deprecated)]
104    #[doc(alias = "gtk_tree_model_get_iter_first")]
105    #[doc(alias = "get_iter_first")]
106    fn iter_first(&self) -> Option<TreeIter> {
107        unsafe {
108            let mut iter = TreeIter::uninitialized();
109            let ret = from_glib(ffi::gtk_tree_model_get_iter_first(
110                self.as_ref().to_glib_none().0,
111                iter.to_glib_none_mut().0,
112            ));
113            if ret {
114                Some(iter)
115            } else {
116                None
117            }
118        }
119    }
120
121    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
122    #[allow(deprecated)]
123    #[doc(alias = "gtk_tree_model_get_iter_from_string")]
124    #[doc(alias = "get_iter_from_string")]
125    fn iter_from_string(&self, path_string: &str) -> Option<TreeIter> {
126        unsafe {
127            let mut iter = TreeIter::uninitialized();
128            let ret = from_glib(ffi::gtk_tree_model_get_iter_from_string(
129                self.as_ref().to_glib_none().0,
130                iter.to_glib_none_mut().0,
131                path_string.to_glib_none().0,
132            ));
133            if ret {
134                Some(iter)
135            } else {
136                None
137            }
138        }
139    }
140
141    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
142    #[allow(deprecated)]
143    #[doc(alias = "gtk_tree_model_get_n_columns")]
144    #[doc(alias = "get_n_columns")]
145    fn n_columns(&self) -> i32 {
146        unsafe { ffi::gtk_tree_model_get_n_columns(self.as_ref().to_glib_none().0) }
147    }
148
149    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
150    #[allow(deprecated)]
151    #[doc(alias = "gtk_tree_model_get_path")]
152    #[doc(alias = "get_path")]
153    fn path(&self, iter: &TreeIter) -> TreePath {
154        unsafe {
155            from_glib_full(ffi::gtk_tree_model_get_path(
156                self.as_ref().to_glib_none().0,
157                mut_override(iter.to_glib_none().0),
158            ))
159        }
160    }
161
162    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
163    #[allow(deprecated)]
164    #[doc(alias = "gtk_tree_model_get_string_from_iter")]
165    #[doc(alias = "get_string_from_iter")]
166    fn string_from_iter(&self, iter: &TreeIter) -> Option<glib::GString> {
167        unsafe {
168            from_glib_full(ffi::gtk_tree_model_get_string_from_iter(
169                self.as_ref().to_glib_none().0,
170                mut_override(iter.to_glib_none().0),
171            ))
172        }
173    }
174
175    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
176    #[allow(deprecated)]
177    #[doc(alias = "gtk_tree_model_iter_children")]
178    fn iter_children(&self, parent: Option<&TreeIter>) -> Option<TreeIter> {
179        unsafe {
180            let mut iter = TreeIter::uninitialized();
181            let ret = from_glib(ffi::gtk_tree_model_iter_children(
182                self.as_ref().to_glib_none().0,
183                iter.to_glib_none_mut().0,
184                mut_override(parent.to_glib_none().0),
185            ));
186            if ret {
187                Some(iter)
188            } else {
189                None
190            }
191        }
192    }
193
194    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
195    #[allow(deprecated)]
196    #[doc(alias = "gtk_tree_model_iter_has_child")]
197    fn iter_has_child(&self, iter: &TreeIter) -> bool {
198        unsafe {
199            from_glib(ffi::gtk_tree_model_iter_has_child(
200                self.as_ref().to_glib_none().0,
201                mut_override(iter.to_glib_none().0),
202            ))
203        }
204    }
205
206    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
207    #[allow(deprecated)]
208    #[doc(alias = "gtk_tree_model_iter_n_children")]
209    fn iter_n_children(&self, iter: Option<&TreeIter>) -> i32 {
210        unsafe {
211            ffi::gtk_tree_model_iter_n_children(
212                self.as_ref().to_glib_none().0,
213                mut_override(iter.to_glib_none().0),
214            )
215        }
216    }
217
218    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
219    #[allow(deprecated)]
220    #[doc(alias = "gtk_tree_model_iter_next")]
221    fn iter_next(&self, iter: &TreeIter) -> bool {
222        unsafe {
223            from_glib(ffi::gtk_tree_model_iter_next(
224                self.as_ref().to_glib_none().0,
225                mut_override(iter.to_glib_none().0),
226            ))
227        }
228    }
229
230    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
231    #[allow(deprecated)]
232    #[doc(alias = "gtk_tree_model_iter_nth_child")]
233    fn iter_nth_child(&self, parent: Option<&TreeIter>, n: i32) -> Option<TreeIter> {
234        unsafe {
235            let mut iter = TreeIter::uninitialized();
236            let ret = from_glib(ffi::gtk_tree_model_iter_nth_child(
237                self.as_ref().to_glib_none().0,
238                iter.to_glib_none_mut().0,
239                mut_override(parent.to_glib_none().0),
240                n,
241            ));
242            if ret {
243                Some(iter)
244            } else {
245                None
246            }
247        }
248    }
249
250    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
251    #[allow(deprecated)]
252    #[doc(alias = "gtk_tree_model_iter_parent")]
253    fn iter_parent(&self, child: &TreeIter) -> Option<TreeIter> {
254        unsafe {
255            let mut iter = TreeIter::uninitialized();
256            let ret = from_glib(ffi::gtk_tree_model_iter_parent(
257                self.as_ref().to_glib_none().0,
258                iter.to_glib_none_mut().0,
259                mut_override(child.to_glib_none().0),
260            ));
261            if ret {
262                Some(iter)
263            } else {
264                None
265            }
266        }
267    }
268
269    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
270    #[allow(deprecated)]
271    #[doc(alias = "gtk_tree_model_iter_previous")]
272    fn iter_previous(&self, iter: &TreeIter) -> bool {
273        unsafe {
274            from_glib(ffi::gtk_tree_model_iter_previous(
275                self.as_ref().to_glib_none().0,
276                mut_override(iter.to_glib_none().0),
277            ))
278        }
279    }
280
281    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
282    #[allow(deprecated)]
283    #[doc(alias = "gtk_tree_model_row_changed")]
284    fn row_changed(&self, path: &TreePath, iter: &TreeIter) {
285        unsafe {
286            ffi::gtk_tree_model_row_changed(
287                self.as_ref().to_glib_none().0,
288                mut_override(path.to_glib_none().0),
289                mut_override(iter.to_glib_none().0),
290            );
291        }
292    }
293
294    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
295    #[allow(deprecated)]
296    #[doc(alias = "gtk_tree_model_row_deleted")]
297    fn row_deleted(&self, path: &TreePath) {
298        unsafe {
299            ffi::gtk_tree_model_row_deleted(
300                self.as_ref().to_glib_none().0,
301                mut_override(path.to_glib_none().0),
302            );
303        }
304    }
305
306    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
307    #[allow(deprecated)]
308    #[doc(alias = "gtk_tree_model_row_has_child_toggled")]
309    fn row_has_child_toggled(&self, path: &TreePath, iter: &TreeIter) {
310        unsafe {
311            ffi::gtk_tree_model_row_has_child_toggled(
312                self.as_ref().to_glib_none().0,
313                mut_override(path.to_glib_none().0),
314                mut_override(iter.to_glib_none().0),
315            );
316        }
317    }
318
319    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
320    #[allow(deprecated)]
321    #[doc(alias = "gtk_tree_model_row_inserted")]
322    fn row_inserted(&self, path: &TreePath, iter: &TreeIter) {
323        unsafe {
324            ffi::gtk_tree_model_row_inserted(
325                self.as_ref().to_glib_none().0,
326                mut_override(path.to_glib_none().0),
327                mut_override(iter.to_glib_none().0),
328            );
329        }
330    }
331
332    #[doc(alias = "row-changed")]
333    fn connect_row_changed<F: Fn(&Self, &TreePath, &TreeIter) + 'static>(
334        &self,
335        f: F,
336    ) -> SignalHandlerId {
337        unsafe extern "C" fn row_changed_trampoline<
338            P: IsA<TreeModel>,
339            F: Fn(&P, &TreePath, &TreeIter) + 'static,
340        >(
341            this: *mut ffi::GtkTreeModel,
342            path: *mut ffi::GtkTreePath,
343            iter: *mut ffi::GtkTreeIter,
344            f: glib::ffi::gpointer,
345        ) {
346            let f: &F = &*(f as *const F);
347            f(
348                TreeModel::from_glib_borrow(this).unsafe_cast_ref(),
349                &from_glib_borrow(path),
350                &from_glib_borrow(iter),
351            )
352        }
353        unsafe {
354            let f: Box_<F> = Box_::new(f);
355            connect_raw(
356                self.as_ptr() as *mut _,
357                c"row-changed".as_ptr() as *const _,
358                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
359                    row_changed_trampoline::<Self, F> as *const (),
360                )),
361                Box_::into_raw(f),
362            )
363        }
364    }
365
366    #[doc(alias = "row-deleted")]
367    fn connect_row_deleted<F: Fn(&Self, &TreePath) + 'static>(&self, f: F) -> SignalHandlerId {
368        unsafe extern "C" fn row_deleted_trampoline<
369            P: IsA<TreeModel>,
370            F: Fn(&P, &TreePath) + 'static,
371        >(
372            this: *mut ffi::GtkTreeModel,
373            path: *mut ffi::GtkTreePath,
374            f: glib::ffi::gpointer,
375        ) {
376            let f: &F = &*(f as *const F);
377            f(
378                TreeModel::from_glib_borrow(this).unsafe_cast_ref(),
379                &from_glib_borrow(path),
380            )
381        }
382        unsafe {
383            let f: Box_<F> = Box_::new(f);
384            connect_raw(
385                self.as_ptr() as *mut _,
386                c"row-deleted".as_ptr() as *const _,
387                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
388                    row_deleted_trampoline::<Self, F> as *const (),
389                )),
390                Box_::into_raw(f),
391            )
392        }
393    }
394
395    #[doc(alias = "row-has-child-toggled")]
396    fn connect_row_has_child_toggled<F: Fn(&Self, &TreePath, &TreeIter) + 'static>(
397        &self,
398        f: F,
399    ) -> SignalHandlerId {
400        unsafe extern "C" fn row_has_child_toggled_trampoline<
401            P: IsA<TreeModel>,
402            F: Fn(&P, &TreePath, &TreeIter) + 'static,
403        >(
404            this: *mut ffi::GtkTreeModel,
405            path: *mut ffi::GtkTreePath,
406            iter: *mut ffi::GtkTreeIter,
407            f: glib::ffi::gpointer,
408        ) {
409            let f: &F = &*(f as *const F);
410            f(
411                TreeModel::from_glib_borrow(this).unsafe_cast_ref(),
412                &from_glib_borrow(path),
413                &from_glib_borrow(iter),
414            )
415        }
416        unsafe {
417            let f: Box_<F> = Box_::new(f);
418            connect_raw(
419                self.as_ptr() as *mut _,
420                c"row-has-child-toggled".as_ptr() as *const _,
421                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
422                    row_has_child_toggled_trampoline::<Self, F> as *const (),
423                )),
424                Box_::into_raw(f),
425            )
426        }
427    }
428
429    #[doc(alias = "row-inserted")]
430    fn connect_row_inserted<F: Fn(&Self, &TreePath, &TreeIter) + 'static>(
431        &self,
432        f: F,
433    ) -> SignalHandlerId {
434        unsafe extern "C" fn row_inserted_trampoline<
435            P: IsA<TreeModel>,
436            F: Fn(&P, &TreePath, &TreeIter) + 'static,
437        >(
438            this: *mut ffi::GtkTreeModel,
439            path: *mut ffi::GtkTreePath,
440            iter: *mut ffi::GtkTreeIter,
441            f: glib::ffi::gpointer,
442        ) {
443            let f: &F = &*(f as *const F);
444            f(
445                TreeModel::from_glib_borrow(this).unsafe_cast_ref(),
446                &from_glib_borrow(path),
447                &from_glib_borrow(iter),
448            )
449        }
450        unsafe {
451            let f: Box_<F> = Box_::new(f);
452            connect_raw(
453                self.as_ptr() as *mut _,
454                c"row-inserted".as_ptr() as *const _,
455                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
456                    row_inserted_trampoline::<Self, F> as *const (),
457                )),
458                Box_::into_raw(f),
459            )
460        }
461    }
462
463    //#[doc(alias = "rows-reordered")]
464    //fn connect_rows_reordered<Unsupported or ignored types>(&self, f: F) -> SignalHandlerId {
465    //    Unimplemented new_order: *.Pointer
466    //}
467}
468
469impl<O: IsA<TreeModel>> TreeModelExt for O {}