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
// Take a look at the license at the top of the repository in the LICENSE file.

use glib::translate::*;

use crate::{AttrType, FontDescription};

define_attribute_struct!(AttrFontDesc, ffi::PangoAttrFontDesc, &[AttrType::FontDesc]);

impl AttrFontDesc {
    /// Create a new font description attribute.
    ///
    /// This attribute allows setting family, style, weight, variant,
    /// stretch, and size simultaneously.
    /// ## `desc`
    /// the font description
    ///
    /// # Returns
    ///
    /// the newly allocated
    ///   [`Attribute`][crate::Attribute], which should be freed with
    ///   `Pango::Attribute::destroy()`
    #[doc(alias = "pango_attr_font_desc_new")]
    pub fn new(desc: &FontDescription) -> Self {
        unsafe { from_glib_full(ffi::pango_attr_font_desc_new(desc.to_glib_none().0)) }
    }

    pub fn desc(&self) -> FontDescription {
        unsafe { from_glib_none(self.inner.desc) }
    }
}