gtk/auto/
selection_data.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 gdk;
6use gdk_pixbuf;
7use glib::object::IsA;
8use glib::translate::*;
9use glib::GString;
10use gtk_sys;
11use std::mem;
12use std::ptr;
13use TextBuffer;
14
15glib_wrapper! {
16    #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
17    pub struct SelectionData(Boxed<gtk_sys::GtkSelectionData>);
18
19    match fn {
20        copy => |ptr| gtk_sys::gtk_selection_data_copy(mut_override(ptr)),
21        free => |ptr| gtk_sys::gtk_selection_data_free(ptr),
22        get_type => || gtk_sys::gtk_selection_data_get_type(),
23    }
24}
25
26impl SelectionData {
27    pub fn get_data_type(&self) -> gdk::Atom {
28        unsafe {
29            from_glib_none(gtk_sys::gtk_selection_data_get_data_type(
30                self.to_glib_none().0,
31            ))
32        }
33    }
34
35    pub fn get_display(&self) -> Option<gdk::Display> {
36        unsafe {
37            from_glib_none(gtk_sys::gtk_selection_data_get_display(
38                self.to_glib_none().0,
39            ))
40        }
41    }
42
43    pub fn get_format(&self) -> i32 {
44        unsafe { gtk_sys::gtk_selection_data_get_format(self.to_glib_none().0) }
45    }
46
47    pub fn get_length(&self) -> i32 {
48        unsafe { gtk_sys::gtk_selection_data_get_length(self.to_glib_none().0) }
49    }
50
51    pub fn get_pixbuf(&self) -> Option<gdk_pixbuf::Pixbuf> {
52        unsafe {
53            from_glib_full(gtk_sys::gtk_selection_data_get_pixbuf(
54                self.to_glib_none().0,
55            ))
56        }
57    }
58
59    pub fn get_selection(&self) -> gdk::Atom {
60        unsafe {
61            from_glib_none(gtk_sys::gtk_selection_data_get_selection(
62                self.to_glib_none().0,
63            ))
64        }
65    }
66
67    pub fn get_target(&self) -> gdk::Atom {
68        unsafe {
69            from_glib_none(gtk_sys::gtk_selection_data_get_target(
70                self.to_glib_none().0,
71            ))
72        }
73    }
74
75    pub fn get_targets(&self) -> Option<Vec<gdk::Atom>> {
76        unsafe {
77            let mut targets = ptr::null_mut();
78            let mut n_atoms = mem::uninitialized();
79            let ret = from_glib(gtk_sys::gtk_selection_data_get_targets(
80                self.to_glib_none().0,
81                &mut targets,
82                &mut n_atoms,
83            ));
84            if ret {
85                Some(FromGlibContainer::from_glib_container_num(
86                    targets,
87                    n_atoms as usize,
88                ))
89            } else {
90                None
91            }
92        }
93    }
94
95    pub fn get_text(&self) -> Option<GString> {
96        unsafe { from_glib_full(gtk_sys::gtk_selection_data_get_text(self.to_glib_none().0)) }
97    }
98
99    pub fn get_uris(&self) -> Vec<GString> {
100        unsafe {
101            FromGlibPtrContainer::from_glib_full(gtk_sys::gtk_selection_data_get_uris(
102                self.to_glib_none().0,
103            ))
104        }
105    }
106
107    pub fn set(&self, type_: &gdk::Atom, format: i32, data: &[u8]) {
108        let length = data.len() as i32;
109        unsafe {
110            gtk_sys::gtk_selection_data_set(
111                mut_override(self.to_glib_none().0),
112                type_.to_glib_none().0,
113                format,
114                data.to_glib_none().0,
115                length,
116            );
117        }
118    }
119
120    pub fn set_pixbuf(&self, pixbuf: &gdk_pixbuf::Pixbuf) -> bool {
121        unsafe {
122            from_glib(gtk_sys::gtk_selection_data_set_pixbuf(
123                mut_override(self.to_glib_none().0),
124                pixbuf.to_glib_none().0,
125            ))
126        }
127    }
128
129    pub fn set_text(&self, str: &str) -> bool {
130        let len = str.len() as i32;
131        unsafe {
132            from_glib(gtk_sys::gtk_selection_data_set_text(
133                mut_override(self.to_glib_none().0),
134                str.to_glib_none().0,
135                len,
136            ))
137        }
138    }
139
140    pub fn set_uris(&self, uris: &[&str]) -> bool {
141        unsafe {
142            from_glib(gtk_sys::gtk_selection_data_set_uris(
143                mut_override(self.to_glib_none().0),
144                uris.to_glib_none().0,
145            ))
146        }
147    }
148
149    pub fn targets_include_image(&self, writable: bool) -> bool {
150        unsafe {
151            from_glib(gtk_sys::gtk_selection_data_targets_include_image(
152                self.to_glib_none().0,
153                writable.to_glib(),
154            ))
155        }
156    }
157
158    pub fn targets_include_rich_text<P: IsA<TextBuffer>>(&self, buffer: &P) -> bool {
159        unsafe {
160            from_glib(gtk_sys::gtk_selection_data_targets_include_rich_text(
161                self.to_glib_none().0,
162                buffer.as_ref().to_glib_none().0,
163            ))
164        }
165    }
166
167    pub fn targets_include_text(&self) -> bool {
168        unsafe {
169            from_glib(gtk_sys::gtk_selection_data_targets_include_text(
170                self.to_glib_none().0,
171            ))
172        }
173    }
174
175    pub fn targets_include_uri(&self) -> bool {
176        unsafe {
177            from_glib(gtk_sys::gtk_selection_data_targets_include_uri(
178                self.to_glib_none().0,
179            ))
180        }
181    }
182}