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 glib::object::Cast; 6 use glib::object::IsA; 7 use glib::signal::connect_raw; 8 use glib::signal::SignalHandlerId; 9 use glib::translate::*; 10 use glib::GString; 11 use glib::StaticType; 12 use glib::ToValue; 13 use glib::Value; 14 use glib_sys; 15 use gobject_sys; 16 use gtk_sys; 17 use libc; 18 use signal::Inhibit; 19 use std::boxed::Box as Box_; 20 use std::fmt; 21 use std::mem::transmute; 22 use Buildable; 23 use CellArea; 24 use CellLayout; 25 use TreeIter; 26 use TreeModel; 27 28 glib_wrapper! { 29 pub struct EntryCompletion(Object<gtk_sys::GtkEntryCompletion, gtk_sys::GtkEntryCompletionClass, EntryCompletionClass>) @implements Buildable, CellLayout; 30 31 match fn { 32 get_type => || gtk_sys::gtk_entry_completion_get_type(), 33 } 34 } 35 36 impl EntryCompletion { new() -> EntryCompletion37 pub fn new() -> EntryCompletion { 38 assert_initialized_main_thread!(); 39 unsafe { from_glib_full(gtk_sys::gtk_entry_completion_new()) } 40 } 41 new_with_area<P: IsA<CellArea>>(area: &P) -> EntryCompletion42 pub fn new_with_area<P: IsA<CellArea>>(area: &P) -> EntryCompletion { 43 skip_assert_initialized!(); 44 unsafe { 45 from_glib_full(gtk_sys::gtk_entry_completion_new_with_area( 46 area.as_ref().to_glib_none().0, 47 )) 48 } 49 } 50 } 51 52 impl Default for EntryCompletion { default() -> Self53 fn default() -> Self { 54 Self::new() 55 } 56 } 57 58 pub struct EntryCompletionBuilder { 59 cell_area: Option<CellArea>, 60 inline_completion: Option<bool>, 61 inline_selection: Option<bool>, 62 minimum_key_length: Option<i32>, 63 model: Option<TreeModel>, 64 popup_completion: Option<bool>, 65 popup_set_width: Option<bool>, 66 popup_single_match: Option<bool>, 67 text_column: Option<i32>, 68 } 69 70 impl EntryCompletionBuilder { new() -> Self71 pub fn new() -> Self { 72 Self { 73 cell_area: None, 74 inline_completion: None, 75 inline_selection: None, 76 minimum_key_length: None, 77 model: None, 78 popup_completion: None, 79 popup_set_width: None, 80 popup_single_match: None, 81 text_column: None, 82 } 83 } 84 build(self) -> EntryCompletion85 pub fn build(self) -> EntryCompletion { 86 let mut properties: Vec<(&str, &dyn ToValue)> = vec![]; 87 if let Some(ref cell_area) = self.cell_area { 88 properties.push(("cell-area", cell_area)); 89 } 90 if let Some(ref inline_completion) = self.inline_completion { 91 properties.push(("inline-completion", inline_completion)); 92 } 93 if let Some(ref inline_selection) = self.inline_selection { 94 properties.push(("inline-selection", inline_selection)); 95 } 96 if let Some(ref minimum_key_length) = self.minimum_key_length { 97 properties.push(("minimum-key-length", minimum_key_length)); 98 } 99 if let Some(ref model) = self.model { 100 properties.push(("model", model)); 101 } 102 if let Some(ref popup_completion) = self.popup_completion { 103 properties.push(("popup-completion", popup_completion)); 104 } 105 if let Some(ref popup_set_width) = self.popup_set_width { 106 properties.push(("popup-set-width", popup_set_width)); 107 } 108 if let Some(ref popup_single_match) = self.popup_single_match { 109 properties.push(("popup-single-match", popup_single_match)); 110 } 111 if let Some(ref text_column) = self.text_column { 112 properties.push(("text-column", text_column)); 113 } 114 glib::Object::new(EntryCompletion::static_type(), &properties) 115 .expect("object new") 116 .downcast() 117 .expect("downcast") 118 } 119 cell_area(mut self, cell_area: &CellArea) -> Self120 pub fn cell_area(mut self, cell_area: &CellArea) -> Self { 121 self.cell_area = Some(cell_area.clone()); 122 self 123 } 124 inline_completion(mut self, inline_completion: bool) -> Self125 pub fn inline_completion(mut self, inline_completion: bool) -> Self { 126 self.inline_completion = Some(inline_completion); 127 self 128 } 129 inline_selection(mut self, inline_selection: bool) -> Self130 pub fn inline_selection(mut self, inline_selection: bool) -> Self { 131 self.inline_selection = Some(inline_selection); 132 self 133 } 134 minimum_key_length(mut self, minimum_key_length: i32) -> Self135 pub fn minimum_key_length(mut self, minimum_key_length: i32) -> Self { 136 self.minimum_key_length = Some(minimum_key_length); 137 self 138 } 139 model(mut self, model: &TreeModel) -> Self140 pub fn model(mut self, model: &TreeModel) -> Self { 141 self.model = Some(model.clone()); 142 self 143 } 144 popup_completion(mut self, popup_completion: bool) -> Self145 pub fn popup_completion(mut self, popup_completion: bool) -> Self { 146 self.popup_completion = Some(popup_completion); 147 self 148 } 149 popup_set_width(mut self, popup_set_width: bool) -> Self150 pub fn popup_set_width(mut self, popup_set_width: bool) -> Self { 151 self.popup_set_width = Some(popup_set_width); 152 self 153 } 154 popup_single_match(mut self, popup_single_match: bool) -> Self155 pub fn popup_single_match(mut self, popup_single_match: bool) -> Self { 156 self.popup_single_match = Some(popup_single_match); 157 self 158 } 159 text_column(mut self, text_column: i32) -> Self160 pub fn text_column(mut self, text_column: i32) -> Self { 161 self.text_column = Some(text_column); 162 self 163 } 164 } 165 166 pub const NONE_ENTRY_COMPLETION: Option<&EntryCompletion> = None; 167 168 pub trait EntryCompletionExt: 'static { complete(&self)169 fn complete(&self); 170 compute_prefix(&self, key: &str) -> Option<GString>171 fn compute_prefix(&self, key: &str) -> Option<GString>; 172 delete_action(&self, index_: i32)173 fn delete_action(&self, index_: i32); 174 get_completion_prefix(&self) -> Option<GString>175 fn get_completion_prefix(&self) -> Option<GString>; 176 get_inline_completion(&self) -> bool177 fn get_inline_completion(&self) -> bool; 178 get_inline_selection(&self) -> bool179 fn get_inline_selection(&self) -> bool; 180 get_minimum_key_length(&self) -> i32181 fn get_minimum_key_length(&self) -> i32; 182 get_model(&self) -> Option<TreeModel>183 fn get_model(&self) -> Option<TreeModel>; 184 get_popup_completion(&self) -> bool185 fn get_popup_completion(&self) -> bool; 186 get_popup_set_width(&self) -> bool187 fn get_popup_set_width(&self) -> bool; 188 get_popup_single_match(&self) -> bool189 fn get_popup_single_match(&self) -> bool; 190 get_text_column(&self) -> i32191 fn get_text_column(&self) -> i32; 192 insert_action_markup(&self, index_: i32, markup: &str)193 fn insert_action_markup(&self, index_: i32, markup: &str); 194 insert_action_text(&self, index_: i32, text: &str)195 fn insert_action_text(&self, index_: i32, text: &str); 196 insert_prefix(&self)197 fn insert_prefix(&self); 198 set_inline_completion(&self, inline_completion: bool)199 fn set_inline_completion(&self, inline_completion: bool); 200 set_inline_selection(&self, inline_selection: bool)201 fn set_inline_selection(&self, inline_selection: bool); 202 set_match_func<P: Fn(&EntryCompletion, &str, &TreeIter) -> bool + 'static>(&self, func: P)203 fn set_match_func<P: Fn(&EntryCompletion, &str, &TreeIter) -> bool + 'static>(&self, func: P); 204 set_minimum_key_length(&self, length: i32)205 fn set_minimum_key_length(&self, length: i32); 206 set_model<P: IsA<TreeModel>>(&self, model: Option<&P>)207 fn set_model<P: IsA<TreeModel>>(&self, model: Option<&P>); 208 set_popup_completion(&self, popup_completion: bool)209 fn set_popup_completion(&self, popup_completion: bool); 210 set_popup_set_width(&self, popup_set_width: bool)211 fn set_popup_set_width(&self, popup_set_width: bool); 212 set_popup_single_match(&self, popup_single_match: bool)213 fn set_popup_single_match(&self, popup_single_match: bool); 214 set_text_column(&self, column: i32)215 fn set_text_column(&self, column: i32); 216 get_property_cell_area(&self) -> Option<CellArea>217 fn get_property_cell_area(&self) -> Option<CellArea>; 218 connect_action_activated<F: Fn(&Self, i32) + 'static>(&self, f: F) -> SignalHandlerId219 fn connect_action_activated<F: Fn(&Self, i32) + 'static>(&self, f: F) -> SignalHandlerId; 220 connect_cursor_on_match<F: Fn(&Self, &TreeModel, &TreeIter) -> Inhibit + 'static>( &self, f: F, ) -> SignalHandlerId221 fn connect_cursor_on_match<F: Fn(&Self, &TreeModel, &TreeIter) -> Inhibit + 'static>( 222 &self, 223 f: F, 224 ) -> SignalHandlerId; 225 connect_insert_prefix<F: Fn(&Self, &str) -> Inhibit + 'static>( &self, f: F, ) -> SignalHandlerId226 fn connect_insert_prefix<F: Fn(&Self, &str) -> Inhibit + 'static>( 227 &self, 228 f: F, 229 ) -> SignalHandlerId; 230 connect_match_selected<F: Fn(&Self, &TreeModel, &TreeIter) -> Inhibit + 'static>( &self, f: F, ) -> SignalHandlerId231 fn connect_match_selected<F: Fn(&Self, &TreeModel, &TreeIter) -> Inhibit + 'static>( 232 &self, 233 f: F, 234 ) -> SignalHandlerId; 235 connect_no_matches<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId236 fn connect_no_matches<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId; 237 connect_property_inline_completion_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId238 fn connect_property_inline_completion_notify<F: Fn(&Self) + 'static>( 239 &self, 240 f: F, 241 ) -> SignalHandlerId; 242 connect_property_inline_selection_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId243 fn connect_property_inline_selection_notify<F: Fn(&Self) + 'static>( 244 &self, 245 f: F, 246 ) -> SignalHandlerId; 247 connect_property_minimum_key_length_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId248 fn connect_property_minimum_key_length_notify<F: Fn(&Self) + 'static>( 249 &self, 250 f: F, 251 ) -> SignalHandlerId; 252 connect_property_model_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId253 fn connect_property_model_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId; 254 connect_property_popup_completion_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId255 fn connect_property_popup_completion_notify<F: Fn(&Self) + 'static>( 256 &self, 257 f: F, 258 ) -> SignalHandlerId; 259 connect_property_popup_set_width_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId260 fn connect_property_popup_set_width_notify<F: Fn(&Self) + 'static>( 261 &self, 262 f: F, 263 ) -> SignalHandlerId; 264 connect_property_popup_single_match_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId265 fn connect_property_popup_single_match_notify<F: Fn(&Self) + 'static>( 266 &self, 267 f: F, 268 ) -> SignalHandlerId; 269 connect_property_text_column_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId270 fn connect_property_text_column_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId; 271 } 272 273 impl<O: IsA<EntryCompletion>> EntryCompletionExt for O { complete(&self)274 fn complete(&self) { 275 unsafe { 276 gtk_sys::gtk_entry_completion_complete(self.as_ref().to_glib_none().0); 277 } 278 } 279 compute_prefix(&self, key: &str) -> Option<GString>280 fn compute_prefix(&self, key: &str) -> Option<GString> { 281 unsafe { 282 from_glib_full(gtk_sys::gtk_entry_completion_compute_prefix( 283 self.as_ref().to_glib_none().0, 284 key.to_glib_none().0, 285 )) 286 } 287 } 288 delete_action(&self, index_: i32)289 fn delete_action(&self, index_: i32) { 290 unsafe { 291 gtk_sys::gtk_entry_completion_delete_action(self.as_ref().to_glib_none().0, index_); 292 } 293 } 294 get_completion_prefix(&self) -> Option<GString>295 fn get_completion_prefix(&self) -> Option<GString> { 296 unsafe { 297 from_glib_none(gtk_sys::gtk_entry_completion_get_completion_prefix( 298 self.as_ref().to_glib_none().0, 299 )) 300 } 301 } 302 get_inline_completion(&self) -> bool303 fn get_inline_completion(&self) -> bool { 304 unsafe { 305 from_glib(gtk_sys::gtk_entry_completion_get_inline_completion( 306 self.as_ref().to_glib_none().0, 307 )) 308 } 309 } 310 get_inline_selection(&self) -> bool311 fn get_inline_selection(&self) -> bool { 312 unsafe { 313 from_glib(gtk_sys::gtk_entry_completion_get_inline_selection( 314 self.as_ref().to_glib_none().0, 315 )) 316 } 317 } 318 get_minimum_key_length(&self) -> i32319 fn get_minimum_key_length(&self) -> i32 { 320 unsafe { 321 gtk_sys::gtk_entry_completion_get_minimum_key_length(self.as_ref().to_glib_none().0) 322 } 323 } 324 get_model(&self) -> Option<TreeModel>325 fn get_model(&self) -> Option<TreeModel> { 326 unsafe { 327 from_glib_none(gtk_sys::gtk_entry_completion_get_model( 328 self.as_ref().to_glib_none().0, 329 )) 330 } 331 } 332 get_popup_completion(&self) -> bool333 fn get_popup_completion(&self) -> bool { 334 unsafe { 335 from_glib(gtk_sys::gtk_entry_completion_get_popup_completion( 336 self.as_ref().to_glib_none().0, 337 )) 338 } 339 } 340 get_popup_set_width(&self) -> bool341 fn get_popup_set_width(&self) -> bool { 342 unsafe { 343 from_glib(gtk_sys::gtk_entry_completion_get_popup_set_width( 344 self.as_ref().to_glib_none().0, 345 )) 346 } 347 } 348 get_popup_single_match(&self) -> bool349 fn get_popup_single_match(&self) -> bool { 350 unsafe { 351 from_glib(gtk_sys::gtk_entry_completion_get_popup_single_match( 352 self.as_ref().to_glib_none().0, 353 )) 354 } 355 } 356 get_text_column(&self) -> i32357 fn get_text_column(&self) -> i32 { 358 unsafe { gtk_sys::gtk_entry_completion_get_text_column(self.as_ref().to_glib_none().0) } 359 } 360 insert_action_markup(&self, index_: i32, markup: &str)361 fn insert_action_markup(&self, index_: i32, markup: &str) { 362 unsafe { 363 gtk_sys::gtk_entry_completion_insert_action_markup( 364 self.as_ref().to_glib_none().0, 365 index_, 366 markup.to_glib_none().0, 367 ); 368 } 369 } 370 insert_action_text(&self, index_: i32, text: &str)371 fn insert_action_text(&self, index_: i32, text: &str) { 372 unsafe { 373 gtk_sys::gtk_entry_completion_insert_action_text( 374 self.as_ref().to_glib_none().0, 375 index_, 376 text.to_glib_none().0, 377 ); 378 } 379 } 380 insert_prefix(&self)381 fn insert_prefix(&self) { 382 unsafe { 383 gtk_sys::gtk_entry_completion_insert_prefix(self.as_ref().to_glib_none().0); 384 } 385 } 386 set_inline_completion(&self, inline_completion: bool)387 fn set_inline_completion(&self, inline_completion: bool) { 388 unsafe { 389 gtk_sys::gtk_entry_completion_set_inline_completion( 390 self.as_ref().to_glib_none().0, 391 inline_completion.to_glib(), 392 ); 393 } 394 } 395 set_inline_selection(&self, inline_selection: bool)396 fn set_inline_selection(&self, inline_selection: bool) { 397 unsafe { 398 gtk_sys::gtk_entry_completion_set_inline_selection( 399 self.as_ref().to_glib_none().0, 400 inline_selection.to_glib(), 401 ); 402 } 403 } 404 set_match_func<P: Fn(&EntryCompletion, &str, &TreeIter) -> bool + 'static>(&self, func: P)405 fn set_match_func<P: Fn(&EntryCompletion, &str, &TreeIter) -> bool + 'static>(&self, func: P) { 406 let func_data: Box_<P> = Box::new(func); 407 unsafe extern "C" fn func_func< 408 P: Fn(&EntryCompletion, &str, &TreeIter) -> bool + 'static, 409 >( 410 completion: *mut gtk_sys::GtkEntryCompletion, 411 key: *const libc::c_char, 412 iter: *mut gtk_sys::GtkTreeIter, 413 user_data: glib_sys::gpointer, 414 ) -> glib_sys::gboolean { 415 let completion = from_glib_borrow(completion); 416 let key: GString = from_glib_borrow(key); 417 let iter = from_glib_borrow(iter); 418 let callback: &P = &*(user_data as *mut _); 419 let res = (*callback)(&completion, key.as_str(), &iter); 420 res.to_glib() 421 } 422 let func = Some(func_func::<P> as _); 423 unsafe extern "C" fn func_notify_func< 424 P: Fn(&EntryCompletion, &str, &TreeIter) -> bool + 'static, 425 >( 426 data: glib_sys::gpointer, 427 ) { 428 let _callback: Box_<P> = Box_::from_raw(data as *mut _); 429 } 430 let destroy_call3 = Some(func_notify_func::<P> as _); 431 let super_callback0: Box_<P> = func_data; 432 unsafe { 433 gtk_sys::gtk_entry_completion_set_match_func( 434 self.as_ref().to_glib_none().0, 435 func, 436 Box::into_raw(super_callback0) as *mut _, 437 destroy_call3, 438 ); 439 } 440 } 441 set_minimum_key_length(&self, length: i32)442 fn set_minimum_key_length(&self, length: i32) { 443 unsafe { 444 gtk_sys::gtk_entry_completion_set_minimum_key_length( 445 self.as_ref().to_glib_none().0, 446 length, 447 ); 448 } 449 } 450 set_model<P: IsA<TreeModel>>(&self, model: Option<&P>)451 fn set_model<P: IsA<TreeModel>>(&self, model: Option<&P>) { 452 unsafe { 453 gtk_sys::gtk_entry_completion_set_model( 454 self.as_ref().to_glib_none().0, 455 model.map(|p| p.as_ref()).to_glib_none().0, 456 ); 457 } 458 } 459 set_popup_completion(&self, popup_completion: bool)460 fn set_popup_completion(&self, popup_completion: bool) { 461 unsafe { 462 gtk_sys::gtk_entry_completion_set_popup_completion( 463 self.as_ref().to_glib_none().0, 464 popup_completion.to_glib(), 465 ); 466 } 467 } 468 set_popup_set_width(&self, popup_set_width: bool)469 fn set_popup_set_width(&self, popup_set_width: bool) { 470 unsafe { 471 gtk_sys::gtk_entry_completion_set_popup_set_width( 472 self.as_ref().to_glib_none().0, 473 popup_set_width.to_glib(), 474 ); 475 } 476 } 477 set_popup_single_match(&self, popup_single_match: bool)478 fn set_popup_single_match(&self, popup_single_match: bool) { 479 unsafe { 480 gtk_sys::gtk_entry_completion_set_popup_single_match( 481 self.as_ref().to_glib_none().0, 482 popup_single_match.to_glib(), 483 ); 484 } 485 } 486 set_text_column(&self, column: i32)487 fn set_text_column(&self, column: i32) { 488 unsafe { 489 gtk_sys::gtk_entry_completion_set_text_column(self.as_ref().to_glib_none().0, column); 490 } 491 } 492 get_property_cell_area(&self) -> Option<CellArea>493 fn get_property_cell_area(&self) -> Option<CellArea> { 494 unsafe { 495 let mut value = Value::from_type(<CellArea as StaticType>::static_type()); 496 gobject_sys::g_object_get_property( 497 self.to_glib_none().0 as *mut gobject_sys::GObject, 498 b"cell-area\0".as_ptr() as *const _, 499 value.to_glib_none_mut().0, 500 ); 501 value.get() 502 } 503 } 504 connect_action_activated<F: Fn(&Self, i32) + 'static>(&self, f: F) -> SignalHandlerId505 fn connect_action_activated<F: Fn(&Self, i32) + 'static>(&self, f: F) -> SignalHandlerId { 506 unsafe extern "C" fn action_activated_trampoline<P, F: Fn(&P, i32) + 'static>( 507 this: *mut gtk_sys::GtkEntryCompletion, 508 index: libc::c_int, 509 f: glib_sys::gpointer, 510 ) where 511 P: IsA<EntryCompletion>, 512 { 513 let f: &F = &*(f as *const F); 514 f( 515 &EntryCompletion::from_glib_borrow(this).unsafe_cast(), 516 index, 517 ) 518 } 519 unsafe { 520 let f: Box_<F> = Box_::new(f); 521 connect_raw( 522 self.as_ptr() as *mut _, 523 b"action-activated\0".as_ptr() as *const _, 524 Some(transmute(action_activated_trampoline::<Self, F> as usize)), 525 Box_::into_raw(f), 526 ) 527 } 528 } 529 connect_cursor_on_match<F: Fn(&Self, &TreeModel, &TreeIter) -> Inhibit + 'static>( &self, f: F, ) -> SignalHandlerId530 fn connect_cursor_on_match<F: Fn(&Self, &TreeModel, &TreeIter) -> Inhibit + 'static>( 531 &self, 532 f: F, 533 ) -> SignalHandlerId { 534 unsafe extern "C" fn cursor_on_match_trampoline< 535 P, 536 F: Fn(&P, &TreeModel, &TreeIter) -> Inhibit + 'static, 537 >( 538 this: *mut gtk_sys::GtkEntryCompletion, 539 model: *mut gtk_sys::GtkTreeModel, 540 iter: *mut gtk_sys::GtkTreeIter, 541 f: glib_sys::gpointer, 542 ) -> glib_sys::gboolean 543 where 544 P: IsA<EntryCompletion>, 545 { 546 let f: &F = &*(f as *const F); 547 f( 548 &EntryCompletion::from_glib_borrow(this).unsafe_cast(), 549 &from_glib_borrow(model), 550 &from_glib_borrow(iter), 551 ) 552 .to_glib() 553 } 554 unsafe { 555 let f: Box_<F> = Box_::new(f); 556 connect_raw( 557 self.as_ptr() as *mut _, 558 b"cursor-on-match\0".as_ptr() as *const _, 559 Some(transmute(cursor_on_match_trampoline::<Self, F> as usize)), 560 Box_::into_raw(f), 561 ) 562 } 563 } 564 connect_insert_prefix<F: Fn(&Self, &str) -> Inhibit + 'static>( &self, f: F, ) -> SignalHandlerId565 fn connect_insert_prefix<F: Fn(&Self, &str) -> Inhibit + 'static>( 566 &self, 567 f: F, 568 ) -> SignalHandlerId { 569 unsafe extern "C" fn insert_prefix_trampoline<P, F: Fn(&P, &str) -> Inhibit + 'static>( 570 this: *mut gtk_sys::GtkEntryCompletion, 571 prefix: *mut libc::c_char, 572 f: glib_sys::gpointer, 573 ) -> glib_sys::gboolean 574 where 575 P: IsA<EntryCompletion>, 576 { 577 let f: &F = &*(f as *const F); 578 f( 579 &EntryCompletion::from_glib_borrow(this).unsafe_cast(), 580 &GString::from_glib_borrow(prefix), 581 ) 582 .to_glib() 583 } 584 unsafe { 585 let f: Box_<F> = Box_::new(f); 586 connect_raw( 587 self.as_ptr() as *mut _, 588 b"insert-prefix\0".as_ptr() as *const _, 589 Some(transmute(insert_prefix_trampoline::<Self, F> as usize)), 590 Box_::into_raw(f), 591 ) 592 } 593 } 594 connect_match_selected<F: Fn(&Self, &TreeModel, &TreeIter) -> Inhibit + 'static>( &self, f: F, ) -> SignalHandlerId595 fn connect_match_selected<F: Fn(&Self, &TreeModel, &TreeIter) -> Inhibit + 'static>( 596 &self, 597 f: F, 598 ) -> SignalHandlerId { 599 unsafe extern "C" fn match_selected_trampoline< 600 P, 601 F: Fn(&P, &TreeModel, &TreeIter) -> Inhibit + 'static, 602 >( 603 this: *mut gtk_sys::GtkEntryCompletion, 604 model: *mut gtk_sys::GtkTreeModel, 605 iter: *mut gtk_sys::GtkTreeIter, 606 f: glib_sys::gpointer, 607 ) -> glib_sys::gboolean 608 where 609 P: IsA<EntryCompletion>, 610 { 611 let f: &F = &*(f as *const F); 612 f( 613 &EntryCompletion::from_glib_borrow(this).unsafe_cast(), 614 &from_glib_borrow(model), 615 &from_glib_borrow(iter), 616 ) 617 .to_glib() 618 } 619 unsafe { 620 let f: Box_<F> = Box_::new(f); 621 connect_raw( 622 self.as_ptr() as *mut _, 623 b"match-selected\0".as_ptr() as *const _, 624 Some(transmute(match_selected_trampoline::<Self, F> as usize)), 625 Box_::into_raw(f), 626 ) 627 } 628 } 629 connect_no_matches<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId630 fn connect_no_matches<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId { 631 unsafe extern "C" fn no_matches_trampoline<P, F: Fn(&P) + 'static>( 632 this: *mut gtk_sys::GtkEntryCompletion, 633 f: glib_sys::gpointer, 634 ) where 635 P: IsA<EntryCompletion>, 636 { 637 let f: &F = &*(f as *const F); 638 f(&EntryCompletion::from_glib_borrow(this).unsafe_cast()) 639 } 640 unsafe { 641 let f: Box_<F> = Box_::new(f); 642 connect_raw( 643 self.as_ptr() as *mut _, 644 b"no-matches\0".as_ptr() as *const _, 645 Some(transmute(no_matches_trampoline::<Self, F> as usize)), 646 Box_::into_raw(f), 647 ) 648 } 649 } 650 connect_property_inline_completion_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId651 fn connect_property_inline_completion_notify<F: Fn(&Self) + 'static>( 652 &self, 653 f: F, 654 ) -> SignalHandlerId { 655 unsafe extern "C" fn notify_inline_completion_trampoline<P, F: Fn(&P) + 'static>( 656 this: *mut gtk_sys::GtkEntryCompletion, 657 _param_spec: glib_sys::gpointer, 658 f: glib_sys::gpointer, 659 ) where 660 P: IsA<EntryCompletion>, 661 { 662 let f: &F = &*(f as *const F); 663 f(&EntryCompletion::from_glib_borrow(this).unsafe_cast()) 664 } 665 unsafe { 666 let f: Box_<F> = Box_::new(f); 667 connect_raw( 668 self.as_ptr() as *mut _, 669 b"notify::inline-completion\0".as_ptr() as *const _, 670 Some(transmute( 671 notify_inline_completion_trampoline::<Self, F> as usize, 672 )), 673 Box_::into_raw(f), 674 ) 675 } 676 } 677 connect_property_inline_selection_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId678 fn connect_property_inline_selection_notify<F: Fn(&Self) + 'static>( 679 &self, 680 f: F, 681 ) -> SignalHandlerId { 682 unsafe extern "C" fn notify_inline_selection_trampoline<P, F: Fn(&P) + 'static>( 683 this: *mut gtk_sys::GtkEntryCompletion, 684 _param_spec: glib_sys::gpointer, 685 f: glib_sys::gpointer, 686 ) where 687 P: IsA<EntryCompletion>, 688 { 689 let f: &F = &*(f as *const F); 690 f(&EntryCompletion::from_glib_borrow(this).unsafe_cast()) 691 } 692 unsafe { 693 let f: Box_<F> = Box_::new(f); 694 connect_raw( 695 self.as_ptr() as *mut _, 696 b"notify::inline-selection\0".as_ptr() as *const _, 697 Some(transmute( 698 notify_inline_selection_trampoline::<Self, F> as usize, 699 )), 700 Box_::into_raw(f), 701 ) 702 } 703 } 704 connect_property_minimum_key_length_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId705 fn connect_property_minimum_key_length_notify<F: Fn(&Self) + 'static>( 706 &self, 707 f: F, 708 ) -> SignalHandlerId { 709 unsafe extern "C" fn notify_minimum_key_length_trampoline<P, F: Fn(&P) + 'static>( 710 this: *mut gtk_sys::GtkEntryCompletion, 711 _param_spec: glib_sys::gpointer, 712 f: glib_sys::gpointer, 713 ) where 714 P: IsA<EntryCompletion>, 715 { 716 let f: &F = &*(f as *const F); 717 f(&EntryCompletion::from_glib_borrow(this).unsafe_cast()) 718 } 719 unsafe { 720 let f: Box_<F> = Box_::new(f); 721 connect_raw( 722 self.as_ptr() as *mut _, 723 b"notify::minimum-key-length\0".as_ptr() as *const _, 724 Some(transmute( 725 notify_minimum_key_length_trampoline::<Self, F> as usize, 726 )), 727 Box_::into_raw(f), 728 ) 729 } 730 } 731 connect_property_model_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId732 fn connect_property_model_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId { 733 unsafe extern "C" fn notify_model_trampoline<P, F: Fn(&P) + 'static>( 734 this: *mut gtk_sys::GtkEntryCompletion, 735 _param_spec: glib_sys::gpointer, 736 f: glib_sys::gpointer, 737 ) where 738 P: IsA<EntryCompletion>, 739 { 740 let f: &F = &*(f as *const F); 741 f(&EntryCompletion::from_glib_borrow(this).unsafe_cast()) 742 } 743 unsafe { 744 let f: Box_<F> = Box_::new(f); 745 connect_raw( 746 self.as_ptr() as *mut _, 747 b"notify::model\0".as_ptr() as *const _, 748 Some(transmute(notify_model_trampoline::<Self, F> as usize)), 749 Box_::into_raw(f), 750 ) 751 } 752 } 753 connect_property_popup_completion_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId754 fn connect_property_popup_completion_notify<F: Fn(&Self) + 'static>( 755 &self, 756 f: F, 757 ) -> SignalHandlerId { 758 unsafe extern "C" fn notify_popup_completion_trampoline<P, F: Fn(&P) + 'static>( 759 this: *mut gtk_sys::GtkEntryCompletion, 760 _param_spec: glib_sys::gpointer, 761 f: glib_sys::gpointer, 762 ) where 763 P: IsA<EntryCompletion>, 764 { 765 let f: &F = &*(f as *const F); 766 f(&EntryCompletion::from_glib_borrow(this).unsafe_cast()) 767 } 768 unsafe { 769 let f: Box_<F> = Box_::new(f); 770 connect_raw( 771 self.as_ptr() as *mut _, 772 b"notify::popup-completion\0".as_ptr() as *const _, 773 Some(transmute( 774 notify_popup_completion_trampoline::<Self, F> as usize, 775 )), 776 Box_::into_raw(f), 777 ) 778 } 779 } 780 connect_property_popup_set_width_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId781 fn connect_property_popup_set_width_notify<F: Fn(&Self) + 'static>( 782 &self, 783 f: F, 784 ) -> SignalHandlerId { 785 unsafe extern "C" fn notify_popup_set_width_trampoline<P, F: Fn(&P) + 'static>( 786 this: *mut gtk_sys::GtkEntryCompletion, 787 _param_spec: glib_sys::gpointer, 788 f: glib_sys::gpointer, 789 ) where 790 P: IsA<EntryCompletion>, 791 { 792 let f: &F = &*(f as *const F); 793 f(&EntryCompletion::from_glib_borrow(this).unsafe_cast()) 794 } 795 unsafe { 796 let f: Box_<F> = Box_::new(f); 797 connect_raw( 798 self.as_ptr() as *mut _, 799 b"notify::popup-set-width\0".as_ptr() as *const _, 800 Some(transmute( 801 notify_popup_set_width_trampoline::<Self, F> as usize, 802 )), 803 Box_::into_raw(f), 804 ) 805 } 806 } 807 connect_property_popup_single_match_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId808 fn connect_property_popup_single_match_notify<F: Fn(&Self) + 'static>( 809 &self, 810 f: F, 811 ) -> SignalHandlerId { 812 unsafe extern "C" fn notify_popup_single_match_trampoline<P, F: Fn(&P) + 'static>( 813 this: *mut gtk_sys::GtkEntryCompletion, 814 _param_spec: glib_sys::gpointer, 815 f: glib_sys::gpointer, 816 ) where 817 P: IsA<EntryCompletion>, 818 { 819 let f: &F = &*(f as *const F); 820 f(&EntryCompletion::from_glib_borrow(this).unsafe_cast()) 821 } 822 unsafe { 823 let f: Box_<F> = Box_::new(f); 824 connect_raw( 825 self.as_ptr() as *mut _, 826 b"notify::popup-single-match\0".as_ptr() as *const _, 827 Some(transmute( 828 notify_popup_single_match_trampoline::<Self, F> as usize, 829 )), 830 Box_::into_raw(f), 831 ) 832 } 833 } 834 connect_property_text_column_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId835 fn connect_property_text_column_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId { 836 unsafe extern "C" fn notify_text_column_trampoline<P, F: Fn(&P) + 'static>( 837 this: *mut gtk_sys::GtkEntryCompletion, 838 _param_spec: glib_sys::gpointer, 839 f: glib_sys::gpointer, 840 ) where 841 P: IsA<EntryCompletion>, 842 { 843 let f: &F = &*(f as *const F); 844 f(&EntryCompletion::from_glib_borrow(this).unsafe_cast()) 845 } 846 unsafe { 847 let f: Box_<F> = Box_::new(f); 848 connect_raw( 849 self.as_ptr() as *mut _, 850 b"notify::text-column\0".as_ptr() as *const _, 851 Some(transmute(notify_text_column_trampoline::<Self, F> as usize)), 852 Box_::into_raw(f), 853 ) 854 } 855 } 856 } 857 858 impl fmt::Display for EntryCompletion { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result859 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 860 write!(f, "EntryCompletion") 861 } 862 } 863