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