gtk4/auto/
cell_editable.rs1#![allow(deprecated)]
5
6use crate::{ffi, Accessible, Buildable, ConstraintTarget, Widget};
7use glib::{
8 object::ObjectType as _,
9 prelude::*,
10 signal::{connect_raw, SignalHandlerId},
11 translate::*,
12};
13use std::boxed::Box as Box_;
14
15glib::wrapper! {
16 #[doc(alias = "GtkCellEditable")]
17 pub struct CellEditable(Interface<ffi::GtkCellEditable, ffi::GtkCellEditableIface>) @requires Widget, Accessible, Buildable, ConstraintTarget;
18
19 match fn {
20 type_ => || ffi::gtk_cell_editable_get_type(),
21 }
22}
23
24impl CellEditable {
25 pub const NONE: Option<&'static CellEditable> = None;
26}
27
28pub trait CellEditableExt: IsA<CellEditable> + 'static {
29 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
30 #[allow(deprecated)]
31 #[doc(alias = "gtk_cell_editable_editing_done")]
32 fn editing_done(&self) {
33 unsafe {
34 ffi::gtk_cell_editable_editing_done(self.as_ref().to_glib_none().0);
35 }
36 }
37
38 #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
39 #[allow(deprecated)]
40 #[doc(alias = "gtk_cell_editable_remove_widget")]
41 fn remove_widget(&self) {
42 unsafe {
43 ffi::gtk_cell_editable_remove_widget(self.as_ref().to_glib_none().0);
44 }
45 }
46
47 #[doc(alias = "gtk_cell_editable_start_editing")]
48 fn start_editing(&self, event: Option<impl AsRef<gdk::Event>>) {
49 unsafe {
50 ffi::gtk_cell_editable_start_editing(
51 self.as_ref().to_glib_none().0,
52 event.as_ref().map(|p| p.as_ref()).to_glib_none().0,
53 );
54 }
55 }
56
57 #[doc(alias = "editing-canceled")]
58 fn is_editing_canceled(&self) -> bool {
59 ObjectExt::property(self.as_ref(), "editing-canceled")
60 }
61
62 #[doc(alias = "editing-canceled")]
63 fn set_editing_canceled(&self, editing_canceled: bool) {
64 ObjectExt::set_property(self.as_ref(), "editing-canceled", editing_canceled)
65 }
66
67 #[doc(alias = "editing-done")]
68 fn connect_editing_done<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
69 unsafe extern "C" fn editing_done_trampoline<P: IsA<CellEditable>, F: Fn(&P) + 'static>(
70 this: *mut ffi::GtkCellEditable,
71 f: glib::ffi::gpointer,
72 ) {
73 let f: &F = &*(f as *const F);
74 f(CellEditable::from_glib_borrow(this).unsafe_cast_ref())
75 }
76 unsafe {
77 let f: Box_<F> = Box_::new(f);
78 connect_raw(
79 self.as_ptr() as *mut _,
80 c"editing-done".as_ptr() as *const _,
81 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
82 editing_done_trampoline::<Self, F> as *const (),
83 )),
84 Box_::into_raw(f),
85 )
86 }
87 }
88
89 #[doc(alias = "remove-widget")]
90 fn connect_remove_widget<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
91 unsafe extern "C" fn remove_widget_trampoline<P: IsA<CellEditable>, F: Fn(&P) + 'static>(
92 this: *mut ffi::GtkCellEditable,
93 f: glib::ffi::gpointer,
94 ) {
95 let f: &F = &*(f as *const F);
96 f(CellEditable::from_glib_borrow(this).unsafe_cast_ref())
97 }
98 unsafe {
99 let f: Box_<F> = Box_::new(f);
100 connect_raw(
101 self.as_ptr() as *mut _,
102 c"remove-widget".as_ptr() as *const _,
103 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
104 remove_widget_trampoline::<Self, F> as *const (),
105 )),
106 Box_::into_raw(f),
107 )
108 }
109 }
110
111 #[doc(alias = "editing-canceled")]
112 fn connect_editing_canceled_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
113 unsafe extern "C" fn notify_editing_canceled_trampoline<
114 P: IsA<CellEditable>,
115 F: Fn(&P) + 'static,
116 >(
117 this: *mut ffi::GtkCellEditable,
118 _param_spec: glib::ffi::gpointer,
119 f: glib::ffi::gpointer,
120 ) {
121 let f: &F = &*(f as *const F);
122 f(CellEditable::from_glib_borrow(this).unsafe_cast_ref())
123 }
124 unsafe {
125 let f: Box_<F> = Box_::new(f);
126 connect_raw(
127 self.as_ptr() as *mut _,
128 c"notify::editing-canceled".as_ptr() as *const _,
129 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
130 notify_editing_canceled_trampoline::<Self, F> as *const (),
131 )),
132 Box_::into_raw(f),
133 )
134 }
135 }
136}
137
138impl<O: IsA<CellEditable>> CellEditableExt for O {}