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

use glib::translate::*;

use crate::AttrType;

define_attribute_struct!(
    AttrFontFeatures,
    ffi::PangoAttrFontFeatures,
    &[AttrType::FontFeatures]
);

impl AttrFontFeatures {
    /// Create a new font features tag attribute.
    ///
    /// You can use this attribute to select OpenType font features like small-caps,
    /// alternative glyphs, ligatures, etc. for fonts that support them.
    /// ## `features`
    /// a string with OpenType font features, with the syntax of the [CSS
    /// font-feature-settings property](https://www.w3.org/TR/css-fonts-4/#font-rend-desc)
    ///
    /// # Returns
    ///
    /// the newly allocated
    ///   [`Attribute`][crate::Attribute], which should be freed with
    ///   `Pango::Attribute::destroy()`
    #[doc(alias = "pango_attr_font_features_new")]
    pub fn new(features: &str) -> Self {
        unsafe { from_glib_full(ffi::pango_attr_font_features_new(features.to_glib_none().0)) }
    }

    pub fn features(&self) -> glib::GString {
        unsafe { from_glib_none(self.inner.features) }
    }
}