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 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
// 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::translate::*; glib::wrapper! { /// A [`FontMetrics`][crate::FontMetrics] structure holds the overall metric information /// for a font (possibly restricted to a script). The fields of this /// structure are private to implementations of a font backend. See /// the documentation of the corresponding getters for documentation /// of their meaning. #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] pub struct FontMetrics(Shared<ffi::PangoFontMetrics>); match fn { ref => |ptr| ffi::pango_font_metrics_ref(ptr), unref => |ptr| ffi::pango_font_metrics_unref(ptr), type_ => || ffi::pango_font_metrics_get_type(), } } impl FontMetrics { /// Gets the approximate character width for a font metrics structure. /// This is merely a representative value useful, for example, for /// determining the initial size for a window. Actual characters in /// text will be wider and narrower than this. /// /// # Returns /// /// the character width, in Pango units. #[doc(alias = "pango_font_metrics_get_approximate_char_width")] #[doc(alias = "get_approximate_char_width")] pub fn approximate_char_width(&self) -> i32 { unsafe { ffi::pango_font_metrics_get_approximate_char_width(self.to_glib_none().0) } } /// Gets the approximate digit width for a font metrics structure. /// This is merely a representative value useful, for example, for /// determining the initial size for a window. Actual digits in /// text can be wider or narrower than this, though this value /// is generally somewhat more accurate than the result of /// [`approximate_char_width()`][Self::approximate_char_width()] for digits. /// /// # Returns /// /// the digit width, in Pango units. #[doc(alias = "pango_font_metrics_get_approximate_digit_width")] #[doc(alias = "get_approximate_digit_width")] pub fn approximate_digit_width(&self) -> i32 { unsafe { ffi::pango_font_metrics_get_approximate_digit_width(self.to_glib_none().0) } } /// Gets the ascent from a font metrics structure. The ascent is /// the distance from the baseline to the logical top of a line /// of text. (The logical top may be above or below the top of the /// actual drawn ink. It is necessary to lay out the text to figure /// where the ink will be.) /// /// # Returns /// /// the ascent, in Pango units. #[doc(alias = "pango_font_metrics_get_ascent")] #[doc(alias = "get_ascent")] pub fn ascent(&self) -> i32 { unsafe { ffi::pango_font_metrics_get_ascent(self.to_glib_none().0) } } /// Gets the descent from a font metrics structure. The descent is /// the distance from the baseline to the logical bottom of a line /// of text. (The logical bottom may be above or below the bottom of the /// actual drawn ink. It is necessary to lay out the text to figure /// where the ink will be.) /// /// # Returns /// /// the descent, in Pango units. #[doc(alias = "pango_font_metrics_get_descent")] #[doc(alias = "get_descent")] pub fn descent(&self) -> i32 { unsafe { ffi::pango_font_metrics_get_descent(self.to_glib_none().0) } } /// Gets the line height from a font metrics structure. The /// line height is the distance between successive baselines /// in wrapped text. /// /// If the line height is not available, 0 is returned. /// /// # Returns /// /// the height, in Pango units #[cfg(any(feature = "v1_44", feature = "dox"))] #[cfg_attr(feature = "dox", doc(cfg(feature = "v1_44")))] #[doc(alias = "pango_font_metrics_get_height")] #[doc(alias = "get_height")] pub fn height(&self) -> i32 { unsafe { ffi::pango_font_metrics_get_height(self.to_glib_none().0) } } /// Gets the suggested position to draw the strikethrough. /// The value returned is the distance `<emphasis>`above`</emphasis>` the /// baseline of the top of the strikethrough. /// /// # Returns /// /// the suggested strikethrough position, in Pango units. #[doc(alias = "pango_font_metrics_get_strikethrough_position")] #[doc(alias = "get_strikethrough_position")] pub fn strikethrough_position(&self) -> i32 { unsafe { ffi::pango_font_metrics_get_strikethrough_position(self.to_glib_none().0) } } /// Gets the suggested thickness to draw for the strikethrough. /// /// # Returns /// /// the suggested strikethrough thickness, in Pango units. #[doc(alias = "pango_font_metrics_get_strikethrough_thickness")] #[doc(alias = "get_strikethrough_thickness")] pub fn strikethrough_thickness(&self) -> i32 { unsafe { ffi::pango_font_metrics_get_strikethrough_thickness(self.to_glib_none().0) } } /// Gets the suggested position to draw the underline. /// The value returned is the distance `<emphasis>`above`</emphasis>` the /// baseline of the top of the underline. Since most fonts have /// underline positions beneath the baseline, this value is typically /// negative. /// /// # Returns /// /// the suggested underline position, in Pango units. #[doc(alias = "pango_font_metrics_get_underline_position")] #[doc(alias = "get_underline_position")] pub fn underline_position(&self) -> i32 { unsafe { ffi::pango_font_metrics_get_underline_position(self.to_glib_none().0) } } /// Gets the suggested thickness to draw for the underline. /// /// # Returns /// /// the suggested underline thickness, in Pango units. #[doc(alias = "pango_font_metrics_get_underline_thickness")] #[doc(alias = "get_underline_thickness")] pub fn underline_thickness(&self) -> i32 { unsafe { ffi::pango_font_metrics_get_underline_thickness(self.to_glib_none().0) } } }