gtk/auto/
editable.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 glib::object::IsA;
6use glib::translate::*;
7use glib::GString;
8use gtk_sys;
9use std::fmt;
10use std::mem;
11
12glib_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
20pub const NONE_EDITABLE: Option<&Editable> = None;
21
22pub trait EditableExt: 'static {
23    fn copy_clipboard(&self);
24
25    fn cut_clipboard(&self);
26
27    fn delete_selection(&self);
28
29    fn delete_text(&self, start_pos: i32, end_pos: i32);
30
31    fn get_chars(&self, start_pos: i32, end_pos: i32) -> Option<GString>;
32
33    fn get_editable(&self) -> bool;
34
35    fn get_position(&self) -> i32;
36
37    fn get_selection_bounds(&self) -> Option<(i32, i32)>;
38
39    fn insert_text(&self, new_text: &str, position: &mut i32);
40
41    fn paste_clipboard(&self);
42
43    fn select_region(&self, start_pos: i32, end_pos: i32);
44
45    fn set_editable(&self, is_editable: bool);
46
47    fn set_position(&self, position: i32);
48}
49
50impl<O: IsA<Editable>> EditableExt for O {
51    fn copy_clipboard(&self) {
52        unsafe {
53            gtk_sys::gtk_editable_copy_clipboard(self.as_ref().to_glib_none().0);
54        }
55    }
56
57    fn cut_clipboard(&self) {
58        unsafe {
59            gtk_sys::gtk_editable_cut_clipboard(self.as_ref().to_glib_none().0);
60        }
61    }
62
63    fn delete_selection(&self) {
64        unsafe {
65            gtk_sys::gtk_editable_delete_selection(self.as_ref().to_glib_none().0);
66        }
67    }
68
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
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
85    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
93    fn get_position(&self) -> i32 {
94        unsafe { gtk_sys::gtk_editable_get_position(self.as_ref().to_glib_none().0) }
95    }
96
97    fn get_selection_bounds(&self) -> Option<(i32, i32)> {
98        unsafe {
99            let mut start_pos = mem::uninitialized();
100            let mut end_pos = mem::uninitialized();
101            let ret = from_glib(gtk_sys::gtk_editable_get_selection_bounds(
102                self.as_ref().to_glib_none().0,
103                &mut start_pos,
104                &mut end_pos,
105            ));
106            if ret {
107                Some((start_pos, end_pos))
108            } else {
109                None
110            }
111        }
112    }
113
114    fn insert_text(&self, new_text: &str, position: &mut i32) {
115        let new_text_length = new_text.len() as i32;
116        unsafe {
117            gtk_sys::gtk_editable_insert_text(
118                self.as_ref().to_glib_none().0,
119                new_text.to_glib_none().0,
120                new_text_length,
121                position,
122            );
123        }
124    }
125
126    fn paste_clipboard(&self) {
127        unsafe {
128            gtk_sys::gtk_editable_paste_clipboard(self.as_ref().to_glib_none().0);
129        }
130    }
131
132    fn select_region(&self, start_pos: i32, end_pos: i32) {
133        unsafe {
134            gtk_sys::gtk_editable_select_region(self.as_ref().to_glib_none().0, start_pos, end_pos);
135        }
136    }
137
138    fn set_editable(&self, is_editable: bool) {
139        unsafe {
140            gtk_sys::gtk_editable_set_editable(
141                self.as_ref().to_glib_none().0,
142                is_editable.to_glib(),
143            );
144        }
145    }
146
147    fn set_position(&self, position: i32) {
148        unsafe {
149            gtk_sys::gtk_editable_set_position(self.as_ref().to_glib_none().0, position);
150        }
151    }
152}
153
154impl fmt::Display for Editable {
155    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
156        write!(f, "Editable")
157    }
158}