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::CellEditable;
6 use crate::CellRendererMode;
7 use crate::CellRendererState;
8 use crate::Requisition;
9 use crate::SizeRequestMode;
10 use crate::StateFlags;
11 use crate::TreePath;
12 use crate::Widget;
13 use glib::object::Cast;
14 use glib::object::IsA;
15 use glib::signal::connect_raw;
16 use glib::signal::SignalHandlerId;
17 use glib::translate::*;
18 use glib::StaticType;
19 use glib::ToValue;
20 use std::boxed::Box as Box_;
21 use std::fmt;
22 use std::mem;
23 use std::mem::transmute;
24 
25 glib::wrapper! {
26     #[doc(alias = "GtkCellRenderer")]
27     pub struct CellRenderer(Object<ffi::GtkCellRenderer, ffi::GtkCellRendererClass>);
28 
29     match fn {
30         type_ => || ffi::gtk_cell_renderer_get_type(),
31     }
32 }
33 
34 pub const NONE_CELL_RENDERER: Option<&CellRenderer> = None;
35 
36 pub trait CellRendererExt: 'static {
37     #[doc(alias = "gtk_cell_renderer_activate")]
activate<P: IsA<Widget>>( &self, event: &gdk::Event, widget: &P, path: &str, background_area: &gdk::Rectangle, cell_area: &gdk::Rectangle, flags: CellRendererState, ) -> bool38     fn activate<P: IsA<Widget>>(
39         &self,
40         event: &gdk::Event,
41         widget: &P,
42         path: &str,
43         background_area: &gdk::Rectangle,
44         cell_area: &gdk::Rectangle,
45         flags: CellRendererState,
46     ) -> bool;
47 
48     #[doc(alias = "gtk_cell_renderer_get_aligned_area")]
49     #[doc(alias = "get_aligned_area")]
aligned_area<P: IsA<Widget>>( &self, widget: &P, flags: CellRendererState, cell_area: &gdk::Rectangle, ) -> gdk::Rectangle50     fn aligned_area<P: IsA<Widget>>(
51         &self,
52         widget: &P,
53         flags: CellRendererState,
54         cell_area: &gdk::Rectangle,
55     ) -> gdk::Rectangle;
56 
57     #[doc(alias = "gtk_cell_renderer_get_alignment")]
58     #[doc(alias = "get_alignment")]
alignment(&self) -> (f32, f32)59     fn alignment(&self) -> (f32, f32);
60 
61     #[doc(alias = "gtk_cell_renderer_get_fixed_size")]
62     #[doc(alias = "get_fixed_size")]
fixed_size(&self) -> (i32, i32)63     fn fixed_size(&self) -> (i32, i32);
64 
65     #[doc(alias = "gtk_cell_renderer_get_padding")]
66     #[doc(alias = "get_padding")]
padding(&self) -> (i32, i32)67     fn padding(&self) -> (i32, i32);
68 
69     #[doc(alias = "gtk_cell_renderer_get_preferred_height")]
70     #[doc(alias = "get_preferred_height")]
preferred_height<P: IsA<Widget>>(&self, widget: &P) -> (i32, i32)71     fn preferred_height<P: IsA<Widget>>(&self, widget: &P) -> (i32, i32);
72 
73     #[doc(alias = "gtk_cell_renderer_get_preferred_height_for_width")]
74     #[doc(alias = "get_preferred_height_for_width")]
preferred_height_for_width<P: IsA<Widget>>(&self, widget: &P, width: i32) -> (i32, i32)75     fn preferred_height_for_width<P: IsA<Widget>>(&self, widget: &P, width: i32) -> (i32, i32);
76 
77     #[doc(alias = "gtk_cell_renderer_get_preferred_size")]
78     #[doc(alias = "get_preferred_size")]
preferred_size<P: IsA<Widget>>(&self, widget: &P) -> (Requisition, Requisition)79     fn preferred_size<P: IsA<Widget>>(&self, widget: &P) -> (Requisition, Requisition);
80 
81     #[doc(alias = "gtk_cell_renderer_get_preferred_width")]
82     #[doc(alias = "get_preferred_width")]
preferred_width<P: IsA<Widget>>(&self, widget: &P) -> (i32, i32)83     fn preferred_width<P: IsA<Widget>>(&self, widget: &P) -> (i32, i32);
84 
85     #[doc(alias = "gtk_cell_renderer_get_preferred_width_for_height")]
86     #[doc(alias = "get_preferred_width_for_height")]
preferred_width_for_height<P: IsA<Widget>>(&self, widget: &P, height: i32) -> (i32, i32)87     fn preferred_width_for_height<P: IsA<Widget>>(&self, widget: &P, height: i32) -> (i32, i32);
88 
89     #[doc(alias = "gtk_cell_renderer_get_request_mode")]
90     #[doc(alias = "get_request_mode")]
request_mode(&self) -> SizeRequestMode91     fn request_mode(&self) -> SizeRequestMode;
92 
93     #[doc(alias = "gtk_cell_renderer_get_sensitive")]
94     #[doc(alias = "get_sensitive")]
is_sensitive(&self) -> bool95     fn is_sensitive(&self) -> bool;
96 
97     #[doc(alias = "gtk_cell_renderer_get_state")]
98     #[doc(alias = "get_state")]
state<P: IsA<Widget>>( &self, widget: Option<&P>, cell_state: CellRendererState, ) -> StateFlags99     fn state<P: IsA<Widget>>(
100         &self,
101         widget: Option<&P>,
102         cell_state: CellRendererState,
103     ) -> StateFlags;
104 
105     #[doc(alias = "gtk_cell_renderer_get_visible")]
106     #[doc(alias = "get_visible")]
is_visible(&self) -> bool107     fn is_visible(&self) -> bool;
108 
109     #[doc(alias = "gtk_cell_renderer_is_activatable")]
is_activatable(&self) -> bool110     fn is_activatable(&self) -> bool;
111 
112     #[doc(alias = "gtk_cell_renderer_render")]
render<P: IsA<Widget>>( &self, cr: &cairo::Context, widget: &P, background_area: &gdk::Rectangle, cell_area: &gdk::Rectangle, flags: CellRendererState, )113     fn render<P: IsA<Widget>>(
114         &self,
115         cr: &cairo::Context,
116         widget: &P,
117         background_area: &gdk::Rectangle,
118         cell_area: &gdk::Rectangle,
119         flags: CellRendererState,
120     );
121 
122     #[doc(alias = "gtk_cell_renderer_set_alignment")]
set_alignment(&self, xalign: f32, yalign: f32)123     fn set_alignment(&self, xalign: f32, yalign: f32);
124 
125     #[doc(alias = "gtk_cell_renderer_set_fixed_size")]
set_fixed_size(&self, width: i32, height: i32)126     fn set_fixed_size(&self, width: i32, height: i32);
127 
128     #[doc(alias = "gtk_cell_renderer_set_padding")]
set_padding(&self, xpad: i32, ypad: i32)129     fn set_padding(&self, xpad: i32, ypad: i32);
130 
131     #[doc(alias = "gtk_cell_renderer_set_sensitive")]
set_sensitive(&self, sensitive: bool)132     fn set_sensitive(&self, sensitive: bool);
133 
134     #[doc(alias = "gtk_cell_renderer_set_visible")]
set_visible(&self, visible: bool)135     fn set_visible(&self, visible: bool);
136 
137     #[doc(alias = "gtk_cell_renderer_start_editing")]
start_editing<P: IsA<Widget>>( &self, event: Option<&gdk::Event>, widget: &P, path: &str, background_area: &gdk::Rectangle, cell_area: &gdk::Rectangle, flags: CellRendererState, ) -> Option<CellEditable>138     fn start_editing<P: IsA<Widget>>(
139         &self,
140         event: Option<&gdk::Event>,
141         widget: &P,
142         path: &str,
143         background_area: &gdk::Rectangle,
144         cell_area: &gdk::Rectangle,
145         flags: CellRendererState,
146     ) -> Option<CellEditable>;
147 
148     #[doc(alias = "gtk_cell_renderer_stop_editing")]
stop_editing(&self, canceled: bool)149     fn stop_editing(&self, canceled: bool);
150 
151     #[doc(alias = "cell-background")]
set_cell_background(&self, cell_background: Option<&str>)152     fn set_cell_background(&self, cell_background: Option<&str>);
153 
154     #[doc(alias = "cell-background-rgba")]
cell_background_rgba(&self) -> Option<gdk::RGBA>155     fn cell_background_rgba(&self) -> Option<gdk::RGBA>;
156 
157     #[doc(alias = "cell-background-rgba")]
set_cell_background_rgba(&self, cell_background_rgba: Option<&gdk::RGBA>)158     fn set_cell_background_rgba(&self, cell_background_rgba: Option<&gdk::RGBA>);
159 
160     #[doc(alias = "cell-background-set")]
is_cell_background_set(&self) -> bool161     fn is_cell_background_set(&self) -> bool;
162 
163     #[doc(alias = "cell-background-set")]
set_cell_background_set(&self, cell_background_set: bool)164     fn set_cell_background_set(&self, cell_background_set: bool);
165 
is_editing(&self) -> bool166     fn is_editing(&self) -> bool;
167 
height(&self) -> i32168     fn height(&self) -> i32;
169 
set_height(&self, height: i32)170     fn set_height(&self, height: i32);
171 
172     #[doc(alias = "is-expanded")]
is_expanded(&self) -> bool173     fn is_expanded(&self) -> bool;
174 
175     #[doc(alias = "is-expanded")]
set_is_expanded(&self, is_expanded: bool)176     fn set_is_expanded(&self, is_expanded: bool);
177 
178     #[doc(alias = "is-expander")]
is_expander(&self) -> bool179     fn is_expander(&self) -> bool;
180 
181     #[doc(alias = "is-expander")]
set_is_expander(&self, is_expander: bool)182     fn set_is_expander(&self, is_expander: bool);
183 
mode(&self) -> CellRendererMode184     fn mode(&self) -> CellRendererMode;
185 
set_mode(&self, mode: CellRendererMode)186     fn set_mode(&self, mode: CellRendererMode);
187 
width(&self) -> i32188     fn width(&self) -> i32;
189 
set_width(&self, width: i32)190     fn set_width(&self, width: i32);
191 
xalign(&self) -> f32192     fn xalign(&self) -> f32;
193 
set_xalign(&self, xalign: f32)194     fn set_xalign(&self, xalign: f32);
195 
xpad(&self) -> u32196     fn xpad(&self) -> u32;
197 
set_xpad(&self, xpad: u32)198     fn set_xpad(&self, xpad: u32);
199 
yalign(&self) -> f32200     fn yalign(&self) -> f32;
201 
set_yalign(&self, yalign: f32)202     fn set_yalign(&self, yalign: f32);
203 
ypad(&self) -> u32204     fn ypad(&self) -> u32;
205 
set_ypad(&self, ypad: u32)206     fn set_ypad(&self, ypad: u32);
207 
208     #[doc(alias = "editing-canceled")]
connect_editing_canceled<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId209     fn connect_editing_canceled<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
210 
211     #[doc(alias = "editing-started")]
connect_editing_started<F: Fn(&Self, &CellEditable, TreePath) + 'static>( &self, f: F, ) -> SignalHandlerId212     fn connect_editing_started<F: Fn(&Self, &CellEditable, TreePath) + 'static>(
213         &self,
214         f: F,
215     ) -> SignalHandlerId;
216 
217     #[doc(alias = "cell-background")]
connect_cell_background_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId218     fn connect_cell_background_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
219 
220     #[doc(alias = "cell-background-rgba")]
connect_cell_background_rgba_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId221     fn connect_cell_background_rgba_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
222 
223     #[doc(alias = "cell-background-set")]
connect_cell_background_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId224     fn connect_cell_background_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
225 
226     #[doc(alias = "editing")]
connect_editing_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId227     fn connect_editing_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
228 
229     #[doc(alias = "height")]
connect_height_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId230     fn connect_height_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
231 
232     #[doc(alias = "is-expanded")]
connect_is_expanded_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId233     fn connect_is_expanded_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
234 
235     #[doc(alias = "is-expander")]
connect_is_expander_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId236     fn connect_is_expander_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
237 
238     #[doc(alias = "mode")]
connect_mode_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId239     fn connect_mode_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
240 
241     #[doc(alias = "sensitive")]
connect_sensitive_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId242     fn connect_sensitive_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
243 
244     #[doc(alias = "visible")]
connect_visible_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId245     fn connect_visible_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
246 
247     #[doc(alias = "width")]
connect_width_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId248     fn connect_width_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
249 
250     #[doc(alias = "xalign")]
connect_xalign_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId251     fn connect_xalign_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
252 
253     #[doc(alias = "xpad")]
connect_xpad_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId254     fn connect_xpad_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
255 
256     #[doc(alias = "yalign")]
connect_yalign_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId257     fn connect_yalign_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
258 
259     #[doc(alias = "ypad")]
connect_ypad_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId260     fn connect_ypad_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
261 }
262 
263 impl<O: IsA<CellRenderer>> CellRendererExt for O {
activate<P: IsA<Widget>>( &self, event: &gdk::Event, widget: &P, path: &str, background_area: &gdk::Rectangle, cell_area: &gdk::Rectangle, flags: CellRendererState, ) -> bool264     fn activate<P: IsA<Widget>>(
265         &self,
266         event: &gdk::Event,
267         widget: &P,
268         path: &str,
269         background_area: &gdk::Rectangle,
270         cell_area: &gdk::Rectangle,
271         flags: CellRendererState,
272     ) -> bool {
273         unsafe {
274             from_glib(ffi::gtk_cell_renderer_activate(
275                 self.as_ref().to_glib_none().0,
276                 mut_override(event.to_glib_none().0),
277                 widget.as_ref().to_glib_none().0,
278                 path.to_glib_none().0,
279                 background_area.to_glib_none().0,
280                 cell_area.to_glib_none().0,
281                 flags.into_glib(),
282             ))
283         }
284     }
285 
aligned_area<P: IsA<Widget>>( &self, widget: &P, flags: CellRendererState, cell_area: &gdk::Rectangle, ) -> gdk::Rectangle286     fn aligned_area<P: IsA<Widget>>(
287         &self,
288         widget: &P,
289         flags: CellRendererState,
290         cell_area: &gdk::Rectangle,
291     ) -> gdk::Rectangle {
292         unsafe {
293             let mut aligned_area = gdk::Rectangle::uninitialized();
294             ffi::gtk_cell_renderer_get_aligned_area(
295                 self.as_ref().to_glib_none().0,
296                 widget.as_ref().to_glib_none().0,
297                 flags.into_glib(),
298                 cell_area.to_glib_none().0,
299                 aligned_area.to_glib_none_mut().0,
300             );
301             aligned_area
302         }
303     }
304 
alignment(&self) -> (f32, f32)305     fn alignment(&self) -> (f32, f32) {
306         unsafe {
307             let mut xalign = mem::MaybeUninit::uninit();
308             let mut yalign = mem::MaybeUninit::uninit();
309             ffi::gtk_cell_renderer_get_alignment(
310                 self.as_ref().to_glib_none().0,
311                 xalign.as_mut_ptr(),
312                 yalign.as_mut_ptr(),
313             );
314             let xalign = xalign.assume_init();
315             let yalign = yalign.assume_init();
316             (xalign, yalign)
317         }
318     }
319 
fixed_size(&self) -> (i32, i32)320     fn fixed_size(&self) -> (i32, i32) {
321         unsafe {
322             let mut width = mem::MaybeUninit::uninit();
323             let mut height = mem::MaybeUninit::uninit();
324             ffi::gtk_cell_renderer_get_fixed_size(
325                 self.as_ref().to_glib_none().0,
326                 width.as_mut_ptr(),
327                 height.as_mut_ptr(),
328             );
329             let width = width.assume_init();
330             let height = height.assume_init();
331             (width, height)
332         }
333     }
334 
padding(&self) -> (i32, i32)335     fn padding(&self) -> (i32, i32) {
336         unsafe {
337             let mut xpad = mem::MaybeUninit::uninit();
338             let mut ypad = mem::MaybeUninit::uninit();
339             ffi::gtk_cell_renderer_get_padding(
340                 self.as_ref().to_glib_none().0,
341                 xpad.as_mut_ptr(),
342                 ypad.as_mut_ptr(),
343             );
344             let xpad = xpad.assume_init();
345             let ypad = ypad.assume_init();
346             (xpad, ypad)
347         }
348     }
349 
preferred_height<P: IsA<Widget>>(&self, widget: &P) -> (i32, i32)350     fn preferred_height<P: IsA<Widget>>(&self, widget: &P) -> (i32, i32) {
351         unsafe {
352             let mut minimum_size = mem::MaybeUninit::uninit();
353             let mut natural_size = mem::MaybeUninit::uninit();
354             ffi::gtk_cell_renderer_get_preferred_height(
355                 self.as_ref().to_glib_none().0,
356                 widget.as_ref().to_glib_none().0,
357                 minimum_size.as_mut_ptr(),
358                 natural_size.as_mut_ptr(),
359             );
360             let minimum_size = minimum_size.assume_init();
361             let natural_size = natural_size.assume_init();
362             (minimum_size, natural_size)
363         }
364     }
365 
preferred_height_for_width<P: IsA<Widget>>(&self, widget: &P, width: i32) -> (i32, i32)366     fn preferred_height_for_width<P: IsA<Widget>>(&self, widget: &P, width: i32) -> (i32, i32) {
367         unsafe {
368             let mut minimum_height = mem::MaybeUninit::uninit();
369             let mut natural_height = mem::MaybeUninit::uninit();
370             ffi::gtk_cell_renderer_get_preferred_height_for_width(
371                 self.as_ref().to_glib_none().0,
372                 widget.as_ref().to_glib_none().0,
373                 width,
374                 minimum_height.as_mut_ptr(),
375                 natural_height.as_mut_ptr(),
376             );
377             let minimum_height = minimum_height.assume_init();
378             let natural_height = natural_height.assume_init();
379             (minimum_height, natural_height)
380         }
381     }
382 
preferred_size<P: IsA<Widget>>(&self, widget: &P) -> (Requisition, Requisition)383     fn preferred_size<P: IsA<Widget>>(&self, widget: &P) -> (Requisition, Requisition) {
384         unsafe {
385             let mut minimum_size = Requisition::uninitialized();
386             let mut natural_size = Requisition::uninitialized();
387             ffi::gtk_cell_renderer_get_preferred_size(
388                 self.as_ref().to_glib_none().0,
389                 widget.as_ref().to_glib_none().0,
390                 minimum_size.to_glib_none_mut().0,
391                 natural_size.to_glib_none_mut().0,
392             );
393             (minimum_size, natural_size)
394         }
395     }
396 
preferred_width<P: IsA<Widget>>(&self, widget: &P) -> (i32, i32)397     fn preferred_width<P: IsA<Widget>>(&self, widget: &P) -> (i32, i32) {
398         unsafe {
399             let mut minimum_size = mem::MaybeUninit::uninit();
400             let mut natural_size = mem::MaybeUninit::uninit();
401             ffi::gtk_cell_renderer_get_preferred_width(
402                 self.as_ref().to_glib_none().0,
403                 widget.as_ref().to_glib_none().0,
404                 minimum_size.as_mut_ptr(),
405                 natural_size.as_mut_ptr(),
406             );
407             let minimum_size = minimum_size.assume_init();
408             let natural_size = natural_size.assume_init();
409             (minimum_size, natural_size)
410         }
411     }
412 
preferred_width_for_height<P: IsA<Widget>>(&self, widget: &P, height: i32) -> (i32, i32)413     fn preferred_width_for_height<P: IsA<Widget>>(&self, widget: &P, height: i32) -> (i32, i32) {
414         unsafe {
415             let mut minimum_width = mem::MaybeUninit::uninit();
416             let mut natural_width = mem::MaybeUninit::uninit();
417             ffi::gtk_cell_renderer_get_preferred_width_for_height(
418                 self.as_ref().to_glib_none().0,
419                 widget.as_ref().to_glib_none().0,
420                 height,
421                 minimum_width.as_mut_ptr(),
422                 natural_width.as_mut_ptr(),
423             );
424             let minimum_width = minimum_width.assume_init();
425             let natural_width = natural_width.assume_init();
426             (minimum_width, natural_width)
427         }
428     }
429 
request_mode(&self) -> SizeRequestMode430     fn request_mode(&self) -> SizeRequestMode {
431         unsafe {
432             from_glib(ffi::gtk_cell_renderer_get_request_mode(
433                 self.as_ref().to_glib_none().0,
434             ))
435         }
436     }
437 
is_sensitive(&self) -> bool438     fn is_sensitive(&self) -> bool {
439         unsafe {
440             from_glib(ffi::gtk_cell_renderer_get_sensitive(
441                 self.as_ref().to_glib_none().0,
442             ))
443         }
444     }
445 
state<P: IsA<Widget>>( &self, widget: Option<&P>, cell_state: CellRendererState, ) -> StateFlags446     fn state<P: IsA<Widget>>(
447         &self,
448         widget: Option<&P>,
449         cell_state: CellRendererState,
450     ) -> StateFlags {
451         unsafe {
452             from_glib(ffi::gtk_cell_renderer_get_state(
453                 self.as_ref().to_glib_none().0,
454                 widget.map(|p| p.as_ref()).to_glib_none().0,
455                 cell_state.into_glib(),
456             ))
457         }
458     }
459 
is_visible(&self) -> bool460     fn is_visible(&self) -> bool {
461         unsafe {
462             from_glib(ffi::gtk_cell_renderer_get_visible(
463                 self.as_ref().to_glib_none().0,
464             ))
465         }
466     }
467 
is_activatable(&self) -> bool468     fn is_activatable(&self) -> bool {
469         unsafe {
470             from_glib(ffi::gtk_cell_renderer_is_activatable(
471                 self.as_ref().to_glib_none().0,
472             ))
473         }
474     }
475 
render<P: IsA<Widget>>( &self, cr: &cairo::Context, widget: &P, background_area: &gdk::Rectangle, cell_area: &gdk::Rectangle, flags: CellRendererState, )476     fn render<P: IsA<Widget>>(
477         &self,
478         cr: &cairo::Context,
479         widget: &P,
480         background_area: &gdk::Rectangle,
481         cell_area: &gdk::Rectangle,
482         flags: CellRendererState,
483     ) {
484         unsafe {
485             ffi::gtk_cell_renderer_render(
486                 self.as_ref().to_glib_none().0,
487                 mut_override(cr.to_glib_none().0),
488                 widget.as_ref().to_glib_none().0,
489                 background_area.to_glib_none().0,
490                 cell_area.to_glib_none().0,
491                 flags.into_glib(),
492             );
493         }
494     }
495 
set_alignment(&self, xalign: f32, yalign: f32)496     fn set_alignment(&self, xalign: f32, yalign: f32) {
497         unsafe {
498             ffi::gtk_cell_renderer_set_alignment(self.as_ref().to_glib_none().0, xalign, yalign);
499         }
500     }
501 
set_fixed_size(&self, width: i32, height: i32)502     fn set_fixed_size(&self, width: i32, height: i32) {
503         unsafe {
504             ffi::gtk_cell_renderer_set_fixed_size(self.as_ref().to_glib_none().0, width, height);
505         }
506     }
507 
set_padding(&self, xpad: i32, ypad: i32)508     fn set_padding(&self, xpad: i32, ypad: i32) {
509         unsafe {
510             ffi::gtk_cell_renderer_set_padding(self.as_ref().to_glib_none().0, xpad, ypad);
511         }
512     }
513 
set_sensitive(&self, sensitive: bool)514     fn set_sensitive(&self, sensitive: bool) {
515         unsafe {
516             ffi::gtk_cell_renderer_set_sensitive(
517                 self.as_ref().to_glib_none().0,
518                 sensitive.into_glib(),
519             );
520         }
521     }
522 
set_visible(&self, visible: bool)523     fn set_visible(&self, visible: bool) {
524         unsafe {
525             ffi::gtk_cell_renderer_set_visible(self.as_ref().to_glib_none().0, visible.into_glib());
526         }
527     }
528 
start_editing<P: IsA<Widget>>( &self, event: Option<&gdk::Event>, widget: &P, path: &str, background_area: &gdk::Rectangle, cell_area: &gdk::Rectangle, flags: CellRendererState, ) -> Option<CellEditable>529     fn start_editing<P: IsA<Widget>>(
530         &self,
531         event: Option<&gdk::Event>,
532         widget: &P,
533         path: &str,
534         background_area: &gdk::Rectangle,
535         cell_area: &gdk::Rectangle,
536         flags: CellRendererState,
537     ) -> Option<CellEditable> {
538         unsafe {
539             from_glib_none(ffi::gtk_cell_renderer_start_editing(
540                 self.as_ref().to_glib_none().0,
541                 mut_override(event.to_glib_none().0),
542                 widget.as_ref().to_glib_none().0,
543                 path.to_glib_none().0,
544                 background_area.to_glib_none().0,
545                 cell_area.to_glib_none().0,
546                 flags.into_glib(),
547             ))
548         }
549     }
550 
stop_editing(&self, canceled: bool)551     fn stop_editing(&self, canceled: bool) {
552         unsafe {
553             ffi::gtk_cell_renderer_stop_editing(
554                 self.as_ref().to_glib_none().0,
555                 canceled.into_glib(),
556             );
557         }
558     }
559 
set_cell_background(&self, cell_background: Option<&str>)560     fn set_cell_background(&self, cell_background: Option<&str>) {
561         unsafe {
562             glib::gobject_ffi::g_object_set_property(
563                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
564                 b"cell-background\0".as_ptr() as *const _,
565                 cell_background.to_value().to_glib_none().0,
566             );
567         }
568     }
569 
cell_background_rgba(&self) -> Option<gdk::RGBA>570     fn cell_background_rgba(&self) -> Option<gdk::RGBA> {
571         unsafe {
572             let mut value = glib::Value::from_type(<gdk::RGBA as StaticType>::static_type());
573             glib::gobject_ffi::g_object_get_property(
574                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
575                 b"cell-background-rgba\0".as_ptr() as *const _,
576                 value.to_glib_none_mut().0,
577             );
578             value
579                 .get()
580                 .expect("Return Value for property `cell-background-rgba` getter")
581         }
582     }
583 
set_cell_background_rgba(&self, cell_background_rgba: Option<&gdk::RGBA>)584     fn set_cell_background_rgba(&self, cell_background_rgba: Option<&gdk::RGBA>) {
585         unsafe {
586             glib::gobject_ffi::g_object_set_property(
587                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
588                 b"cell-background-rgba\0".as_ptr() as *const _,
589                 cell_background_rgba.to_value().to_glib_none().0,
590             );
591         }
592     }
593 
is_cell_background_set(&self) -> bool594     fn is_cell_background_set(&self) -> bool {
595         unsafe {
596             let mut value = glib::Value::from_type(<bool as StaticType>::static_type());
597             glib::gobject_ffi::g_object_get_property(
598                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
599                 b"cell-background-set\0".as_ptr() as *const _,
600                 value.to_glib_none_mut().0,
601             );
602             value
603                 .get()
604                 .expect("Return Value for property `cell-background-set` getter")
605         }
606     }
607 
set_cell_background_set(&self, cell_background_set: bool)608     fn set_cell_background_set(&self, cell_background_set: bool) {
609         unsafe {
610             glib::gobject_ffi::g_object_set_property(
611                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
612                 b"cell-background-set\0".as_ptr() as *const _,
613                 cell_background_set.to_value().to_glib_none().0,
614             );
615         }
616     }
617 
is_editing(&self) -> bool618     fn is_editing(&self) -> bool {
619         unsafe {
620             let mut value = glib::Value::from_type(<bool as StaticType>::static_type());
621             glib::gobject_ffi::g_object_get_property(
622                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
623                 b"editing\0".as_ptr() as *const _,
624                 value.to_glib_none_mut().0,
625             );
626             value
627                 .get()
628                 .expect("Return Value for property `editing` getter")
629         }
630     }
631 
height(&self) -> i32632     fn height(&self) -> i32 {
633         unsafe {
634             let mut value = glib::Value::from_type(<i32 as StaticType>::static_type());
635             glib::gobject_ffi::g_object_get_property(
636                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
637                 b"height\0".as_ptr() as *const _,
638                 value.to_glib_none_mut().0,
639             );
640             value
641                 .get()
642                 .expect("Return Value for property `height` getter")
643         }
644     }
645 
set_height(&self, height: i32)646     fn set_height(&self, height: i32) {
647         unsafe {
648             glib::gobject_ffi::g_object_set_property(
649                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
650                 b"height\0".as_ptr() as *const _,
651                 height.to_value().to_glib_none().0,
652             );
653         }
654     }
655 
is_expanded(&self) -> bool656     fn is_expanded(&self) -> bool {
657         unsafe {
658             let mut value = glib::Value::from_type(<bool as StaticType>::static_type());
659             glib::gobject_ffi::g_object_get_property(
660                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
661                 b"is-expanded\0".as_ptr() as *const _,
662                 value.to_glib_none_mut().0,
663             );
664             value
665                 .get()
666                 .expect("Return Value for property `is-expanded` getter")
667         }
668     }
669 
set_is_expanded(&self, is_expanded: bool)670     fn set_is_expanded(&self, is_expanded: bool) {
671         unsafe {
672             glib::gobject_ffi::g_object_set_property(
673                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
674                 b"is-expanded\0".as_ptr() as *const _,
675                 is_expanded.to_value().to_glib_none().0,
676             );
677         }
678     }
679 
is_expander(&self) -> bool680     fn is_expander(&self) -> bool {
681         unsafe {
682             let mut value = glib::Value::from_type(<bool as StaticType>::static_type());
683             glib::gobject_ffi::g_object_get_property(
684                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
685                 b"is-expander\0".as_ptr() as *const _,
686                 value.to_glib_none_mut().0,
687             );
688             value
689                 .get()
690                 .expect("Return Value for property `is-expander` getter")
691         }
692     }
693 
set_is_expander(&self, is_expander: bool)694     fn set_is_expander(&self, is_expander: bool) {
695         unsafe {
696             glib::gobject_ffi::g_object_set_property(
697                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
698                 b"is-expander\0".as_ptr() as *const _,
699                 is_expander.to_value().to_glib_none().0,
700             );
701         }
702     }
703 
mode(&self) -> CellRendererMode704     fn mode(&self) -> CellRendererMode {
705         unsafe {
706             let mut value = glib::Value::from_type(<CellRendererMode as StaticType>::static_type());
707             glib::gobject_ffi::g_object_get_property(
708                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
709                 b"mode\0".as_ptr() as *const _,
710                 value.to_glib_none_mut().0,
711             );
712             value
713                 .get()
714                 .expect("Return Value for property `mode` getter")
715         }
716     }
717 
set_mode(&self, mode: CellRendererMode)718     fn set_mode(&self, mode: CellRendererMode) {
719         unsafe {
720             glib::gobject_ffi::g_object_set_property(
721                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
722                 b"mode\0".as_ptr() as *const _,
723                 mode.to_value().to_glib_none().0,
724             );
725         }
726     }
727 
width(&self) -> i32728     fn width(&self) -> i32 {
729         unsafe {
730             let mut value = glib::Value::from_type(<i32 as StaticType>::static_type());
731             glib::gobject_ffi::g_object_get_property(
732                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
733                 b"width\0".as_ptr() as *const _,
734                 value.to_glib_none_mut().0,
735             );
736             value
737                 .get()
738                 .expect("Return Value for property `width` getter")
739         }
740     }
741 
set_width(&self, width: i32)742     fn set_width(&self, width: i32) {
743         unsafe {
744             glib::gobject_ffi::g_object_set_property(
745                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
746                 b"width\0".as_ptr() as *const _,
747                 width.to_value().to_glib_none().0,
748             );
749         }
750     }
751 
xalign(&self) -> f32752     fn xalign(&self) -> f32 {
753         unsafe {
754             let mut value = glib::Value::from_type(<f32 as StaticType>::static_type());
755             glib::gobject_ffi::g_object_get_property(
756                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
757                 b"xalign\0".as_ptr() as *const _,
758                 value.to_glib_none_mut().0,
759             );
760             value
761                 .get()
762                 .expect("Return Value for property `xalign` getter")
763         }
764     }
765 
set_xalign(&self, xalign: f32)766     fn set_xalign(&self, xalign: f32) {
767         unsafe {
768             glib::gobject_ffi::g_object_set_property(
769                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
770                 b"xalign\0".as_ptr() as *const _,
771                 xalign.to_value().to_glib_none().0,
772             );
773         }
774     }
775 
xpad(&self) -> u32776     fn xpad(&self) -> u32 {
777         unsafe {
778             let mut value = glib::Value::from_type(<u32 as StaticType>::static_type());
779             glib::gobject_ffi::g_object_get_property(
780                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
781                 b"xpad\0".as_ptr() as *const _,
782                 value.to_glib_none_mut().0,
783             );
784             value
785                 .get()
786                 .expect("Return Value for property `xpad` getter")
787         }
788     }
789 
set_xpad(&self, xpad: u32)790     fn set_xpad(&self, xpad: u32) {
791         unsafe {
792             glib::gobject_ffi::g_object_set_property(
793                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
794                 b"xpad\0".as_ptr() as *const _,
795                 xpad.to_value().to_glib_none().0,
796             );
797         }
798     }
799 
yalign(&self) -> f32800     fn yalign(&self) -> f32 {
801         unsafe {
802             let mut value = glib::Value::from_type(<f32 as StaticType>::static_type());
803             glib::gobject_ffi::g_object_get_property(
804                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
805                 b"yalign\0".as_ptr() as *const _,
806                 value.to_glib_none_mut().0,
807             );
808             value
809                 .get()
810                 .expect("Return Value for property `yalign` getter")
811         }
812     }
813 
set_yalign(&self, yalign: f32)814     fn set_yalign(&self, yalign: f32) {
815         unsafe {
816             glib::gobject_ffi::g_object_set_property(
817                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
818                 b"yalign\0".as_ptr() as *const _,
819                 yalign.to_value().to_glib_none().0,
820             );
821         }
822     }
823 
ypad(&self) -> u32824     fn ypad(&self) -> u32 {
825         unsafe {
826             let mut value = glib::Value::from_type(<u32 as StaticType>::static_type());
827             glib::gobject_ffi::g_object_get_property(
828                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
829                 b"ypad\0".as_ptr() as *const _,
830                 value.to_glib_none_mut().0,
831             );
832             value
833                 .get()
834                 .expect("Return Value for property `ypad` getter")
835         }
836     }
837 
set_ypad(&self, ypad: u32)838     fn set_ypad(&self, ypad: u32) {
839         unsafe {
840             glib::gobject_ffi::g_object_set_property(
841                 self.to_glib_none().0 as *mut glib::gobject_ffi::GObject,
842                 b"ypad\0".as_ptr() as *const _,
843                 ypad.to_value().to_glib_none().0,
844             );
845         }
846     }
847 
connect_editing_canceled<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId848     fn connect_editing_canceled<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
849         unsafe extern "C" fn editing_canceled_trampoline<
850             P: IsA<CellRenderer>,
851             F: Fn(&P) + 'static,
852         >(
853             this: *mut ffi::GtkCellRenderer,
854             f: glib::ffi::gpointer,
855         ) {
856             let f: &F = &*(f as *const F);
857             f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
858         }
859         unsafe {
860             let f: Box_<F> = Box_::new(f);
861             connect_raw(
862                 self.as_ptr() as *mut _,
863                 b"editing-canceled\0".as_ptr() as *const _,
864                 Some(transmute::<_, unsafe extern "C" fn()>(
865                     editing_canceled_trampoline::<Self, F> as *const (),
866                 )),
867                 Box_::into_raw(f),
868             )
869         }
870     }
871 
connect_editing_started<F: Fn(&Self, &CellEditable, TreePath) + 'static>( &self, f: F, ) -> SignalHandlerId872     fn connect_editing_started<F: Fn(&Self, &CellEditable, TreePath) + 'static>(
873         &self,
874         f: F,
875     ) -> SignalHandlerId {
876         unsafe extern "C" fn editing_started_trampoline<
877             P: IsA<CellRenderer>,
878             F: Fn(&P, &CellEditable, TreePath) + 'static,
879         >(
880             this: *mut ffi::GtkCellRenderer,
881             editable: *mut ffi::GtkCellEditable,
882             path: *mut libc::c_char,
883             f: glib::ffi::gpointer,
884         ) {
885             let f: &F = &*(f as *const F);
886             let path = from_glib_full(crate::ffi::gtk_tree_path_new_from_string(path));
887             f(
888                 CellRenderer::from_glib_borrow(this).unsafe_cast_ref(),
889                 &from_glib_borrow(editable),
890                 path,
891             )
892         }
893         unsafe {
894             let f: Box_<F> = Box_::new(f);
895             connect_raw(
896                 self.as_ptr() as *mut _,
897                 b"editing-started\0".as_ptr() as *const _,
898                 Some(transmute::<_, unsafe extern "C" fn()>(
899                     editing_started_trampoline::<Self, F> as *const (),
900                 )),
901                 Box_::into_raw(f),
902             )
903         }
904     }
905 
connect_cell_background_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId906     fn connect_cell_background_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
907         unsafe extern "C" fn notify_cell_background_trampoline<
908             P: IsA<CellRenderer>,
909             F: Fn(&P) + 'static,
910         >(
911             this: *mut ffi::GtkCellRenderer,
912             _param_spec: glib::ffi::gpointer,
913             f: glib::ffi::gpointer,
914         ) {
915             let f: &F = &*(f as *const F);
916             f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
917         }
918         unsafe {
919             let f: Box_<F> = Box_::new(f);
920             connect_raw(
921                 self.as_ptr() as *mut _,
922                 b"notify::cell-background\0".as_ptr() as *const _,
923                 Some(transmute::<_, unsafe extern "C" fn()>(
924                     notify_cell_background_trampoline::<Self, F> as *const (),
925                 )),
926                 Box_::into_raw(f),
927             )
928         }
929     }
930 
connect_cell_background_rgba_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId931     fn connect_cell_background_rgba_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
932         unsafe extern "C" fn notify_cell_background_rgba_trampoline<
933             P: IsA<CellRenderer>,
934             F: Fn(&P) + 'static,
935         >(
936             this: *mut ffi::GtkCellRenderer,
937             _param_spec: glib::ffi::gpointer,
938             f: glib::ffi::gpointer,
939         ) {
940             let f: &F = &*(f as *const F);
941             f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
942         }
943         unsafe {
944             let f: Box_<F> = Box_::new(f);
945             connect_raw(
946                 self.as_ptr() as *mut _,
947                 b"notify::cell-background-rgba\0".as_ptr() as *const _,
948                 Some(transmute::<_, unsafe extern "C" fn()>(
949                     notify_cell_background_rgba_trampoline::<Self, F> as *const (),
950                 )),
951                 Box_::into_raw(f),
952             )
953         }
954     }
955 
connect_cell_background_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId956     fn connect_cell_background_set_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
957         unsafe extern "C" fn notify_cell_background_set_trampoline<
958             P: IsA<CellRenderer>,
959             F: Fn(&P) + 'static,
960         >(
961             this: *mut ffi::GtkCellRenderer,
962             _param_spec: glib::ffi::gpointer,
963             f: glib::ffi::gpointer,
964         ) {
965             let f: &F = &*(f as *const F);
966             f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
967         }
968         unsafe {
969             let f: Box_<F> = Box_::new(f);
970             connect_raw(
971                 self.as_ptr() as *mut _,
972                 b"notify::cell-background-set\0".as_ptr() as *const _,
973                 Some(transmute::<_, unsafe extern "C" fn()>(
974                     notify_cell_background_set_trampoline::<Self, F> as *const (),
975                 )),
976                 Box_::into_raw(f),
977             )
978         }
979     }
980 
connect_editing_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId981     fn connect_editing_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
982         unsafe extern "C" fn notify_editing_trampoline<
983             P: IsA<CellRenderer>,
984             F: Fn(&P) + 'static,
985         >(
986             this: *mut ffi::GtkCellRenderer,
987             _param_spec: glib::ffi::gpointer,
988             f: glib::ffi::gpointer,
989         ) {
990             let f: &F = &*(f as *const F);
991             f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
992         }
993         unsafe {
994             let f: Box_<F> = Box_::new(f);
995             connect_raw(
996                 self.as_ptr() as *mut _,
997                 b"notify::editing\0".as_ptr() as *const _,
998                 Some(transmute::<_, unsafe extern "C" fn()>(
999                     notify_editing_trampoline::<Self, F> as *const (),
1000                 )),
1001                 Box_::into_raw(f),
1002             )
1003         }
1004     }
1005 
connect_height_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId1006     fn connect_height_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1007         unsafe extern "C" fn notify_height_trampoline<P: IsA<CellRenderer>, F: Fn(&P) + 'static>(
1008             this: *mut ffi::GtkCellRenderer,
1009             _param_spec: glib::ffi::gpointer,
1010             f: glib::ffi::gpointer,
1011         ) {
1012             let f: &F = &*(f as *const F);
1013             f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1014         }
1015         unsafe {
1016             let f: Box_<F> = Box_::new(f);
1017             connect_raw(
1018                 self.as_ptr() as *mut _,
1019                 b"notify::height\0".as_ptr() as *const _,
1020                 Some(transmute::<_, unsafe extern "C" fn()>(
1021                     notify_height_trampoline::<Self, F> as *const (),
1022                 )),
1023                 Box_::into_raw(f),
1024             )
1025         }
1026     }
1027 
connect_is_expanded_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId1028     fn connect_is_expanded_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1029         unsafe extern "C" fn notify_is_expanded_trampoline<
1030             P: IsA<CellRenderer>,
1031             F: Fn(&P) + 'static,
1032         >(
1033             this: *mut ffi::GtkCellRenderer,
1034             _param_spec: glib::ffi::gpointer,
1035             f: glib::ffi::gpointer,
1036         ) {
1037             let f: &F = &*(f as *const F);
1038             f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1039         }
1040         unsafe {
1041             let f: Box_<F> = Box_::new(f);
1042             connect_raw(
1043                 self.as_ptr() as *mut _,
1044                 b"notify::is-expanded\0".as_ptr() as *const _,
1045                 Some(transmute::<_, unsafe extern "C" fn()>(
1046                     notify_is_expanded_trampoline::<Self, F> as *const (),
1047                 )),
1048                 Box_::into_raw(f),
1049             )
1050         }
1051     }
1052 
connect_is_expander_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId1053     fn connect_is_expander_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1054         unsafe extern "C" fn notify_is_expander_trampoline<
1055             P: IsA<CellRenderer>,
1056             F: Fn(&P) + 'static,
1057         >(
1058             this: *mut ffi::GtkCellRenderer,
1059             _param_spec: glib::ffi::gpointer,
1060             f: glib::ffi::gpointer,
1061         ) {
1062             let f: &F = &*(f as *const F);
1063             f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1064         }
1065         unsafe {
1066             let f: Box_<F> = Box_::new(f);
1067             connect_raw(
1068                 self.as_ptr() as *mut _,
1069                 b"notify::is-expander\0".as_ptr() as *const _,
1070                 Some(transmute::<_, unsafe extern "C" fn()>(
1071                     notify_is_expander_trampoline::<Self, F> as *const (),
1072                 )),
1073                 Box_::into_raw(f),
1074             )
1075         }
1076     }
1077 
connect_mode_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId1078     fn connect_mode_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1079         unsafe extern "C" fn notify_mode_trampoline<P: IsA<CellRenderer>, F: Fn(&P) + 'static>(
1080             this: *mut ffi::GtkCellRenderer,
1081             _param_spec: glib::ffi::gpointer,
1082             f: glib::ffi::gpointer,
1083         ) {
1084             let f: &F = &*(f as *const F);
1085             f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1086         }
1087         unsafe {
1088             let f: Box_<F> = Box_::new(f);
1089             connect_raw(
1090                 self.as_ptr() as *mut _,
1091                 b"notify::mode\0".as_ptr() as *const _,
1092                 Some(transmute::<_, unsafe extern "C" fn()>(
1093                     notify_mode_trampoline::<Self, F> as *const (),
1094                 )),
1095                 Box_::into_raw(f),
1096             )
1097         }
1098     }
1099 
connect_sensitive_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId1100     fn connect_sensitive_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1101         unsafe extern "C" fn notify_sensitive_trampoline<
1102             P: IsA<CellRenderer>,
1103             F: Fn(&P) + 'static,
1104         >(
1105             this: *mut ffi::GtkCellRenderer,
1106             _param_spec: glib::ffi::gpointer,
1107             f: glib::ffi::gpointer,
1108         ) {
1109             let f: &F = &*(f as *const F);
1110             f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1111         }
1112         unsafe {
1113             let f: Box_<F> = Box_::new(f);
1114             connect_raw(
1115                 self.as_ptr() as *mut _,
1116                 b"notify::sensitive\0".as_ptr() as *const _,
1117                 Some(transmute::<_, unsafe extern "C" fn()>(
1118                     notify_sensitive_trampoline::<Self, F> as *const (),
1119                 )),
1120                 Box_::into_raw(f),
1121             )
1122         }
1123     }
1124 
connect_visible_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId1125     fn connect_visible_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1126         unsafe extern "C" fn notify_visible_trampoline<
1127             P: IsA<CellRenderer>,
1128             F: Fn(&P) + 'static,
1129         >(
1130             this: *mut ffi::GtkCellRenderer,
1131             _param_spec: glib::ffi::gpointer,
1132             f: glib::ffi::gpointer,
1133         ) {
1134             let f: &F = &*(f as *const F);
1135             f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1136         }
1137         unsafe {
1138             let f: Box_<F> = Box_::new(f);
1139             connect_raw(
1140                 self.as_ptr() as *mut _,
1141                 b"notify::visible\0".as_ptr() as *const _,
1142                 Some(transmute::<_, unsafe extern "C" fn()>(
1143                     notify_visible_trampoline::<Self, F> as *const (),
1144                 )),
1145                 Box_::into_raw(f),
1146             )
1147         }
1148     }
1149 
connect_width_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId1150     fn connect_width_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1151         unsafe extern "C" fn notify_width_trampoline<P: IsA<CellRenderer>, F: Fn(&P) + 'static>(
1152             this: *mut ffi::GtkCellRenderer,
1153             _param_spec: glib::ffi::gpointer,
1154             f: glib::ffi::gpointer,
1155         ) {
1156             let f: &F = &*(f as *const F);
1157             f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1158         }
1159         unsafe {
1160             let f: Box_<F> = Box_::new(f);
1161             connect_raw(
1162                 self.as_ptr() as *mut _,
1163                 b"notify::width\0".as_ptr() as *const _,
1164                 Some(transmute::<_, unsafe extern "C" fn()>(
1165                     notify_width_trampoline::<Self, F> as *const (),
1166                 )),
1167                 Box_::into_raw(f),
1168             )
1169         }
1170     }
1171 
connect_xalign_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId1172     fn connect_xalign_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1173         unsafe extern "C" fn notify_xalign_trampoline<P: IsA<CellRenderer>, F: Fn(&P) + 'static>(
1174             this: *mut ffi::GtkCellRenderer,
1175             _param_spec: glib::ffi::gpointer,
1176             f: glib::ffi::gpointer,
1177         ) {
1178             let f: &F = &*(f as *const F);
1179             f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1180         }
1181         unsafe {
1182             let f: Box_<F> = Box_::new(f);
1183             connect_raw(
1184                 self.as_ptr() as *mut _,
1185                 b"notify::xalign\0".as_ptr() as *const _,
1186                 Some(transmute::<_, unsafe extern "C" fn()>(
1187                     notify_xalign_trampoline::<Self, F> as *const (),
1188                 )),
1189                 Box_::into_raw(f),
1190             )
1191         }
1192     }
1193 
connect_xpad_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId1194     fn connect_xpad_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1195         unsafe extern "C" fn notify_xpad_trampoline<P: IsA<CellRenderer>, F: Fn(&P) + 'static>(
1196             this: *mut ffi::GtkCellRenderer,
1197             _param_spec: glib::ffi::gpointer,
1198             f: glib::ffi::gpointer,
1199         ) {
1200             let f: &F = &*(f as *const F);
1201             f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1202         }
1203         unsafe {
1204             let f: Box_<F> = Box_::new(f);
1205             connect_raw(
1206                 self.as_ptr() as *mut _,
1207                 b"notify::xpad\0".as_ptr() as *const _,
1208                 Some(transmute::<_, unsafe extern "C" fn()>(
1209                     notify_xpad_trampoline::<Self, F> as *const (),
1210                 )),
1211                 Box_::into_raw(f),
1212             )
1213         }
1214     }
1215 
connect_yalign_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId1216     fn connect_yalign_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1217         unsafe extern "C" fn notify_yalign_trampoline<P: IsA<CellRenderer>, F: Fn(&P) + 'static>(
1218             this: *mut ffi::GtkCellRenderer,
1219             _param_spec: glib::ffi::gpointer,
1220             f: glib::ffi::gpointer,
1221         ) {
1222             let f: &F = &*(f as *const F);
1223             f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1224         }
1225         unsafe {
1226             let f: Box_<F> = Box_::new(f);
1227             connect_raw(
1228                 self.as_ptr() as *mut _,
1229                 b"notify::yalign\0".as_ptr() as *const _,
1230                 Some(transmute::<_, unsafe extern "C" fn()>(
1231                     notify_yalign_trampoline::<Self, F> as *const (),
1232                 )),
1233                 Box_::into_raw(f),
1234             )
1235         }
1236     }
1237 
connect_ypad_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId1238     fn connect_ypad_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1239         unsafe extern "C" fn notify_ypad_trampoline<P: IsA<CellRenderer>, F: Fn(&P) + 'static>(
1240             this: *mut ffi::GtkCellRenderer,
1241             _param_spec: glib::ffi::gpointer,
1242             f: glib::ffi::gpointer,
1243         ) {
1244             let f: &F = &*(f as *const F);
1245             f(CellRenderer::from_glib_borrow(this).unsafe_cast_ref())
1246         }
1247         unsafe {
1248             let f: Box_<F> = Box_::new(f);
1249             connect_raw(
1250                 self.as_ptr() as *mut _,
1251                 b"notify::ypad\0".as_ptr() as *const _,
1252                 Some(transmute::<_, unsafe extern "C" fn()>(
1253                     notify_ypad_trampoline::<Self, F> as *const (),
1254                 )),
1255                 Box_::into_raw(f),
1256             )
1257         }
1258     }
1259 }
1260 
1261 impl fmt::Display for CellRenderer {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result1262     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1263         f.write_str("CellRenderer")
1264     }
1265 }
1266