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