gtk/auto/
tree_row_reference.rs1use glib;
6use glib::object::IsA;
7use glib::translate::*;
8use gtk_sys;
9use TreeModel;
10use TreePath;
11
12glib_wrapper! {
13 #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
14 pub struct TreeRowReference(Boxed<gtk_sys::GtkTreeRowReference>);
15
16 match fn {
17 copy => |ptr| gtk_sys::gtk_tree_row_reference_copy(mut_override(ptr)),
18 free => |ptr| gtk_sys::gtk_tree_row_reference_free(ptr),
19 get_type => || gtk_sys::gtk_tree_row_reference_get_type(),
20 }
21}
22
23impl TreeRowReference {
24 pub fn new<P: IsA<TreeModel>>(model: &P, path: &TreePath) -> Option<TreeRowReference> {
25 skip_assert_initialized!();
26 unsafe {
27 from_glib_full(gtk_sys::gtk_tree_row_reference_new(
28 model.as_ref().to_glib_none().0,
29 mut_override(path.to_glib_none().0),
30 ))
31 }
32 }
33
34 pub fn new_proxy<P: IsA<glib::Object>, Q: IsA<TreeModel>>(
35 proxy: &P,
36 model: &Q,
37 path: &TreePath,
38 ) -> Option<TreeRowReference> {
39 skip_assert_initialized!();
40 unsafe {
41 from_glib_full(gtk_sys::gtk_tree_row_reference_new_proxy(
42 proxy.as_ref().to_glib_none().0,
43 model.as_ref().to_glib_none().0,
44 mut_override(path.to_glib_none().0),
45 ))
46 }
47 }
48
49 pub fn get_model(&self) -> TreeModel {
50 unsafe {
51 from_glib_none(gtk_sys::gtk_tree_row_reference_get_model(mut_override(
52 self.to_glib_none().0,
53 )))
54 }
55 }
56
57 pub fn get_path(&self) -> Option<TreePath> {
58 unsafe {
59 from_glib_full(gtk_sys::gtk_tree_row_reference_get_path(mut_override(
60 self.to_glib_none().0,
61 )))
62 }
63 }
64
65 pub fn valid(&self) -> bool {
66 unsafe {
67 from_glib(gtk_sys::gtk_tree_row_reference_valid(mut_override(
68 self.to_glib_none().0,
69 )))
70 }
71 }
72
73 pub fn deleted<P: IsA<glib::Object>>(proxy: &P, path: &TreePath) {
74 assert_initialized_main_thread!();
75 unsafe {
76 gtk_sys::gtk_tree_row_reference_deleted(
77 proxy.as_ref().to_glib_none().0,
78 mut_override(path.to_glib_none().0),
79 );
80 }
81 }
82
83 pub fn inserted<P: IsA<glib::Object>>(proxy: &P, path: &TreePath) {
84 assert_initialized_main_thread!();
85 unsafe {
86 gtk_sys::gtk_tree_row_reference_inserted(
87 proxy.as_ref().to_glib_none().0,
88 mut_override(path.to_glib_none().0),
89 );
90 }
91 }
92
93 }