gtk/auto/
cell_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 gdk;
6use glib::object::Cast;
7use glib::object::IsA;
8use glib::signal::connect_raw;
9use glib::signal::SignalHandlerId;
10use glib::translate::*;
11use glib::StaticType;
12use glib::Value;
13use glib_sys;
14use gobject_sys;
15use gtk_sys;
16use std::boxed::Box as Box_;
17use std::fmt;
18use std::mem::transmute;
19use Buildable;
20use Widget;
21
22glib_wrapper! {
23    pub struct CellEditable(Interface<gtk_sys::GtkCellEditable>) @requires Widget, Buildable;
24
25    match fn {
26        get_type => || gtk_sys::gtk_cell_editable_get_type(),
27    }
28}
29
30pub const NONE_CELL_EDITABLE: Option<&CellEditable> = None;
31
32pub trait CellEditableExt: 'static {
33    fn editing_done(&self);
34
35    fn remove_widget(&self);
36
37    fn start_editing(&self, event: Option<&gdk::Event>);
38
39    fn get_property_editing_canceled(&self) -> bool;
40
41    fn set_property_editing_canceled(&self, editing_canceled: bool);
42
43    fn connect_editing_done<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
44
45    fn connect_remove_widget<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
46
47    fn connect_property_editing_canceled_notify<F: Fn(&Self) + 'static>(
48        &self,
49        f: F,
50    ) -> SignalHandlerId;
51}
52
53impl<O: IsA<CellEditable>> CellEditableExt for O {
54    fn editing_done(&self) {
55        unsafe {
56            gtk_sys::gtk_cell_editable_editing_done(self.as_ref().to_glib_none().0);
57        }
58    }
59
60    fn remove_widget(&self) {
61        unsafe {
62            gtk_sys::gtk_cell_editable_remove_widget(self.as_ref().to_glib_none().0);
63        }
64    }
65
66    fn start_editing(&self, event: Option<&gdk::Event>) {
67        unsafe {
68            gtk_sys::gtk_cell_editable_start_editing(
69                self.as_ref().to_glib_none().0,
70                mut_override(event.to_glib_none().0),
71            );
72        }
73    }
74
75    fn get_property_editing_canceled(&self) -> bool {
76        unsafe {
77            let mut value = Value::from_type(<bool as StaticType>::static_type());
78            gobject_sys::g_object_get_property(
79                self.to_glib_none().0 as *mut gobject_sys::GObject,
80                b"editing-canceled\0".as_ptr() as *const _,
81                value.to_glib_none_mut().0,
82            );
83            value.get().unwrap()
84        }
85    }
86
87    fn set_property_editing_canceled(&self, editing_canceled: bool) {
88        unsafe {
89            gobject_sys::g_object_set_property(
90                self.to_glib_none().0 as *mut gobject_sys::GObject,
91                b"editing-canceled\0".as_ptr() as *const _,
92                Value::from(&editing_canceled).to_glib_none().0,
93            );
94        }
95    }
96
97    fn connect_editing_done<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
98        unsafe extern "C" fn editing_done_trampoline<P, F: Fn(&P) + 'static>(
99            this: *mut gtk_sys::GtkCellEditable,
100            f: glib_sys::gpointer,
101        ) where
102            P: IsA<CellEditable>,
103        {
104            let f: &F = &*(f as *const F);
105            f(&CellEditable::from_glib_borrow(this).unsafe_cast())
106        }
107        unsafe {
108            let f: Box_<F> = Box_::new(f);
109            connect_raw(
110                self.as_ptr() as *mut _,
111                b"editing-done\0".as_ptr() as *const _,
112                Some(transmute(editing_done_trampoline::<Self, F> as usize)),
113                Box_::into_raw(f),
114            )
115        }
116    }
117
118    fn connect_remove_widget<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
119        unsafe extern "C" fn remove_widget_trampoline<P, F: Fn(&P) + 'static>(
120            this: *mut gtk_sys::GtkCellEditable,
121            f: glib_sys::gpointer,
122        ) where
123            P: IsA<CellEditable>,
124        {
125            let f: &F = &*(f as *const F);
126            f(&CellEditable::from_glib_borrow(this).unsafe_cast())
127        }
128        unsafe {
129            let f: Box_<F> = Box_::new(f);
130            connect_raw(
131                self.as_ptr() as *mut _,
132                b"remove-widget\0".as_ptr() as *const _,
133                Some(transmute(remove_widget_trampoline::<Self, F> as usize)),
134                Box_::into_raw(f),
135            )
136        }
137    }
138
139    fn connect_property_editing_canceled_notify<F: Fn(&Self) + 'static>(
140        &self,
141        f: F,
142    ) -> SignalHandlerId {
143        unsafe extern "C" fn notify_editing_canceled_trampoline<P, F: Fn(&P) + 'static>(
144            this: *mut gtk_sys::GtkCellEditable,
145            _param_spec: glib_sys::gpointer,
146            f: glib_sys::gpointer,
147        ) where
148            P: IsA<CellEditable>,
149        {
150            let f: &F = &*(f as *const F);
151            f(&CellEditable::from_glib_borrow(this).unsafe_cast())
152        }
153        unsafe {
154            let f: Box_<F> = Box_::new(f);
155            connect_raw(
156                self.as_ptr() as *mut _,
157                b"notify::editing-canceled\0".as_ptr() as *const _,
158                Some(transmute(
159                    notify_editing_canceled_trampoline::<Self, F> as usize,
160                )),
161                Box_::into_raw(f),
162            )
163        }
164    }
165}
166
167impl fmt::Display for CellEditable {
168    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
169        write!(f, "CellEditable")
170    }
171}