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_sys; 12 use gtk_sys; 13 use libc; 14 use pango; 15 use std::boxed::Box as Box_; 16 use std::fmt; 17 use std::mem::transmute; 18 #[cfg(any(feature = "v3_24", feature = "dox"))] 19 use FontChooserLevel; 20 21 glib_wrapper! { 22 pub struct FontChooser(Interface<gtk_sys::GtkFontChooser>); 23 24 match fn { 25 get_type => || gtk_sys::gtk_font_chooser_get_type(), 26 } 27 } 28 29 pub const NONE_FONT_CHOOSER: Option<&FontChooser> = None; 30 31 pub trait FontChooserExt: 'static { get_font(&self) -> Option<GString>32 fn get_font(&self) -> Option<GString>; 33 get_font_desc(&self) -> Option<pango::FontDescription>34 fn get_font_desc(&self) -> Option<pango::FontDescription>; 35 get_font_face(&self) -> Option<pango::FontFace>36 fn get_font_face(&self) -> Option<pango::FontFace>; 37 get_font_family(&self) -> Option<pango::FontFamily>38 fn get_font_family(&self) -> Option<pango::FontFamily>; 39 40 #[cfg(any(feature = "v3_24", feature = "dox"))] get_font_features(&self) -> Option<GString>41 fn get_font_features(&self) -> Option<GString>; 42 43 #[cfg(any(feature = "v3_18", feature = "dox"))] get_font_map(&self) -> Option<pango::FontMap>44 fn get_font_map(&self) -> Option<pango::FontMap>; 45 get_font_size(&self) -> i3246 fn get_font_size(&self) -> i32; 47 48 #[cfg(any(feature = "v3_24", feature = "dox"))] get_language(&self) -> Option<GString>49 fn get_language(&self) -> Option<GString>; 50 51 #[cfg(any(feature = "v3_24", feature = "dox"))] get_level(&self) -> FontChooserLevel52 fn get_level(&self) -> FontChooserLevel; 53 get_preview_text(&self) -> Option<GString>54 fn get_preview_text(&self) -> Option<GString>; 55 get_show_preview_entry(&self) -> bool56 fn get_show_preview_entry(&self) -> bool; 57 set_filter_func( &self, filter: Option<Box_<dyn Fn(&pango::FontFamily, &pango::FontFace) -> bool + 'static>>, )58 fn set_filter_func( 59 &self, 60 filter: Option<Box_<dyn Fn(&pango::FontFamily, &pango::FontFace) -> bool + 'static>>, 61 ); 62 set_font(&self, fontname: &str)63 fn set_font(&self, fontname: &str); 64 set_font_desc(&self, font_desc: &pango::FontDescription)65 fn set_font_desc(&self, font_desc: &pango::FontDescription); 66 67 #[cfg(any(feature = "v3_18", feature = "dox"))] set_font_map<P: IsA<pango::FontMap>>(&self, fontmap: Option<&P>)68 fn set_font_map<P: IsA<pango::FontMap>>(&self, fontmap: Option<&P>); 69 70 #[cfg(any(feature = "v3_24", feature = "dox"))] set_language(&self, language: &str)71 fn set_language(&self, language: &str); 72 73 #[cfg(any(feature = "v3_24", feature = "dox"))] set_level(&self, level: FontChooserLevel)74 fn set_level(&self, level: FontChooserLevel); 75 set_preview_text(&self, text: &str)76 fn set_preview_text(&self, text: &str); 77 set_show_preview_entry(&self, show_preview_entry: bool)78 fn set_show_preview_entry(&self, show_preview_entry: bool); 79 connect_font_activated<F: Fn(&Self, &str) + 'static>(&self, f: F) -> SignalHandlerId80 fn connect_font_activated<F: Fn(&Self, &str) + 'static>(&self, f: F) -> SignalHandlerId; 81 connect_property_font_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId82 fn connect_property_font_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId; 83 connect_property_font_desc_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId84 fn connect_property_font_desc_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId; 85 86 #[cfg(any(feature = "v3_24", feature = "dox"))] connect_property_font_features_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId87 fn connect_property_font_features_notify<F: Fn(&Self) + 'static>( 88 &self, 89 f: F, 90 ) -> SignalHandlerId; 91 92 #[cfg(any(feature = "v3_24", feature = "dox"))] connect_property_language_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId93 fn connect_property_language_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId; 94 95 #[cfg(any(feature = "v3_24", feature = "dox"))] connect_property_level_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId96 fn connect_property_level_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId; 97 connect_property_preview_text_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId98 fn connect_property_preview_text_notify<F: Fn(&Self) + 'static>(&self, f: F) 99 -> SignalHandlerId; 100 connect_property_show_preview_entry_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId101 fn connect_property_show_preview_entry_notify<F: Fn(&Self) + 'static>( 102 &self, 103 f: F, 104 ) -> SignalHandlerId; 105 } 106 107 impl<O: IsA<FontChooser>> FontChooserExt for O { get_font(&self) -> Option<GString>108 fn get_font(&self) -> Option<GString> { 109 unsafe { 110 from_glib_full(gtk_sys::gtk_font_chooser_get_font( 111 self.as_ref().to_glib_none().0, 112 )) 113 } 114 } 115 get_font_desc(&self) -> Option<pango::FontDescription>116 fn get_font_desc(&self) -> Option<pango::FontDescription> { 117 unsafe { 118 from_glib_full(gtk_sys::gtk_font_chooser_get_font_desc( 119 self.as_ref().to_glib_none().0, 120 )) 121 } 122 } 123 get_font_face(&self) -> Option<pango::FontFace>124 fn get_font_face(&self) -> Option<pango::FontFace> { 125 unsafe { 126 from_glib_none(gtk_sys::gtk_font_chooser_get_font_face( 127 self.as_ref().to_glib_none().0, 128 )) 129 } 130 } 131 get_font_family(&self) -> Option<pango::FontFamily>132 fn get_font_family(&self) -> Option<pango::FontFamily> { 133 unsafe { 134 from_glib_none(gtk_sys::gtk_font_chooser_get_font_family( 135 self.as_ref().to_glib_none().0, 136 )) 137 } 138 } 139 140 #[cfg(any(feature = "v3_24", feature = "dox"))] get_font_features(&self) -> Option<GString>141 fn get_font_features(&self) -> Option<GString> { 142 unsafe { 143 from_glib_full(gtk_sys::gtk_font_chooser_get_font_features( 144 self.as_ref().to_glib_none().0, 145 )) 146 } 147 } 148 149 #[cfg(any(feature = "v3_18", feature = "dox"))] get_font_map(&self) -> Option<pango::FontMap>150 fn get_font_map(&self) -> Option<pango::FontMap> { 151 unsafe { 152 from_glib_full(gtk_sys::gtk_font_chooser_get_font_map( 153 self.as_ref().to_glib_none().0, 154 )) 155 } 156 } 157 get_font_size(&self) -> i32158 fn get_font_size(&self) -> i32 { 159 unsafe { gtk_sys::gtk_font_chooser_get_font_size(self.as_ref().to_glib_none().0) } 160 } 161 162 #[cfg(any(feature = "v3_24", feature = "dox"))] get_language(&self) -> Option<GString>163 fn get_language(&self) -> Option<GString> { 164 unsafe { 165 from_glib_full(gtk_sys::gtk_font_chooser_get_language( 166 self.as_ref().to_glib_none().0, 167 )) 168 } 169 } 170 171 #[cfg(any(feature = "v3_24", feature = "dox"))] get_level(&self) -> FontChooserLevel172 fn get_level(&self) -> FontChooserLevel { 173 unsafe { 174 from_glib(gtk_sys::gtk_font_chooser_get_level( 175 self.as_ref().to_glib_none().0, 176 )) 177 } 178 } 179 get_preview_text(&self) -> Option<GString>180 fn get_preview_text(&self) -> Option<GString> { 181 unsafe { 182 from_glib_full(gtk_sys::gtk_font_chooser_get_preview_text( 183 self.as_ref().to_glib_none().0, 184 )) 185 } 186 } 187 get_show_preview_entry(&self) -> bool188 fn get_show_preview_entry(&self) -> bool { 189 unsafe { 190 from_glib(gtk_sys::gtk_font_chooser_get_show_preview_entry( 191 self.as_ref().to_glib_none().0, 192 )) 193 } 194 } 195 set_filter_func( &self, filter: Option<Box_<dyn Fn(&pango::FontFamily, &pango::FontFace) -> bool + 'static>>, )196 fn set_filter_func( 197 &self, 198 filter: Option<Box_<dyn Fn(&pango::FontFamily, &pango::FontFace) -> bool + 'static>>, 199 ) { 200 let filter_data: Box_< 201 Option<Box_<dyn Fn(&pango::FontFamily, &pango::FontFace) -> bool + 'static>>, 202 > = Box_::new(filter); 203 unsafe extern "C" fn filter_func( 204 family: *const pango_sys::PangoFontFamily, 205 face: *const pango_sys::PangoFontFace, 206 data: glib_sys::gpointer, 207 ) -> glib_sys::gboolean { 208 let family = from_glib_borrow(family); 209 let face = from_glib_borrow(face); 210 let callback: &Option< 211 Box_<dyn Fn(&pango::FontFamily, &pango::FontFace) -> bool + 'static>, 212 > = &*(data as *mut _); 213 let res = if let Some(ref callback) = *callback { 214 callback(&family, &face) 215 } else { 216 panic!("cannot get closure...") 217 }; 218 res.to_glib() 219 } 220 let filter = if filter_data.is_some() { 221 Some(filter_func as _) 222 } else { 223 None 224 }; 225 unsafe extern "C" fn destroy_func(data: glib_sys::gpointer) { 226 let _callback: Box_< 227 Option<Box_<dyn Fn(&pango::FontFamily, &pango::FontFace) -> bool + 'static>>, 228 > = Box_::from_raw(data as *mut _); 229 } 230 let destroy_call3 = Some(destroy_func as _); 231 let super_callback0: Box_< 232 Option<Box_<dyn Fn(&pango::FontFamily, &pango::FontFace) -> bool + 'static>>, 233 > = filter_data; 234 unsafe { 235 gtk_sys::gtk_font_chooser_set_filter_func( 236 self.as_ref().to_glib_none().0, 237 filter, 238 Box_::into_raw(super_callback0) as *mut _, 239 destroy_call3, 240 ); 241 } 242 } 243 set_font(&self, fontname: &str)244 fn set_font(&self, fontname: &str) { 245 unsafe { 246 gtk_sys::gtk_font_chooser_set_font( 247 self.as_ref().to_glib_none().0, 248 fontname.to_glib_none().0, 249 ); 250 } 251 } 252 set_font_desc(&self, font_desc: &pango::FontDescription)253 fn set_font_desc(&self, font_desc: &pango::FontDescription) { 254 unsafe { 255 gtk_sys::gtk_font_chooser_set_font_desc( 256 self.as_ref().to_glib_none().0, 257 font_desc.to_glib_none().0, 258 ); 259 } 260 } 261 262 #[cfg(any(feature = "v3_18", feature = "dox"))] set_font_map<P: IsA<pango::FontMap>>(&self, fontmap: Option<&P>)263 fn set_font_map<P: IsA<pango::FontMap>>(&self, fontmap: Option<&P>) { 264 unsafe { 265 gtk_sys::gtk_font_chooser_set_font_map( 266 self.as_ref().to_glib_none().0, 267 fontmap.map(|p| p.as_ref()).to_glib_none().0, 268 ); 269 } 270 } 271 272 #[cfg(any(feature = "v3_24", feature = "dox"))] set_language(&self, language: &str)273 fn set_language(&self, language: &str) { 274 unsafe { 275 gtk_sys::gtk_font_chooser_set_language( 276 self.as_ref().to_glib_none().0, 277 language.to_glib_none().0, 278 ); 279 } 280 } 281 282 #[cfg(any(feature = "v3_24", feature = "dox"))] set_level(&self, level: FontChooserLevel)283 fn set_level(&self, level: FontChooserLevel) { 284 unsafe { 285 gtk_sys::gtk_font_chooser_set_level(self.as_ref().to_glib_none().0, level.to_glib()); 286 } 287 } 288 set_preview_text(&self, text: &str)289 fn set_preview_text(&self, text: &str) { 290 unsafe { 291 gtk_sys::gtk_font_chooser_set_preview_text( 292 self.as_ref().to_glib_none().0, 293 text.to_glib_none().0, 294 ); 295 } 296 } 297 set_show_preview_entry(&self, show_preview_entry: bool)298 fn set_show_preview_entry(&self, show_preview_entry: bool) { 299 unsafe { 300 gtk_sys::gtk_font_chooser_set_show_preview_entry( 301 self.as_ref().to_glib_none().0, 302 show_preview_entry.to_glib(), 303 ); 304 } 305 } 306 connect_font_activated<F: Fn(&Self, &str) + 'static>(&self, f: F) -> SignalHandlerId307 fn connect_font_activated<F: Fn(&Self, &str) + 'static>(&self, f: F) -> SignalHandlerId { 308 unsafe extern "C" fn font_activated_trampoline<P, F: Fn(&P, &str) + 'static>( 309 this: *mut gtk_sys::GtkFontChooser, 310 fontname: *mut libc::c_char, 311 f: glib_sys::gpointer, 312 ) where 313 P: IsA<FontChooser>, 314 { 315 let f: &F = &*(f as *const F); 316 f( 317 &FontChooser::from_glib_borrow(this).unsafe_cast(), 318 &GString::from_glib_borrow(fontname), 319 ) 320 } 321 unsafe { 322 let f: Box_<F> = Box_::new(f); 323 connect_raw( 324 self.as_ptr() as *mut _, 325 b"font-activated\0".as_ptr() as *const _, 326 Some(transmute(font_activated_trampoline::<Self, F> as usize)), 327 Box_::into_raw(f), 328 ) 329 } 330 } 331 connect_property_font_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId332 fn connect_property_font_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId { 333 unsafe extern "C" fn notify_font_trampoline<P, F: Fn(&P) + 'static>( 334 this: *mut gtk_sys::GtkFontChooser, 335 _param_spec: glib_sys::gpointer, 336 f: glib_sys::gpointer, 337 ) where 338 P: IsA<FontChooser>, 339 { 340 let f: &F = &*(f as *const F); 341 f(&FontChooser::from_glib_borrow(this).unsafe_cast()) 342 } 343 unsafe { 344 let f: Box_<F> = Box_::new(f); 345 connect_raw( 346 self.as_ptr() as *mut _, 347 b"notify::font\0".as_ptr() as *const _, 348 Some(transmute(notify_font_trampoline::<Self, F> as usize)), 349 Box_::into_raw(f), 350 ) 351 } 352 } 353 connect_property_font_desc_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId354 fn connect_property_font_desc_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId { 355 unsafe extern "C" fn notify_font_desc_trampoline<P, F: Fn(&P) + 'static>( 356 this: *mut gtk_sys::GtkFontChooser, 357 _param_spec: glib_sys::gpointer, 358 f: glib_sys::gpointer, 359 ) where 360 P: IsA<FontChooser>, 361 { 362 let f: &F = &*(f as *const F); 363 f(&FontChooser::from_glib_borrow(this).unsafe_cast()) 364 } 365 unsafe { 366 let f: Box_<F> = Box_::new(f); 367 connect_raw( 368 self.as_ptr() as *mut _, 369 b"notify::font-desc\0".as_ptr() as *const _, 370 Some(transmute(notify_font_desc_trampoline::<Self, F> as usize)), 371 Box_::into_raw(f), 372 ) 373 } 374 } 375 376 #[cfg(any(feature = "v3_24", feature = "dox"))] connect_property_font_features_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId377 fn connect_property_font_features_notify<F: Fn(&Self) + 'static>( 378 &self, 379 f: F, 380 ) -> SignalHandlerId { 381 unsafe extern "C" fn notify_font_features_trampoline<P, F: Fn(&P) + 'static>( 382 this: *mut gtk_sys::GtkFontChooser, 383 _param_spec: glib_sys::gpointer, 384 f: glib_sys::gpointer, 385 ) where 386 P: IsA<FontChooser>, 387 { 388 let f: &F = &*(f as *const F); 389 f(&FontChooser::from_glib_borrow(this).unsafe_cast()) 390 } 391 unsafe { 392 let f: Box_<F> = Box_::new(f); 393 connect_raw( 394 self.as_ptr() as *mut _, 395 b"notify::font-features\0".as_ptr() as *const _, 396 Some(transmute( 397 notify_font_features_trampoline::<Self, F> as usize, 398 )), 399 Box_::into_raw(f), 400 ) 401 } 402 } 403 404 #[cfg(any(feature = "v3_24", feature = "dox"))] connect_property_language_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId405 fn connect_property_language_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId { 406 unsafe extern "C" fn notify_language_trampoline<P, F: Fn(&P) + 'static>( 407 this: *mut gtk_sys::GtkFontChooser, 408 _param_spec: glib_sys::gpointer, 409 f: glib_sys::gpointer, 410 ) where 411 P: IsA<FontChooser>, 412 { 413 let f: &F = &*(f as *const F); 414 f(&FontChooser::from_glib_borrow(this).unsafe_cast()) 415 } 416 unsafe { 417 let f: Box_<F> = Box_::new(f); 418 connect_raw( 419 self.as_ptr() as *mut _, 420 b"notify::language\0".as_ptr() as *const _, 421 Some(transmute(notify_language_trampoline::<Self, F> as usize)), 422 Box_::into_raw(f), 423 ) 424 } 425 } 426 427 #[cfg(any(feature = "v3_24", feature = "dox"))] connect_property_level_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId428 fn connect_property_level_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId { 429 unsafe extern "C" fn notify_level_trampoline<P, F: Fn(&P) + 'static>( 430 this: *mut gtk_sys::GtkFontChooser, 431 _param_spec: glib_sys::gpointer, 432 f: glib_sys::gpointer, 433 ) where 434 P: IsA<FontChooser>, 435 { 436 let f: &F = &*(f as *const F); 437 f(&FontChooser::from_glib_borrow(this).unsafe_cast()) 438 } 439 unsafe { 440 let f: Box_<F> = Box_::new(f); 441 connect_raw( 442 self.as_ptr() as *mut _, 443 b"notify::level\0".as_ptr() as *const _, 444 Some(transmute(notify_level_trampoline::<Self, F> as usize)), 445 Box_::into_raw(f), 446 ) 447 } 448 } 449 connect_property_preview_text_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId450 fn connect_property_preview_text_notify<F: Fn(&Self) + 'static>( 451 &self, 452 f: F, 453 ) -> SignalHandlerId { 454 unsafe extern "C" fn notify_preview_text_trampoline<P, F: Fn(&P) + 'static>( 455 this: *mut gtk_sys::GtkFontChooser, 456 _param_spec: glib_sys::gpointer, 457 f: glib_sys::gpointer, 458 ) where 459 P: IsA<FontChooser>, 460 { 461 let f: &F = &*(f as *const F); 462 f(&FontChooser::from_glib_borrow(this).unsafe_cast()) 463 } 464 unsafe { 465 let f: Box_<F> = Box_::new(f); 466 connect_raw( 467 self.as_ptr() as *mut _, 468 b"notify::preview-text\0".as_ptr() as *const _, 469 Some(transmute( 470 notify_preview_text_trampoline::<Self, F> as usize, 471 )), 472 Box_::into_raw(f), 473 ) 474 } 475 } 476 connect_property_show_preview_entry_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId477 fn connect_property_show_preview_entry_notify<F: Fn(&Self) + 'static>( 478 &self, 479 f: F, 480 ) -> SignalHandlerId { 481 unsafe extern "C" fn notify_show_preview_entry_trampoline<P, F: Fn(&P) + 'static>( 482 this: *mut gtk_sys::GtkFontChooser, 483 _param_spec: glib_sys::gpointer, 484 f: glib_sys::gpointer, 485 ) where 486 P: IsA<FontChooser>, 487 { 488 let f: &F = &*(f as *const F); 489 f(&FontChooser::from_glib_borrow(this).unsafe_cast()) 490 } 491 unsafe { 492 let f: Box_<F> = Box_::new(f); 493 connect_raw( 494 self.as_ptr() as *mut _, 495 b"notify::show-preview-entry\0".as_ptr() as *const _, 496 Some(transmute( 497 notify_show_preview_entry_trampoline::<Self, F> as usize, 498 )), 499 Box_::into_raw(f), 500 ) 501 } 502 } 503 } 504 505 impl fmt::Display for FontChooser { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result506 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 507 write!(f, "FontChooser") 508 } 509 } 510