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::CellAreaContext;
7 use crate::CellEditable;
8 use crate::CellLayout;
9 use crate::CellRenderer;
10 use crate::CellRendererState;
11 use crate::DirectionType;
12 use crate::Orientation;
13 use crate::SizeRequestMode;
14 use crate::TreeIter;
15 use crate::TreeModel;
16 use crate::TreePath;
17 use crate::Widget;
18 use glib::object::Cast;
19 use glib::object::IsA;
20 use glib::signal::connect_raw;
21 use glib::signal::SignalHandlerId;
22 use glib::translate::*;
23 use std::boxed::Box as Box_;
24 use std::fmt;
25 use std::mem;
26 use std::mem::transmute;
27 
28 glib::wrapper! {
29     #[doc(alias = "GtkCellArea")]
30     pub struct CellArea(Object<ffi::GtkCellArea, ffi::GtkCellAreaClass>) @implements Buildable, CellLayout;
31 
32     match fn {
33         type_ => || ffi::gtk_cell_area_get_type(),
34     }
35 }
36 
37 pub const NONE_CELL_AREA: Option<&CellArea> = None;
38 
39 pub trait CellAreaExt: 'static {
40     #[doc(alias = "gtk_cell_area_activate")]
activate<P: IsA<CellAreaContext>, Q: IsA<Widget>>( &self, context: &P, widget: &Q, cell_area: &gdk::Rectangle, flags: CellRendererState, edit_only: bool, ) -> bool41     fn activate<P: IsA<CellAreaContext>, Q: IsA<Widget>>(
42         &self,
43         context: &P,
44         widget: &Q,
45         cell_area: &gdk::Rectangle,
46         flags: CellRendererState,
47         edit_only: bool,
48     ) -> bool;
49 
50     #[doc(alias = "gtk_cell_area_activate_cell")]
activate_cell<P: IsA<Widget>, Q: IsA<CellRenderer>>( &self, widget: &P, renderer: &Q, event: &gdk::Event, cell_area: &gdk::Rectangle, flags: CellRendererState, ) -> bool51     fn activate_cell<P: IsA<Widget>, Q: IsA<CellRenderer>>(
52         &self,
53         widget: &P,
54         renderer: &Q,
55         event: &gdk::Event,
56         cell_area: &gdk::Rectangle,
57         flags: CellRendererState,
58     ) -> bool;
59 
60     #[doc(alias = "gtk_cell_area_add")]
add<P: IsA<CellRenderer>>(&self, renderer: &P)61     fn add<P: IsA<CellRenderer>>(&self, renderer: &P);
62 
63     #[doc(alias = "gtk_cell_area_add_focus_sibling")]
add_focus_sibling<P: IsA<CellRenderer>, Q: IsA<CellRenderer>>( &self, renderer: &P, sibling: &Q, )64     fn add_focus_sibling<P: IsA<CellRenderer>, Q: IsA<CellRenderer>>(
65         &self,
66         renderer: &P,
67         sibling: &Q,
68     );
69 
70     //#[doc(alias = "gtk_cell_area_add_with_properties")]
71     //fn add_with_properties<P: IsA<CellRenderer>>(&self, renderer: &P, first_prop_name: &str, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs);
72 
73     #[doc(alias = "gtk_cell_area_apply_attributes")]
apply_attributes<P: IsA<TreeModel>>( &self, tree_model: &P, iter: &TreeIter, is_expander: bool, is_expanded: bool, )74     fn apply_attributes<P: IsA<TreeModel>>(
75         &self,
76         tree_model: &P,
77         iter: &TreeIter,
78         is_expander: bool,
79         is_expanded: bool,
80     );
81 
82     #[doc(alias = "gtk_cell_area_attribute_connect")]
attribute_connect<P: IsA<CellRenderer>>(&self, renderer: &P, attribute: &str, column: i32)83     fn attribute_connect<P: IsA<CellRenderer>>(&self, renderer: &P, attribute: &str, column: i32);
84 
85     #[doc(alias = "gtk_cell_area_attribute_disconnect")]
attribute_disconnect<P: IsA<CellRenderer>>(&self, renderer: &P, attribute: &str)86     fn attribute_disconnect<P: IsA<CellRenderer>>(&self, renderer: &P, attribute: &str);
87 
88     #[doc(alias = "gtk_cell_area_attribute_get_column")]
attribute_get_column<P: IsA<CellRenderer>>(&self, renderer: &P, attribute: &str) -> i3289     fn attribute_get_column<P: IsA<CellRenderer>>(&self, renderer: &P, attribute: &str) -> i32;
90 
91     //#[doc(alias = "gtk_cell_area_cell_get")]
92     //fn cell_get<P: IsA<CellRenderer>>(&self, renderer: &P, first_prop_name: &str, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs);
93 
94     #[doc(alias = "gtk_cell_area_cell_get_property")]
cell_get_property<P: IsA<CellRenderer>>( &self, renderer: &P, property_name: &str, ) -> glib::Value95     fn cell_get_property<P: IsA<CellRenderer>>(
96         &self,
97         renderer: &P,
98         property_name: &str,
99     ) -> glib::Value;
100 
101     //#[doc(alias = "gtk_cell_area_cell_get_valist")]
102     //fn cell_get_valist<P: IsA<CellRenderer>>(&self, renderer: &P, first_property_name: &str, var_args: /*Unknown conversion*//*Unimplemented*/Unsupported);
103 
104     //#[doc(alias = "gtk_cell_area_cell_set")]
105     //fn cell_set<P: IsA<CellRenderer>>(&self, renderer: &P, first_prop_name: &str, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs);
106 
107     #[doc(alias = "gtk_cell_area_cell_set_property")]
cell_set_property<P: IsA<CellRenderer>>( &self, renderer: &P, property_name: &str, value: &glib::Value, )108     fn cell_set_property<P: IsA<CellRenderer>>(
109         &self,
110         renderer: &P,
111         property_name: &str,
112         value: &glib::Value,
113     );
114 
115     //#[doc(alias = "gtk_cell_area_cell_set_valist")]
116     //fn cell_set_valist<P: IsA<CellRenderer>>(&self, renderer: &P, first_property_name: &str, var_args: /*Unknown conversion*//*Unimplemented*/Unsupported);
117 
118     #[doc(alias = "gtk_cell_area_copy_context")]
copy_context<P: IsA<CellAreaContext>>(&self, context: &P) -> Option<CellAreaContext>119     fn copy_context<P: IsA<CellAreaContext>>(&self, context: &P) -> Option<CellAreaContext>;
120 
121     #[doc(alias = "gtk_cell_area_create_context")]
create_context(&self) -> Option<CellAreaContext>122     fn create_context(&self) -> Option<CellAreaContext>;
123 
124     #[doc(alias = "gtk_cell_area_event")]
event<P: IsA<CellAreaContext>, Q: IsA<Widget>>( &self, context: &P, widget: &Q, event: &gdk::Event, cell_area: &gdk::Rectangle, flags: CellRendererState, ) -> i32125     fn event<P: IsA<CellAreaContext>, Q: IsA<Widget>>(
126         &self,
127         context: &P,
128         widget: &Q,
129         event: &gdk::Event,
130         cell_area: &gdk::Rectangle,
131         flags: CellRendererState,
132     ) -> i32;
133 
134     #[doc(alias = "gtk_cell_area_focus")]
focus(&self, direction: DirectionType) -> bool135     fn focus(&self, direction: DirectionType) -> bool;
136 
137     #[doc(alias = "gtk_cell_area_foreach")]
foreach<P: FnMut(&CellRenderer) -> bool>(&self, callback: P)138     fn foreach<P: FnMut(&CellRenderer) -> bool>(&self, callback: P);
139 
140     #[doc(alias = "gtk_cell_area_foreach_alloc")]
foreach_alloc< P: IsA<CellAreaContext>, Q: IsA<Widget>, R: FnMut(&CellRenderer, &gdk::Rectangle, &gdk::Rectangle) -> bool, >( &self, context: &P, widget: &Q, cell_area: &gdk::Rectangle, background_area: &gdk::Rectangle, callback: R, )141     fn foreach_alloc<
142         P: IsA<CellAreaContext>,
143         Q: IsA<Widget>,
144         R: FnMut(&CellRenderer, &gdk::Rectangle, &gdk::Rectangle) -> bool,
145     >(
146         &self,
147         context: &P,
148         widget: &Q,
149         cell_area: &gdk::Rectangle,
150         background_area: &gdk::Rectangle,
151         callback: R,
152     );
153 
154     #[doc(alias = "gtk_cell_area_get_cell_allocation")]
155     #[doc(alias = "get_cell_allocation")]
cell_allocation<P: IsA<CellAreaContext>, Q: IsA<Widget>, R: IsA<CellRenderer>>( &self, context: &P, widget: &Q, renderer: &R, cell_area: &gdk::Rectangle, ) -> gdk::Rectangle156     fn cell_allocation<P: IsA<CellAreaContext>, Q: IsA<Widget>, R: IsA<CellRenderer>>(
157         &self,
158         context: &P,
159         widget: &Q,
160         renderer: &R,
161         cell_area: &gdk::Rectangle,
162     ) -> gdk::Rectangle;
163 
164     #[doc(alias = "gtk_cell_area_get_cell_at_position")]
165     #[doc(alias = "get_cell_at_position")]
cell_at_position<P: IsA<CellAreaContext>, Q: IsA<Widget>>( &self, context: &P, widget: &Q, cell_area: &gdk::Rectangle, x: i32, y: i32, ) -> (CellRenderer, gdk::Rectangle)166     fn cell_at_position<P: IsA<CellAreaContext>, Q: IsA<Widget>>(
167         &self,
168         context: &P,
169         widget: &Q,
170         cell_area: &gdk::Rectangle,
171         x: i32,
172         y: i32,
173     ) -> (CellRenderer, gdk::Rectangle);
174 
175     #[doc(alias = "gtk_cell_area_get_current_path_string")]
176     #[doc(alias = "get_current_path_string")]
current_path_string(&self) -> Option<glib::GString>177     fn current_path_string(&self) -> Option<glib::GString>;
178 
179     #[doc(alias = "gtk_cell_area_get_edit_widget")]
180     #[doc(alias = "get_edit_widget")]
edit_widget(&self) -> Option<CellEditable>181     fn edit_widget(&self) -> Option<CellEditable>;
182 
183     #[doc(alias = "gtk_cell_area_get_edited_cell")]
184     #[doc(alias = "get_edited_cell")]
edited_cell(&self) -> Option<CellRenderer>185     fn edited_cell(&self) -> Option<CellRenderer>;
186 
187     #[doc(alias = "gtk_cell_area_get_focus_cell")]
188     #[doc(alias = "get_focus_cell")]
focus_cell(&self) -> Option<CellRenderer>189     fn focus_cell(&self) -> Option<CellRenderer>;
190 
191     #[doc(alias = "gtk_cell_area_get_focus_from_sibling")]
192     #[doc(alias = "get_focus_from_sibling")]
focus_from_sibling<P: IsA<CellRenderer>>(&self, renderer: &P) -> Option<CellRenderer>193     fn focus_from_sibling<P: IsA<CellRenderer>>(&self, renderer: &P) -> Option<CellRenderer>;
194 
195     #[doc(alias = "gtk_cell_area_get_focus_siblings")]
196     #[doc(alias = "get_focus_siblings")]
focus_siblings<P: IsA<CellRenderer>>(&self, renderer: &P) -> Vec<CellRenderer>197     fn focus_siblings<P: IsA<CellRenderer>>(&self, renderer: &P) -> Vec<CellRenderer>;
198 
199     #[doc(alias = "gtk_cell_area_get_preferred_height")]
200     #[doc(alias = "get_preferred_height")]
preferred_height<P: IsA<CellAreaContext>, Q: IsA<Widget>>( &self, context: &P, widget: &Q, ) -> (i32, i32)201     fn preferred_height<P: IsA<CellAreaContext>, Q: IsA<Widget>>(
202         &self,
203         context: &P,
204         widget: &Q,
205     ) -> (i32, i32);
206 
207     #[doc(alias = "gtk_cell_area_get_preferred_height_for_width")]
208     #[doc(alias = "get_preferred_height_for_width")]
preferred_height_for_width<P: IsA<CellAreaContext>, Q: IsA<Widget>>( &self, context: &P, widget: &Q, width: i32, ) -> (i32, i32)209     fn preferred_height_for_width<P: IsA<CellAreaContext>, Q: IsA<Widget>>(
210         &self,
211         context: &P,
212         widget: &Q,
213         width: i32,
214     ) -> (i32, i32);
215 
216     #[doc(alias = "gtk_cell_area_get_preferred_width")]
217     #[doc(alias = "get_preferred_width")]
preferred_width<P: IsA<CellAreaContext>, Q: IsA<Widget>>( &self, context: &P, widget: &Q, ) -> (i32, i32)218     fn preferred_width<P: IsA<CellAreaContext>, Q: IsA<Widget>>(
219         &self,
220         context: &P,
221         widget: &Q,
222     ) -> (i32, i32);
223 
224     #[doc(alias = "gtk_cell_area_get_preferred_width_for_height")]
225     #[doc(alias = "get_preferred_width_for_height")]
preferred_width_for_height<P: IsA<CellAreaContext>, Q: IsA<Widget>>( &self, context: &P, widget: &Q, height: i32, ) -> (i32, i32)226     fn preferred_width_for_height<P: IsA<CellAreaContext>, Q: IsA<Widget>>(
227         &self,
228         context: &P,
229         widget: &Q,
230         height: i32,
231     ) -> (i32, i32);
232 
233     #[doc(alias = "gtk_cell_area_get_request_mode")]
234     #[doc(alias = "get_request_mode")]
request_mode(&self) -> SizeRequestMode235     fn request_mode(&self) -> SizeRequestMode;
236 
237     #[doc(alias = "gtk_cell_area_has_renderer")]
has_renderer<P: IsA<CellRenderer>>(&self, renderer: &P) -> bool238     fn has_renderer<P: IsA<CellRenderer>>(&self, renderer: &P) -> bool;
239 
240     #[doc(alias = "gtk_cell_area_inner_cell_area")]
inner_cell_area<P: IsA<Widget>>( &self, widget: &P, cell_area: &gdk::Rectangle, ) -> gdk::Rectangle241     fn inner_cell_area<P: IsA<Widget>>(
242         &self,
243         widget: &P,
244         cell_area: &gdk::Rectangle,
245     ) -> gdk::Rectangle;
246 
247     #[doc(alias = "gtk_cell_area_is_activatable")]
is_activatable(&self) -> bool248     fn is_activatable(&self) -> bool;
249 
250     #[doc(alias = "gtk_cell_area_is_focus_sibling")]
is_focus_sibling<P: IsA<CellRenderer>, Q: IsA<CellRenderer>>( &self, renderer: &P, sibling: &Q, ) -> bool251     fn is_focus_sibling<P: IsA<CellRenderer>, Q: IsA<CellRenderer>>(
252         &self,
253         renderer: &P,
254         sibling: &Q,
255     ) -> bool;
256 
257     #[doc(alias = "gtk_cell_area_remove")]
remove<P: IsA<CellRenderer>>(&self, renderer: &P)258     fn remove<P: IsA<CellRenderer>>(&self, renderer: &P);
259 
260     #[doc(alias = "gtk_cell_area_remove_focus_sibling")]
remove_focus_sibling<P: IsA<CellRenderer>, Q: IsA<CellRenderer>>( &self, renderer: &P, sibling: &Q, )261     fn remove_focus_sibling<P: IsA<CellRenderer>, Q: IsA<CellRenderer>>(
262         &self,
263         renderer: &P,
264         sibling: &Q,
265     );
266 
267     #[doc(alias = "gtk_cell_area_render")]
render<P: IsA<CellAreaContext>, Q: IsA<Widget>>( &self, context: &P, widget: &Q, cr: &cairo::Context, background_area: &gdk::Rectangle, cell_area: &gdk::Rectangle, flags: CellRendererState, paint_focus: bool, )268     fn render<P: IsA<CellAreaContext>, Q: IsA<Widget>>(
269         &self,
270         context: &P,
271         widget: &Q,
272         cr: &cairo::Context,
273         background_area: &gdk::Rectangle,
274         cell_area: &gdk::Rectangle,
275         flags: CellRendererState,
276         paint_focus: bool,
277     );
278 
279     #[doc(alias = "gtk_cell_area_request_renderer")]
request_renderer<P: IsA<CellRenderer>, Q: IsA<Widget>>( &self, renderer: &P, orientation: Orientation, widget: &Q, for_size: i32, ) -> (i32, i32)280     fn request_renderer<P: IsA<CellRenderer>, Q: IsA<Widget>>(
281         &self,
282         renderer: &P,
283         orientation: Orientation,
284         widget: &Q,
285         for_size: i32,
286     ) -> (i32, i32);
287 
288     #[doc(alias = "gtk_cell_area_set_focus_cell")]
set_focus_cell<P: IsA<CellRenderer>>(&self, renderer: &P)289     fn set_focus_cell<P: IsA<CellRenderer>>(&self, renderer: &P);
290 
291     #[doc(alias = "gtk_cell_area_stop_editing")]
stop_editing(&self, canceled: bool)292     fn stop_editing(&self, canceled: bool);
293 
294     #[doc(alias = "add-editable")]
connect_add_editable< F: Fn(&Self, &CellRenderer, &CellEditable, &gdk::Rectangle, TreePath) + 'static, >( &self, f: F, ) -> SignalHandlerId295     fn connect_add_editable<
296         F: Fn(&Self, &CellRenderer, &CellEditable, &gdk::Rectangle, TreePath) + 'static,
297     >(
298         &self,
299         f: F,
300     ) -> SignalHandlerId;
301 
302     #[doc(alias = "apply-attributes")]
connect_apply_attributes<F: Fn(&Self, &TreeModel, &TreeIter, bool, bool) + 'static>( &self, f: F, ) -> SignalHandlerId303     fn connect_apply_attributes<F: Fn(&Self, &TreeModel, &TreeIter, bool, bool) + 'static>(
304         &self,
305         f: F,
306     ) -> SignalHandlerId;
307 
308     #[doc(alias = "focus-changed")]
connect_focus_changed<F: Fn(&Self, &CellRenderer, TreePath) + 'static>( &self, f: F, ) -> SignalHandlerId309     fn connect_focus_changed<F: Fn(&Self, &CellRenderer, TreePath) + 'static>(
310         &self,
311         f: F,
312     ) -> SignalHandlerId;
313 
314     #[doc(alias = "remove-editable")]
connect_remove_editable<F: Fn(&Self, &CellRenderer, &CellEditable) + 'static>( &self, f: F, ) -> SignalHandlerId315     fn connect_remove_editable<F: Fn(&Self, &CellRenderer, &CellEditable) + 'static>(
316         &self,
317         f: F,
318     ) -> SignalHandlerId;
319 
320     #[doc(alias = "edit-widget")]
connect_edit_widget_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId321     fn connect_edit_widget_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
322 
323     #[doc(alias = "edited-cell")]
connect_edited_cell_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId324     fn connect_edited_cell_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
325 
326     #[doc(alias = "focus-cell")]
connect_focus_cell_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId327     fn connect_focus_cell_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
328 }
329 
330 impl<O: IsA<CellArea>> CellAreaExt for O {
activate<P: IsA<CellAreaContext>, Q: IsA<Widget>>( &self, context: &P, widget: &Q, cell_area: &gdk::Rectangle, flags: CellRendererState, edit_only: bool, ) -> bool331     fn activate<P: IsA<CellAreaContext>, Q: IsA<Widget>>(
332         &self,
333         context: &P,
334         widget: &Q,
335         cell_area: &gdk::Rectangle,
336         flags: CellRendererState,
337         edit_only: bool,
338     ) -> bool {
339         unsafe {
340             from_glib(ffi::gtk_cell_area_activate(
341                 self.as_ref().to_glib_none().0,
342                 context.as_ref().to_glib_none().0,
343                 widget.as_ref().to_glib_none().0,
344                 cell_area.to_glib_none().0,
345                 flags.into_glib(),
346                 edit_only.into_glib(),
347             ))
348         }
349     }
350 
activate_cell<P: IsA<Widget>, Q: IsA<CellRenderer>>( &self, widget: &P, renderer: &Q, event: &gdk::Event, cell_area: &gdk::Rectangle, flags: CellRendererState, ) -> bool351     fn activate_cell<P: IsA<Widget>, Q: IsA<CellRenderer>>(
352         &self,
353         widget: &P,
354         renderer: &Q,
355         event: &gdk::Event,
356         cell_area: &gdk::Rectangle,
357         flags: CellRendererState,
358     ) -> bool {
359         unsafe {
360             from_glib(ffi::gtk_cell_area_activate_cell(
361                 self.as_ref().to_glib_none().0,
362                 widget.as_ref().to_glib_none().0,
363                 renderer.as_ref().to_glib_none().0,
364                 mut_override(event.to_glib_none().0),
365                 cell_area.to_glib_none().0,
366                 flags.into_glib(),
367             ))
368         }
369     }
370 
add<P: IsA<CellRenderer>>(&self, renderer: &P)371     fn add<P: IsA<CellRenderer>>(&self, renderer: &P) {
372         unsafe {
373             ffi::gtk_cell_area_add(
374                 self.as_ref().to_glib_none().0,
375                 renderer.as_ref().to_glib_none().0,
376             );
377         }
378     }
379 
add_focus_sibling<P: IsA<CellRenderer>, Q: IsA<CellRenderer>>( &self, renderer: &P, sibling: &Q, )380     fn add_focus_sibling<P: IsA<CellRenderer>, Q: IsA<CellRenderer>>(
381         &self,
382         renderer: &P,
383         sibling: &Q,
384     ) {
385         unsafe {
386             ffi::gtk_cell_area_add_focus_sibling(
387                 self.as_ref().to_glib_none().0,
388                 renderer.as_ref().to_glib_none().0,
389                 sibling.as_ref().to_glib_none().0,
390             );
391         }
392     }
393 
394     //fn add_with_properties<P: IsA<CellRenderer>>(&self, renderer: &P, first_prop_name: &str, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs) {
395     //    unsafe { TODO: call ffi:gtk_cell_area_add_with_properties() }
396     //}
397 
apply_attributes<P: IsA<TreeModel>>( &self, tree_model: &P, iter: &TreeIter, is_expander: bool, is_expanded: bool, )398     fn apply_attributes<P: IsA<TreeModel>>(
399         &self,
400         tree_model: &P,
401         iter: &TreeIter,
402         is_expander: bool,
403         is_expanded: bool,
404     ) {
405         unsafe {
406             ffi::gtk_cell_area_apply_attributes(
407                 self.as_ref().to_glib_none().0,
408                 tree_model.as_ref().to_glib_none().0,
409                 mut_override(iter.to_glib_none().0),
410                 is_expander.into_glib(),
411                 is_expanded.into_glib(),
412             );
413         }
414     }
415 
attribute_connect<P: IsA<CellRenderer>>(&self, renderer: &P, attribute: &str, column: i32)416     fn attribute_connect<P: IsA<CellRenderer>>(&self, renderer: &P, attribute: &str, column: i32) {
417         unsafe {
418             ffi::gtk_cell_area_attribute_connect(
419                 self.as_ref().to_glib_none().0,
420                 renderer.as_ref().to_glib_none().0,
421                 attribute.to_glib_none().0,
422                 column,
423             );
424         }
425     }
426 
attribute_disconnect<P: IsA<CellRenderer>>(&self, renderer: &P, attribute: &str)427     fn attribute_disconnect<P: IsA<CellRenderer>>(&self, renderer: &P, attribute: &str) {
428         unsafe {
429             ffi::gtk_cell_area_attribute_disconnect(
430                 self.as_ref().to_glib_none().0,
431                 renderer.as_ref().to_glib_none().0,
432                 attribute.to_glib_none().0,
433             );
434         }
435     }
436 
attribute_get_column<P: IsA<CellRenderer>>(&self, renderer: &P, attribute: &str) -> i32437     fn attribute_get_column<P: IsA<CellRenderer>>(&self, renderer: &P, attribute: &str) -> i32 {
438         unsafe {
439             ffi::gtk_cell_area_attribute_get_column(
440                 self.as_ref().to_glib_none().0,
441                 renderer.as_ref().to_glib_none().0,
442                 attribute.to_glib_none().0,
443             )
444         }
445     }
446 
447     //fn cell_get<P: IsA<CellRenderer>>(&self, renderer: &P, first_prop_name: &str, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs) {
448     //    unsafe { TODO: call ffi:gtk_cell_area_cell_get() }
449     //}
450 
cell_get_property<P: IsA<CellRenderer>>( &self, renderer: &P, property_name: &str, ) -> glib::Value451     fn cell_get_property<P: IsA<CellRenderer>>(
452         &self,
453         renderer: &P,
454         property_name: &str,
455     ) -> glib::Value {
456         unsafe {
457             let mut value = glib::Value::uninitialized();
458             ffi::gtk_cell_area_cell_get_property(
459                 self.as_ref().to_glib_none().0,
460                 renderer.as_ref().to_glib_none().0,
461                 property_name.to_glib_none().0,
462                 value.to_glib_none_mut().0,
463             );
464             value
465         }
466     }
467 
468     //fn cell_get_valist<P: IsA<CellRenderer>>(&self, renderer: &P, first_property_name: &str, var_args: /*Unknown conversion*//*Unimplemented*/Unsupported) {
469     //    unsafe { TODO: call ffi:gtk_cell_area_cell_get_valist() }
470     //}
471 
472     //fn cell_set<P: IsA<CellRenderer>>(&self, renderer: &P, first_prop_name: &str, : /*Unknown conversion*//*Unimplemented*/Fundamental: VarArgs) {
473     //    unsafe { TODO: call ffi:gtk_cell_area_cell_set() }
474     //}
475 
cell_set_property<P: IsA<CellRenderer>>( &self, renderer: &P, property_name: &str, value: &glib::Value, )476     fn cell_set_property<P: IsA<CellRenderer>>(
477         &self,
478         renderer: &P,
479         property_name: &str,
480         value: &glib::Value,
481     ) {
482         unsafe {
483             ffi::gtk_cell_area_cell_set_property(
484                 self.as_ref().to_glib_none().0,
485                 renderer.as_ref().to_glib_none().0,
486                 property_name.to_glib_none().0,
487                 value.to_glib_none().0,
488             );
489         }
490     }
491 
492     //fn cell_set_valist<P: IsA<CellRenderer>>(&self, renderer: &P, first_property_name: &str, var_args: /*Unknown conversion*//*Unimplemented*/Unsupported) {
493     //    unsafe { TODO: call ffi:gtk_cell_area_cell_set_valist() }
494     //}
495 
copy_context<P: IsA<CellAreaContext>>(&self, context: &P) -> Option<CellAreaContext>496     fn copy_context<P: IsA<CellAreaContext>>(&self, context: &P) -> Option<CellAreaContext> {
497         unsafe {
498             from_glib_full(ffi::gtk_cell_area_copy_context(
499                 self.as_ref().to_glib_none().0,
500                 context.as_ref().to_glib_none().0,
501             ))
502         }
503     }
504 
create_context(&self) -> Option<CellAreaContext>505     fn create_context(&self) -> Option<CellAreaContext> {
506         unsafe {
507             from_glib_full(ffi::gtk_cell_area_create_context(
508                 self.as_ref().to_glib_none().0,
509             ))
510         }
511     }
512 
event<P: IsA<CellAreaContext>, Q: IsA<Widget>>( &self, context: &P, widget: &Q, event: &gdk::Event, cell_area: &gdk::Rectangle, flags: CellRendererState, ) -> i32513     fn event<P: IsA<CellAreaContext>, Q: IsA<Widget>>(
514         &self,
515         context: &P,
516         widget: &Q,
517         event: &gdk::Event,
518         cell_area: &gdk::Rectangle,
519         flags: CellRendererState,
520     ) -> i32 {
521         unsafe {
522             ffi::gtk_cell_area_event(
523                 self.as_ref().to_glib_none().0,
524                 context.as_ref().to_glib_none().0,
525                 widget.as_ref().to_glib_none().0,
526                 mut_override(event.to_glib_none().0),
527                 cell_area.to_glib_none().0,
528                 flags.into_glib(),
529             )
530         }
531     }
532 
focus(&self, direction: DirectionType) -> bool533     fn focus(&self, direction: DirectionType) -> bool {
534         unsafe {
535             from_glib(ffi::gtk_cell_area_focus(
536                 self.as_ref().to_glib_none().0,
537                 direction.into_glib(),
538             ))
539         }
540     }
541 
foreach<P: FnMut(&CellRenderer) -> bool>(&self, callback: P)542     fn foreach<P: FnMut(&CellRenderer) -> bool>(&self, callback: P) {
543         let callback_data: P = callback;
544         unsafe extern "C" fn callback_func<P: FnMut(&CellRenderer) -> bool>(
545             renderer: *mut ffi::GtkCellRenderer,
546             data: glib::ffi::gpointer,
547         ) -> glib::ffi::gboolean {
548             let renderer = from_glib_borrow(renderer);
549             let callback: *mut P = data as *const _ as usize as *mut P;
550             let res = (*callback)(&renderer);
551             res.into_glib()
552         }
553         let callback = Some(callback_func::<P> as _);
554         let super_callback0: &P = &callback_data;
555         unsafe {
556             ffi::gtk_cell_area_foreach(
557                 self.as_ref().to_glib_none().0,
558                 callback,
559                 super_callback0 as *const _ as usize as *mut _,
560             );
561         }
562     }
563 
foreach_alloc< P: IsA<CellAreaContext>, Q: IsA<Widget>, R: FnMut(&CellRenderer, &gdk::Rectangle, &gdk::Rectangle) -> bool, >( &self, context: &P, widget: &Q, cell_area: &gdk::Rectangle, background_area: &gdk::Rectangle, callback: R, )564     fn foreach_alloc<
565         P: IsA<CellAreaContext>,
566         Q: IsA<Widget>,
567         R: FnMut(&CellRenderer, &gdk::Rectangle, &gdk::Rectangle) -> bool,
568     >(
569         &self,
570         context: &P,
571         widget: &Q,
572         cell_area: &gdk::Rectangle,
573         background_area: &gdk::Rectangle,
574         callback: R,
575     ) {
576         let callback_data: R = callback;
577         unsafe extern "C" fn callback_func<
578             P: IsA<CellAreaContext>,
579             Q: IsA<Widget>,
580             R: FnMut(&CellRenderer, &gdk::Rectangle, &gdk::Rectangle) -> bool,
581         >(
582             renderer: *mut ffi::GtkCellRenderer,
583             cell_area: *const gdk::ffi::GdkRectangle,
584             cell_background: *const gdk::ffi::GdkRectangle,
585             data: glib::ffi::gpointer,
586         ) -> glib::ffi::gboolean {
587             let renderer = from_glib_borrow(renderer);
588             let cell_area = from_glib_borrow(cell_area);
589             let cell_background = from_glib_borrow(cell_background);
590             let callback: *mut R = data as *const _ as usize as *mut R;
591             let res = (*callback)(&renderer, &cell_area, &cell_background);
592             res.into_glib()
593         }
594         let callback = Some(callback_func::<P, Q, R> as _);
595         let super_callback0: &R = &callback_data;
596         unsafe {
597             ffi::gtk_cell_area_foreach_alloc(
598                 self.as_ref().to_glib_none().0,
599                 context.as_ref().to_glib_none().0,
600                 widget.as_ref().to_glib_none().0,
601                 cell_area.to_glib_none().0,
602                 background_area.to_glib_none().0,
603                 callback,
604                 super_callback0 as *const _ as usize as *mut _,
605             );
606         }
607     }
608 
cell_allocation<P: IsA<CellAreaContext>, Q: IsA<Widget>, R: IsA<CellRenderer>>( &self, context: &P, widget: &Q, renderer: &R, cell_area: &gdk::Rectangle, ) -> gdk::Rectangle609     fn cell_allocation<P: IsA<CellAreaContext>, Q: IsA<Widget>, R: IsA<CellRenderer>>(
610         &self,
611         context: &P,
612         widget: &Q,
613         renderer: &R,
614         cell_area: &gdk::Rectangle,
615     ) -> gdk::Rectangle {
616         unsafe {
617             let mut allocation = gdk::Rectangle::uninitialized();
618             ffi::gtk_cell_area_get_cell_allocation(
619                 self.as_ref().to_glib_none().0,
620                 context.as_ref().to_glib_none().0,
621                 widget.as_ref().to_glib_none().0,
622                 renderer.as_ref().to_glib_none().0,
623                 cell_area.to_glib_none().0,
624                 allocation.to_glib_none_mut().0,
625             );
626             allocation
627         }
628     }
629 
cell_at_position<P: IsA<CellAreaContext>, Q: IsA<Widget>>( &self, context: &P, widget: &Q, cell_area: &gdk::Rectangle, x: i32, y: i32, ) -> (CellRenderer, gdk::Rectangle)630     fn cell_at_position<P: IsA<CellAreaContext>, Q: IsA<Widget>>(
631         &self,
632         context: &P,
633         widget: &Q,
634         cell_area: &gdk::Rectangle,
635         x: i32,
636         y: i32,
637     ) -> (CellRenderer, gdk::Rectangle) {
638         unsafe {
639             let mut alloc_area = gdk::Rectangle::uninitialized();
640             let ret = from_glib_none(ffi::gtk_cell_area_get_cell_at_position(
641                 self.as_ref().to_glib_none().0,
642                 context.as_ref().to_glib_none().0,
643                 widget.as_ref().to_glib_none().0,
644                 cell_area.to_glib_none().0,
645                 x,
646                 y,
647                 alloc_area.to_glib_none_mut().0,
648             ));
649             (ret, alloc_area)
650         }
651     }
652 
current_path_string(&self) -> Option<glib::GString>653     fn current_path_string(&self) -> Option<glib::GString> {
654         unsafe {
655             from_glib_none(ffi::gtk_cell_area_get_current_path_string(
656                 self.as_ref().to_glib_none().0,
657             ))
658         }
659     }
660 
edit_widget(&self) -> Option<CellEditable>661     fn edit_widget(&self) -> Option<CellEditable> {
662         unsafe {
663             from_glib_none(ffi::gtk_cell_area_get_edit_widget(
664                 self.as_ref().to_glib_none().0,
665             ))
666         }
667     }
668 
edited_cell(&self) -> Option<CellRenderer>669     fn edited_cell(&self) -> Option<CellRenderer> {
670         unsafe {
671             from_glib_none(ffi::gtk_cell_area_get_edited_cell(
672                 self.as_ref().to_glib_none().0,
673             ))
674         }
675     }
676 
focus_cell(&self) -> Option<CellRenderer>677     fn focus_cell(&self) -> Option<CellRenderer> {
678         unsafe {
679             from_glib_none(ffi::gtk_cell_area_get_focus_cell(
680                 self.as_ref().to_glib_none().0,
681             ))
682         }
683     }
684 
focus_from_sibling<P: IsA<CellRenderer>>(&self, renderer: &P) -> Option<CellRenderer>685     fn focus_from_sibling<P: IsA<CellRenderer>>(&self, renderer: &P) -> Option<CellRenderer> {
686         unsafe {
687             from_glib_none(ffi::gtk_cell_area_get_focus_from_sibling(
688                 self.as_ref().to_glib_none().0,
689                 renderer.as_ref().to_glib_none().0,
690             ))
691         }
692     }
693 
focus_siblings<P: IsA<CellRenderer>>(&self, renderer: &P) -> Vec<CellRenderer>694     fn focus_siblings<P: IsA<CellRenderer>>(&self, renderer: &P) -> Vec<CellRenderer> {
695         unsafe {
696             FromGlibPtrContainer::from_glib_none(ffi::gtk_cell_area_get_focus_siblings(
697                 self.as_ref().to_glib_none().0,
698                 renderer.as_ref().to_glib_none().0,
699             ))
700         }
701     }
702 
preferred_height<P: IsA<CellAreaContext>, Q: IsA<Widget>>( &self, context: &P, widget: &Q, ) -> (i32, i32)703     fn preferred_height<P: IsA<CellAreaContext>, Q: IsA<Widget>>(
704         &self,
705         context: &P,
706         widget: &Q,
707     ) -> (i32, i32) {
708         unsafe {
709             let mut minimum_height = mem::MaybeUninit::uninit();
710             let mut natural_height = mem::MaybeUninit::uninit();
711             ffi::gtk_cell_area_get_preferred_height(
712                 self.as_ref().to_glib_none().0,
713                 context.as_ref().to_glib_none().0,
714                 widget.as_ref().to_glib_none().0,
715                 minimum_height.as_mut_ptr(),
716                 natural_height.as_mut_ptr(),
717             );
718             let minimum_height = minimum_height.assume_init();
719             let natural_height = natural_height.assume_init();
720             (minimum_height, natural_height)
721         }
722     }
723 
preferred_height_for_width<P: IsA<CellAreaContext>, Q: IsA<Widget>>( &self, context: &P, widget: &Q, width: i32, ) -> (i32, i32)724     fn preferred_height_for_width<P: IsA<CellAreaContext>, Q: IsA<Widget>>(
725         &self,
726         context: &P,
727         widget: &Q,
728         width: i32,
729     ) -> (i32, i32) {
730         unsafe {
731             let mut minimum_height = mem::MaybeUninit::uninit();
732             let mut natural_height = mem::MaybeUninit::uninit();
733             ffi::gtk_cell_area_get_preferred_height_for_width(
734                 self.as_ref().to_glib_none().0,
735                 context.as_ref().to_glib_none().0,
736                 widget.as_ref().to_glib_none().0,
737                 width,
738                 minimum_height.as_mut_ptr(),
739                 natural_height.as_mut_ptr(),
740             );
741             let minimum_height = minimum_height.assume_init();
742             let natural_height = natural_height.assume_init();
743             (minimum_height, natural_height)
744         }
745     }
746 
preferred_width<P: IsA<CellAreaContext>, Q: IsA<Widget>>( &self, context: &P, widget: &Q, ) -> (i32, i32)747     fn preferred_width<P: IsA<CellAreaContext>, Q: IsA<Widget>>(
748         &self,
749         context: &P,
750         widget: &Q,
751     ) -> (i32, i32) {
752         unsafe {
753             let mut minimum_width = mem::MaybeUninit::uninit();
754             let mut natural_width = mem::MaybeUninit::uninit();
755             ffi::gtk_cell_area_get_preferred_width(
756                 self.as_ref().to_glib_none().0,
757                 context.as_ref().to_glib_none().0,
758                 widget.as_ref().to_glib_none().0,
759                 minimum_width.as_mut_ptr(),
760                 natural_width.as_mut_ptr(),
761             );
762             let minimum_width = minimum_width.assume_init();
763             let natural_width = natural_width.assume_init();
764             (minimum_width, natural_width)
765         }
766     }
767 
preferred_width_for_height<P: IsA<CellAreaContext>, Q: IsA<Widget>>( &self, context: &P, widget: &Q, height: i32, ) -> (i32, i32)768     fn preferred_width_for_height<P: IsA<CellAreaContext>, Q: IsA<Widget>>(
769         &self,
770         context: &P,
771         widget: &Q,
772         height: i32,
773     ) -> (i32, i32) {
774         unsafe {
775             let mut minimum_width = mem::MaybeUninit::uninit();
776             let mut natural_width = mem::MaybeUninit::uninit();
777             ffi::gtk_cell_area_get_preferred_width_for_height(
778                 self.as_ref().to_glib_none().0,
779                 context.as_ref().to_glib_none().0,
780                 widget.as_ref().to_glib_none().0,
781                 height,
782                 minimum_width.as_mut_ptr(),
783                 natural_width.as_mut_ptr(),
784             );
785             let minimum_width = minimum_width.assume_init();
786             let natural_width = natural_width.assume_init();
787             (minimum_width, natural_width)
788         }
789     }
790 
request_mode(&self) -> SizeRequestMode791     fn request_mode(&self) -> SizeRequestMode {
792         unsafe {
793             from_glib(ffi::gtk_cell_area_get_request_mode(
794                 self.as_ref().to_glib_none().0,
795             ))
796         }
797     }
798 
has_renderer<P: IsA<CellRenderer>>(&self, renderer: &P) -> bool799     fn has_renderer<P: IsA<CellRenderer>>(&self, renderer: &P) -> bool {
800         unsafe {
801             from_glib(ffi::gtk_cell_area_has_renderer(
802                 self.as_ref().to_glib_none().0,
803                 renderer.as_ref().to_glib_none().0,
804             ))
805         }
806     }
807 
inner_cell_area<P: IsA<Widget>>( &self, widget: &P, cell_area: &gdk::Rectangle, ) -> gdk::Rectangle808     fn inner_cell_area<P: IsA<Widget>>(
809         &self,
810         widget: &P,
811         cell_area: &gdk::Rectangle,
812     ) -> gdk::Rectangle {
813         unsafe {
814             let mut inner_area = gdk::Rectangle::uninitialized();
815             ffi::gtk_cell_area_inner_cell_area(
816                 self.as_ref().to_glib_none().0,
817                 widget.as_ref().to_glib_none().0,
818                 cell_area.to_glib_none().0,
819                 inner_area.to_glib_none_mut().0,
820             );
821             inner_area
822         }
823     }
824 
is_activatable(&self) -> bool825     fn is_activatable(&self) -> bool {
826         unsafe {
827             from_glib(ffi::gtk_cell_area_is_activatable(
828                 self.as_ref().to_glib_none().0,
829             ))
830         }
831     }
832 
is_focus_sibling<P: IsA<CellRenderer>, Q: IsA<CellRenderer>>( &self, renderer: &P, sibling: &Q, ) -> bool833     fn is_focus_sibling<P: IsA<CellRenderer>, Q: IsA<CellRenderer>>(
834         &self,
835         renderer: &P,
836         sibling: &Q,
837     ) -> bool {
838         unsafe {
839             from_glib(ffi::gtk_cell_area_is_focus_sibling(
840                 self.as_ref().to_glib_none().0,
841                 renderer.as_ref().to_glib_none().0,
842                 sibling.as_ref().to_glib_none().0,
843             ))
844         }
845     }
846 
remove<P: IsA<CellRenderer>>(&self, renderer: &P)847     fn remove<P: IsA<CellRenderer>>(&self, renderer: &P) {
848         unsafe {
849             ffi::gtk_cell_area_remove(
850                 self.as_ref().to_glib_none().0,
851                 renderer.as_ref().to_glib_none().0,
852             );
853         }
854     }
855 
remove_focus_sibling<P: IsA<CellRenderer>, Q: IsA<CellRenderer>>( &self, renderer: &P, sibling: &Q, )856     fn remove_focus_sibling<P: IsA<CellRenderer>, Q: IsA<CellRenderer>>(
857         &self,
858         renderer: &P,
859         sibling: &Q,
860     ) {
861         unsafe {
862             ffi::gtk_cell_area_remove_focus_sibling(
863                 self.as_ref().to_glib_none().0,
864                 renderer.as_ref().to_glib_none().0,
865                 sibling.as_ref().to_glib_none().0,
866             );
867         }
868     }
869 
render<P: IsA<CellAreaContext>, Q: IsA<Widget>>( &self, context: &P, widget: &Q, cr: &cairo::Context, background_area: &gdk::Rectangle, cell_area: &gdk::Rectangle, flags: CellRendererState, paint_focus: bool, )870     fn render<P: IsA<CellAreaContext>, Q: IsA<Widget>>(
871         &self,
872         context: &P,
873         widget: &Q,
874         cr: &cairo::Context,
875         background_area: &gdk::Rectangle,
876         cell_area: &gdk::Rectangle,
877         flags: CellRendererState,
878         paint_focus: bool,
879     ) {
880         unsafe {
881             ffi::gtk_cell_area_render(
882                 self.as_ref().to_glib_none().0,
883                 context.as_ref().to_glib_none().0,
884                 widget.as_ref().to_glib_none().0,
885                 mut_override(cr.to_glib_none().0),
886                 background_area.to_glib_none().0,
887                 cell_area.to_glib_none().0,
888                 flags.into_glib(),
889                 paint_focus.into_glib(),
890             );
891         }
892     }
893 
request_renderer<P: IsA<CellRenderer>, Q: IsA<Widget>>( &self, renderer: &P, orientation: Orientation, widget: &Q, for_size: i32, ) -> (i32, i32)894     fn request_renderer<P: IsA<CellRenderer>, Q: IsA<Widget>>(
895         &self,
896         renderer: &P,
897         orientation: Orientation,
898         widget: &Q,
899         for_size: i32,
900     ) -> (i32, i32) {
901         unsafe {
902             let mut minimum_size = mem::MaybeUninit::uninit();
903             let mut natural_size = mem::MaybeUninit::uninit();
904             ffi::gtk_cell_area_request_renderer(
905                 self.as_ref().to_glib_none().0,
906                 renderer.as_ref().to_glib_none().0,
907                 orientation.into_glib(),
908                 widget.as_ref().to_glib_none().0,
909                 for_size,
910                 minimum_size.as_mut_ptr(),
911                 natural_size.as_mut_ptr(),
912             );
913             let minimum_size = minimum_size.assume_init();
914             let natural_size = natural_size.assume_init();
915             (minimum_size, natural_size)
916         }
917     }
918 
set_focus_cell<P: IsA<CellRenderer>>(&self, renderer: &P)919     fn set_focus_cell<P: IsA<CellRenderer>>(&self, renderer: &P) {
920         unsafe {
921             ffi::gtk_cell_area_set_focus_cell(
922                 self.as_ref().to_glib_none().0,
923                 renderer.as_ref().to_glib_none().0,
924             );
925         }
926     }
927 
stop_editing(&self, canceled: bool)928     fn stop_editing(&self, canceled: bool) {
929         unsafe {
930             ffi::gtk_cell_area_stop_editing(self.as_ref().to_glib_none().0, canceled.into_glib());
931         }
932     }
933 
connect_add_editable< F: Fn(&Self, &CellRenderer, &CellEditable, &gdk::Rectangle, TreePath) + 'static, >( &self, f: F, ) -> SignalHandlerId934     fn connect_add_editable<
935         F: Fn(&Self, &CellRenderer, &CellEditable, &gdk::Rectangle, TreePath) + 'static,
936     >(
937         &self,
938         f: F,
939     ) -> SignalHandlerId {
940         unsafe extern "C" fn add_editable_trampoline<
941             P: IsA<CellArea>,
942             F: Fn(&P, &CellRenderer, &CellEditable, &gdk::Rectangle, TreePath) + 'static,
943         >(
944             this: *mut ffi::GtkCellArea,
945             renderer: *mut ffi::GtkCellRenderer,
946             editable: *mut ffi::GtkCellEditable,
947             cell_area: *mut gdk::ffi::GdkRectangle,
948             path: *mut libc::c_char,
949             f: glib::ffi::gpointer,
950         ) {
951             let f: &F = &*(f as *const F);
952             let path = from_glib_full(crate::ffi::gtk_tree_path_new_from_string(path));
953             f(
954                 CellArea::from_glib_borrow(this).unsafe_cast_ref(),
955                 &from_glib_borrow(renderer),
956                 &from_glib_borrow(editable),
957                 &from_glib_borrow(cell_area),
958                 path,
959             )
960         }
961         unsafe {
962             let f: Box_<F> = Box_::new(f);
963             connect_raw(
964                 self.as_ptr() as *mut _,
965                 b"add-editable\0".as_ptr() as *const _,
966                 Some(transmute::<_, unsafe extern "C" fn()>(
967                     add_editable_trampoline::<Self, F> as *const (),
968                 )),
969                 Box_::into_raw(f),
970             )
971         }
972     }
973 
connect_apply_attributes<F: Fn(&Self, &TreeModel, &TreeIter, bool, bool) + 'static>( &self, f: F, ) -> SignalHandlerId974     fn connect_apply_attributes<F: Fn(&Self, &TreeModel, &TreeIter, bool, bool) + 'static>(
975         &self,
976         f: F,
977     ) -> SignalHandlerId {
978         unsafe extern "C" fn apply_attributes_trampoline<
979             P: IsA<CellArea>,
980             F: Fn(&P, &TreeModel, &TreeIter, bool, bool) + 'static,
981         >(
982             this: *mut ffi::GtkCellArea,
983             model: *mut ffi::GtkTreeModel,
984             iter: *mut ffi::GtkTreeIter,
985             is_expander: glib::ffi::gboolean,
986             is_expanded: glib::ffi::gboolean,
987             f: glib::ffi::gpointer,
988         ) {
989             let f: &F = &*(f as *const F);
990             f(
991                 CellArea::from_glib_borrow(this).unsafe_cast_ref(),
992                 &from_glib_borrow(model),
993                 &from_glib_borrow(iter),
994                 from_glib(is_expander),
995                 from_glib(is_expanded),
996             )
997         }
998         unsafe {
999             let f: Box_<F> = Box_::new(f);
1000             connect_raw(
1001                 self.as_ptr() as *mut _,
1002                 b"apply-attributes\0".as_ptr() as *const _,
1003                 Some(transmute::<_, unsafe extern "C" fn()>(
1004                     apply_attributes_trampoline::<Self, F> as *const (),
1005                 )),
1006                 Box_::into_raw(f),
1007             )
1008         }
1009     }
1010 
connect_focus_changed<F: Fn(&Self, &CellRenderer, TreePath) + 'static>( &self, f: F, ) -> SignalHandlerId1011     fn connect_focus_changed<F: Fn(&Self, &CellRenderer, TreePath) + 'static>(
1012         &self,
1013         f: F,
1014     ) -> SignalHandlerId {
1015         unsafe extern "C" fn focus_changed_trampoline<
1016             P: IsA<CellArea>,
1017             F: Fn(&P, &CellRenderer, TreePath) + 'static,
1018         >(
1019             this: *mut ffi::GtkCellArea,
1020             renderer: *mut ffi::GtkCellRenderer,
1021             path: *mut libc::c_char,
1022             f: glib::ffi::gpointer,
1023         ) {
1024             let f: &F = &*(f as *const F);
1025             let path = from_glib_full(crate::ffi::gtk_tree_path_new_from_string(path));
1026             f(
1027                 CellArea::from_glib_borrow(this).unsafe_cast_ref(),
1028                 &from_glib_borrow(renderer),
1029                 path,
1030             )
1031         }
1032         unsafe {
1033             let f: Box_<F> = Box_::new(f);
1034             connect_raw(
1035                 self.as_ptr() as *mut _,
1036                 b"focus-changed\0".as_ptr() as *const _,
1037                 Some(transmute::<_, unsafe extern "C" fn()>(
1038                     focus_changed_trampoline::<Self, F> as *const (),
1039                 )),
1040                 Box_::into_raw(f),
1041             )
1042         }
1043     }
1044 
connect_remove_editable<F: Fn(&Self, &CellRenderer, &CellEditable) + 'static>( &self, f: F, ) -> SignalHandlerId1045     fn connect_remove_editable<F: Fn(&Self, &CellRenderer, &CellEditable) + 'static>(
1046         &self,
1047         f: F,
1048     ) -> SignalHandlerId {
1049         unsafe extern "C" fn remove_editable_trampoline<
1050             P: IsA<CellArea>,
1051             F: Fn(&P, &CellRenderer, &CellEditable) + 'static,
1052         >(
1053             this: *mut ffi::GtkCellArea,
1054             renderer: *mut ffi::GtkCellRenderer,
1055             editable: *mut ffi::GtkCellEditable,
1056             f: glib::ffi::gpointer,
1057         ) {
1058             let f: &F = &*(f as *const F);
1059             f(
1060                 CellArea::from_glib_borrow(this).unsafe_cast_ref(),
1061                 &from_glib_borrow(renderer),
1062                 &from_glib_borrow(editable),
1063             )
1064         }
1065         unsafe {
1066             let f: Box_<F> = Box_::new(f);
1067             connect_raw(
1068                 self.as_ptr() as *mut _,
1069                 b"remove-editable\0".as_ptr() as *const _,
1070                 Some(transmute::<_, unsafe extern "C" fn()>(
1071                     remove_editable_trampoline::<Self, F> as *const (),
1072                 )),
1073                 Box_::into_raw(f),
1074             )
1075         }
1076     }
1077 
connect_edit_widget_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId1078     fn connect_edit_widget_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1079         unsafe extern "C" fn notify_edit_widget_trampoline<
1080             P: IsA<CellArea>,
1081             F: Fn(&P) + 'static,
1082         >(
1083             this: *mut ffi::GtkCellArea,
1084             _param_spec: glib::ffi::gpointer,
1085             f: glib::ffi::gpointer,
1086         ) {
1087             let f: &F = &*(f as *const F);
1088             f(CellArea::from_glib_borrow(this).unsafe_cast_ref())
1089         }
1090         unsafe {
1091             let f: Box_<F> = Box_::new(f);
1092             connect_raw(
1093                 self.as_ptr() as *mut _,
1094                 b"notify::edit-widget\0".as_ptr() as *const _,
1095                 Some(transmute::<_, unsafe extern "C" fn()>(
1096                     notify_edit_widget_trampoline::<Self, F> as *const (),
1097                 )),
1098                 Box_::into_raw(f),
1099             )
1100         }
1101     }
1102 
connect_edited_cell_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId1103     fn connect_edited_cell_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1104         unsafe extern "C" fn notify_edited_cell_trampoline<
1105             P: IsA<CellArea>,
1106             F: Fn(&P) + 'static,
1107         >(
1108             this: *mut ffi::GtkCellArea,
1109             _param_spec: glib::ffi::gpointer,
1110             f: glib::ffi::gpointer,
1111         ) {
1112             let f: &F = &*(f as *const F);
1113             f(CellArea::from_glib_borrow(this).unsafe_cast_ref())
1114         }
1115         unsafe {
1116             let f: Box_<F> = Box_::new(f);
1117             connect_raw(
1118                 self.as_ptr() as *mut _,
1119                 b"notify::edited-cell\0".as_ptr() as *const _,
1120                 Some(transmute::<_, unsafe extern "C" fn()>(
1121                     notify_edited_cell_trampoline::<Self, F> as *const (),
1122                 )),
1123                 Box_::into_raw(f),
1124             )
1125         }
1126     }
1127 
connect_focus_cell_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId1128     fn connect_focus_cell_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
1129         unsafe extern "C" fn notify_focus_cell_trampoline<P: IsA<CellArea>, F: Fn(&P) + 'static>(
1130             this: *mut ffi::GtkCellArea,
1131             _param_spec: glib::ffi::gpointer,
1132             f: glib::ffi::gpointer,
1133         ) {
1134             let f: &F = &*(f as *const F);
1135             f(CellArea::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::focus-cell\0".as_ptr() as *const _,
1142                 Some(transmute::<_, unsafe extern "C" fn()>(
1143                     notify_focus_cell_trampoline::<Self, F> as *const (),
1144                 )),
1145                 Box_::into_raw(f),
1146             )
1147         }
1148     }
1149 }
1150 
1151 impl fmt::Display for CellArea {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result1152     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1153         f.write_str("CellArea")
1154     }
1155 }
1156