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