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