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