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 
5 use glib::object::IsA;
6 use glib::translate::*;
7 use glib::GString;
8 use gtk_sys;
9 use std::fmt;
10 use std::mem;
11 
12 glib_wrapper! {
13     pub struct Editable(Interface<gtk_sys::GtkEditable>);
14 
15     match fn {
16         get_type => || gtk_sys::gtk_editable_get_type(),
17     }
18 }
19 
20 pub const NONE_EDITABLE: Option<&Editable> = None;
21 
22 pub trait EditableExt: 'static {
copy_clipboard(&self)23     fn copy_clipboard(&self);
24 
cut_clipboard(&self)25     fn cut_clipboard(&self);
26 
delete_selection(&self)27     fn delete_selection(&self);
28 
delete_text(&self, start_pos: i32, end_pos: i32)29     fn delete_text(&self, start_pos: i32, end_pos: i32);
30 
get_chars(&self, start_pos: i32, end_pos: i32) -> Option<GString>31     fn get_chars(&self, start_pos: i32, end_pos: i32) -> Option<GString>;
32 
get_editable(&self) -> bool33     fn get_editable(&self) -> bool;
34 
get_position(&self) -> i3235     fn get_position(&self) -> i32;
36 
get_selection_bounds(&self) -> Option<(i32, i32)>37     fn get_selection_bounds(&self) -> Option<(i32, i32)>;
38 
insert_text(&self, new_text: &str, position: &mut i32)39     fn insert_text(&self, new_text: &str, position: &mut i32);
40 
paste_clipboard(&self)41     fn paste_clipboard(&self);
42 
select_region(&self, start_pos: i32, end_pos: i32)43     fn select_region(&self, start_pos: i32, end_pos: i32);
44 
set_editable(&self, is_editable: bool)45     fn set_editable(&self, is_editable: bool);
46 
set_position(&self, position: i32)47     fn set_position(&self, position: i32);
48 }
49 
50 impl<O: IsA<Editable>> EditableExt for O {
copy_clipboard(&self)51     fn copy_clipboard(&self) {
52         unsafe {
53             gtk_sys::gtk_editable_copy_clipboard(self.as_ref().to_glib_none().0);
54         }
55     }
56 
cut_clipboard(&self)57     fn cut_clipboard(&self) {
58         unsafe {
59             gtk_sys::gtk_editable_cut_clipboard(self.as_ref().to_glib_none().0);
60         }
61     }
62 
delete_selection(&self)63     fn delete_selection(&self) {
64         unsafe {
65             gtk_sys::gtk_editable_delete_selection(self.as_ref().to_glib_none().0);
66         }
67     }
68 
delete_text(&self, start_pos: i32, end_pos: i32)69     fn delete_text(&self, start_pos: i32, end_pos: i32) {
70         unsafe {
71             gtk_sys::gtk_editable_delete_text(self.as_ref().to_glib_none().0, start_pos, end_pos);
72         }
73     }
74 
get_chars(&self, start_pos: i32, end_pos: i32) -> Option<GString>75     fn get_chars(&self, start_pos: i32, end_pos: i32) -> Option<GString> {
76         unsafe {
77             from_glib_full(gtk_sys::gtk_editable_get_chars(
78                 self.as_ref().to_glib_none().0,
79                 start_pos,
80                 end_pos,
81             ))
82         }
83     }
84 
get_editable(&self) -> bool85     fn get_editable(&self) -> bool {
86         unsafe {
87             from_glib(gtk_sys::gtk_editable_get_editable(
88                 self.as_ref().to_glib_none().0,
89             ))
90         }
91     }
92 
get_position(&self) -> i3293     fn get_position(&self) -> i32 {
94         unsafe { gtk_sys::gtk_editable_get_position(self.as_ref().to_glib_none().0) }
95     }
96 
get_selection_bounds(&self) -> Option<(i32, i32)>97     fn get_selection_bounds(&self) -> Option<(i32, i32)> {
98         unsafe {
99             let mut start_pos = mem::MaybeUninit::uninit();
100             let mut end_pos = mem::MaybeUninit::uninit();
101             let ret = from_glib(gtk_sys::gtk_editable_get_selection_bounds(
102                 self.as_ref().to_glib_none().0,
103                 start_pos.as_mut_ptr(),
104                 end_pos.as_mut_ptr(),
105             ));
106             let start_pos = start_pos.assume_init();
107             let end_pos = end_pos.assume_init();
108             if ret {
109                 Some((start_pos, end_pos))
110             } else {
111                 None
112             }
113         }
114     }
115 
insert_text(&self, new_text: &str, position: &mut i32)116     fn insert_text(&self, new_text: &str, position: &mut i32) {
117         let new_text_length = new_text.len() as i32;
118         unsafe {
119             gtk_sys::gtk_editable_insert_text(
120                 self.as_ref().to_glib_none().0,
121                 new_text.to_glib_none().0,
122                 new_text_length,
123                 position,
124             );
125         }
126     }
127 
paste_clipboard(&self)128     fn paste_clipboard(&self) {
129         unsafe {
130             gtk_sys::gtk_editable_paste_clipboard(self.as_ref().to_glib_none().0);
131         }
132     }
133 
select_region(&self, start_pos: i32, end_pos: i32)134     fn select_region(&self, start_pos: i32, end_pos: i32) {
135         unsafe {
136             gtk_sys::gtk_editable_select_region(self.as_ref().to_glib_none().0, start_pos, end_pos);
137         }
138     }
139 
set_editable(&self, is_editable: bool)140     fn set_editable(&self, is_editable: bool) {
141         unsafe {
142             gtk_sys::gtk_editable_set_editable(
143                 self.as_ref().to_glib_none().0,
144                 is_editable.to_glib(),
145             );
146         }
147     }
148 
set_position(&self, position: i32)149     fn set_position(&self, position: i32) {
150         unsafe {
151             gtk_sys::gtk_editable_set_position(self.as_ref().to_glib_none().0, position);
152         }
153     }
154 }
155 
156 impl fmt::Display for Editable {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result157     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
158         write!(f, "Editable")
159     }
160 }
161