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