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
// 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!(
    AttrSize,
    ffi::PangoAttrSize,
    &[AttrType::Size, AttrType::AbsoluteSize]
);

impl AttrSize {
    /// Create a new font-size attribute in fractional points.
    /// ## `size`
    /// the font size, in `PANGO_SCALE`-ths of a point
    ///
    /// # Returns
    ///
    /// the newly allocated
    ///   [`Attribute`][crate::Attribute], which should be freed with
    ///   `Pango::Attribute::destroy()`
    #[doc(alias = "pango_attr_size_new")]
    pub fn new(size: i32) -> Self {
        unsafe { from_glib_full(ffi::pango_attr_size_new(size)) }
    }

    #[doc(alias = "pango_attr_size_new_absolute")]
    pub fn new_size_absolute(size: i32) -> Self {
        unsafe { from_glib_full(ffi::pango_attr_size_new_absolute(size)) }
    }

    pub fn size(&self) -> i32 {
        self.inner.size
    }

    pub fn absolute(&self) -> bool {
        unsafe { from_glib(self.inner.absolute as i32) }
    }
}