gtk/auto/
tree_model_sort.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
5use glib::object::IsA;
6use glib::translate::*;
7use gtk_sys;
8use std::fmt;
9use TreeDragSource;
10use TreeIter;
11use TreeModel;
12use TreePath;
13use TreeSortable;
14
15glib_wrapper! {
16    pub struct TreeModelSort(Object<gtk_sys::GtkTreeModelSort, gtk_sys::GtkTreeModelSortClass, TreeModelSortClass>) @implements TreeDragSource, TreeModel, TreeSortable;
17
18    match fn {
19        get_type => || gtk_sys::gtk_tree_model_sort_get_type(),
20    }
21}
22
23pub const NONE_TREE_MODEL_SORT: Option<&TreeModelSort> = None;
24
25pub trait TreeModelSortExt: 'static {
26    fn clear_cache(&self);
27
28    fn convert_child_iter_to_iter(&self, child_iter: &TreeIter) -> Option<TreeIter>;
29
30    fn convert_child_path_to_path(&self, child_path: &TreePath) -> Option<TreePath>;
31
32    fn convert_iter_to_child_iter(&self, sorted_iter: &TreeIter) -> TreeIter;
33
34    fn convert_path_to_child_path(&self, sorted_path: &TreePath) -> Option<TreePath>;
35
36    fn get_model(&self) -> TreeModel;
37
38    fn iter_is_valid(&self, iter: &TreeIter) -> bool;
39
40    fn reset_default_sort_func(&self);
41}
42
43impl<O: IsA<TreeModelSort>> TreeModelSortExt for O {
44    fn clear_cache(&self) {
45        unsafe {
46            gtk_sys::gtk_tree_model_sort_clear_cache(self.as_ref().to_glib_none().0);
47        }
48    }
49
50    fn convert_child_iter_to_iter(&self, child_iter: &TreeIter) -> Option<TreeIter> {
51        unsafe {
52            let mut sort_iter = TreeIter::uninitialized();
53            let ret = from_glib(gtk_sys::gtk_tree_model_sort_convert_child_iter_to_iter(
54                self.as_ref().to_glib_none().0,
55                sort_iter.to_glib_none_mut().0,
56                mut_override(child_iter.to_glib_none().0),
57            ));
58            if ret {
59                Some(sort_iter)
60            } else {
61                None
62            }
63        }
64    }
65
66    fn convert_child_path_to_path(&self, child_path: &TreePath) -> Option<TreePath> {
67        unsafe {
68            from_glib_full(gtk_sys::gtk_tree_model_sort_convert_child_path_to_path(
69                self.as_ref().to_glib_none().0,
70                mut_override(child_path.to_glib_none().0),
71            ))
72        }
73    }
74
75    fn convert_iter_to_child_iter(&self, sorted_iter: &TreeIter) -> TreeIter {
76        unsafe {
77            let mut child_iter = TreeIter::uninitialized();
78            gtk_sys::gtk_tree_model_sort_convert_iter_to_child_iter(
79                self.as_ref().to_glib_none().0,
80                child_iter.to_glib_none_mut().0,
81                mut_override(sorted_iter.to_glib_none().0),
82            );
83            child_iter
84        }
85    }
86
87    fn convert_path_to_child_path(&self, sorted_path: &TreePath) -> Option<TreePath> {
88        unsafe {
89            from_glib_full(gtk_sys::gtk_tree_model_sort_convert_path_to_child_path(
90                self.as_ref().to_glib_none().0,
91                mut_override(sorted_path.to_glib_none().0),
92            ))
93        }
94    }
95
96    fn get_model(&self) -> TreeModel {
97        unsafe {
98            from_glib_none(gtk_sys::gtk_tree_model_sort_get_model(
99                self.as_ref().to_glib_none().0,
100            ))
101        }
102    }
103
104    fn iter_is_valid(&self, iter: &TreeIter) -> bool {
105        unsafe {
106            from_glib(gtk_sys::gtk_tree_model_sort_iter_is_valid(
107                self.as_ref().to_glib_none().0,
108                mut_override(iter.to_glib_none().0),
109            ))
110        }
111    }
112
113    fn reset_default_sort_func(&self) {
114        unsafe {
115            gtk_sys::gtk_tree_model_sort_reset_default_sort_func(self.as_ref().to_glib_none().0);
116        }
117    }
118}
119
120impl fmt::Display for TreeModelSort {
121    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
122        write!(f, "TreeModelSort")
123    }
124}