1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
// This file was generated by gir (https://github.com/gtk-rs/gir) // from gir-files (https://github.com/gtk-rs/gir-files) // DO NOT EDIT use glib::object::IsA; use glib::translate::*; use std::fmt; glib::wrapper! { /// [`FontMap`][crate::FontMap] is an interface exported by font maps for /// use with Cairo. The actual type of the font map will depend /// on the particular font technology Cairo was compiled to use. /// /// # Implements /// /// [`FontMapExt`][trait@crate::prelude::FontMapExt], [`trait@pango::prelude::FontMapExt`], [`FontMapExtManual`][trait@crate::prelude::FontMapExtManual] #[doc(alias = "PangoCairoFontMap")] pub struct FontMap(Interface<ffi::PangoCairoFontMap>) @requires pango::FontMap; match fn { type_ => || ffi::pango_cairo_font_map_get_type(), } } impl FontMap { /// Gets a default [`FontMap`][crate::FontMap] to use with Cairo. /// /// Note that the type of the returned object will depend /// on the particular font backend Cairo was compiled to use; /// You generally should only use the [`pango::FontMap`][crate::pango::FontMap] and /// [`FontMap`][crate::FontMap] interfaces on the returned object. /// /// The default Cairo fontmap can be changed by using /// [`FontMapExtManual::set_default()`][crate::prelude::FontMapExtManual::set_default()]. This can be used to /// change the Cairo font backend that the default fontmap /// uses for example. /// /// Note that since Pango 1.32.6, the default fontmap is per-thread. /// Each thread gets its own default fontmap. In this way, /// PangoCairo can be used safely from multiple threads. /// /// # Returns /// /// the default PangoCairo fontmap /// for the current thread. This object is owned by Pango and must not be freed. #[doc(alias = "pango_cairo_font_map_get_default")] #[doc(alias = "get_default")] pub fn default() -> Option<pango::FontMap> { unsafe { from_glib_none(ffi::pango_cairo_font_map_get_default()) } } } pub const NONE_FONT_MAP: Option<&FontMap> = None; /// Trait containing all [`struct@FontMap`] methods. /// /// # Implementors /// /// [`FontMap`][struct@crate::FontMap] pub trait FontMapExt: 'static { /// Gets the resolution for the fontmap. See [`set_resolution()`][Self::set_resolution()] /// /// # Returns /// /// the resolution in "dots per inch" #[doc(alias = "pango_cairo_font_map_get_resolution")] #[doc(alias = "get_resolution")] fn resolution(&self) -> f64; /// Sets the resolution for the fontmap. This is a scale factor between /// points specified in a `PangoFontDescription` and Cairo units. The /// default value is 96, meaning that a 10 point font will be 13 /// units high. (10 * 96. / 72. = 13.3). /// ## `dpi` /// the resolution in "dots per inch". (Physical inches aren't actually /// involved; the terminology is conventional.) #[doc(alias = "pango_cairo_font_map_set_resolution")] fn set_resolution(&self, dpi: f64); } impl<O: IsA<FontMap>> FontMapExt for O { fn resolution(&self) -> f64 { unsafe { ffi::pango_cairo_font_map_get_resolution(self.as_ref().to_glib_none().0) } } fn set_resolution(&self, dpi: f64) { unsafe { ffi::pango_cairo_font_map_set_resolution(self.as_ref().to_glib_none().0, dpi); } } } impl fmt::Display for FontMap { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { f.write_str("FontMap") } }