pango/auto/
functions.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4
5use crate::{ffi, AttrList, Direction, Stretch, Style, Variant, Weight};
6use glib::translate::*;
7
8//#[cfg_attr(feature = "v1_44", deprecated = "Since 1.44")]
9//#[allow(deprecated)]
10//#[doc(alias = "pango_break")]
11//#[doc(alias = "break")]
12//pub fn break_(text: &str, analysis: &mut Analysis, attrs: /*Ignored*/Vec<LogAttr>) {
13//    unsafe { TODO: call ffi:pango_break() }
14//}
15
16//#[doc(alias = "pango_default_break")]
17//pub fn default_break(text: &str, analysis: Option<&mut Analysis>, attrs: /*Ignored*/Vec<LogAttr>) {
18//    unsafe { TODO: call ffi:pango_default_break() }
19//}
20
21#[doc(alias = "pango_find_base_dir")]
22pub fn find_base_dir(text: &str) -> Direction {
23    let length = text.len() as _;
24    unsafe { from_glib(ffi::pango_find_base_dir(text.to_glib_none().0, length)) }
25}
26
27#[doc(alias = "pango_find_paragraph_boundary")]
28pub fn find_paragraph_boundary(text: &str) -> (i32, i32) {
29    let length = text.len() as _;
30    unsafe {
31        let mut paragraph_delimiter_index = std::mem::MaybeUninit::uninit();
32        let mut next_paragraph_start = std::mem::MaybeUninit::uninit();
33        ffi::pango_find_paragraph_boundary(
34            text.to_glib_none().0,
35            length,
36            paragraph_delimiter_index.as_mut_ptr(),
37            next_paragraph_start.as_mut_ptr(),
38        );
39        (
40            paragraph_delimiter_index.assume_init(),
41            next_paragraph_start.assume_init(),
42        )
43    }
44}
45
46//#[doc(alias = "pango_get_log_attrs")]
47//#[doc(alias = "get_log_attrs")]
48//pub fn log_attrs(text: &str, level: i32, language: &mut Language, attrs: /*Ignored*/Vec<LogAttr>) {
49//    unsafe { TODO: call ffi:pango_get_log_attrs() }
50//}
51
52#[doc(alias = "pango_is_zero_width")]
53pub fn is_zero_width(ch: char) -> bool {
54    unsafe { from_glib(ffi::pango_is_zero_width(ch.into_glib())) }
55}
56
57#[doc(alias = "pango_markup_parser_finish")]
58pub fn markup_parser_finish(
59    context: &glib::MarkupParseContext,
60) -> Result<(AttrList, glib::GString, char), glib::Error> {
61    unsafe {
62        let mut attr_list = std::ptr::null_mut();
63        let mut text = std::ptr::null_mut();
64        let mut accel_char = std::mem::MaybeUninit::uninit();
65        let mut error = std::ptr::null_mut();
66        let is_ok = ffi::pango_markup_parser_finish(
67            context.to_glib_none().0,
68            &mut attr_list,
69            &mut text,
70            accel_char.as_mut_ptr(),
71            &mut error,
72        );
73        debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
74        if error.is_null() {
75            Ok((
76                from_glib_full(attr_list),
77                from_glib_full(text),
78                std::convert::TryFrom::try_from(accel_char.assume_init())
79                    .expect("conversion from an invalid Unicode value attempted"),
80            ))
81        } else {
82            Err(from_glib_full(error))
83        }
84    }
85}
86
87#[doc(alias = "pango_markup_parser_new")]
88pub fn markup_parser_new(accel_marker: char) -> glib::MarkupParseContext {
89    unsafe { from_glib_none(ffi::pango_markup_parser_new(accel_marker.into_glib())) }
90}
91
92#[doc(alias = "pango_parse_markup")]
93pub fn parse_markup(
94    markup_text: &str,
95    accel_marker: char,
96) -> Result<(AttrList, glib::GString, char), glib::Error> {
97    let length = markup_text.len() as _;
98    unsafe {
99        let mut attr_list = std::ptr::null_mut();
100        let mut text = std::ptr::null_mut();
101        let mut accel_char = std::mem::MaybeUninit::uninit();
102        let mut error = std::ptr::null_mut();
103        let is_ok = ffi::pango_parse_markup(
104            markup_text.to_glib_none().0,
105            length,
106            accel_marker.into_glib(),
107            &mut attr_list,
108            &mut text,
109            accel_char.as_mut_ptr(),
110            &mut error,
111        );
112        debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
113        if error.is_null() {
114            Ok((
115                from_glib_full(attr_list),
116                from_glib_full(text),
117                std::convert::TryFrom::try_from(accel_char.assume_init())
118                    .expect("conversion from an invalid Unicode value attempted"),
119            ))
120        } else {
121            Err(from_glib_full(error))
122        }
123    }
124}
125
126#[doc(alias = "pango_parse_stretch")]
127pub fn parse_stretch(str: &str, warn: bool) -> Option<Stretch> {
128    unsafe {
129        let mut stretch = std::mem::MaybeUninit::uninit();
130        let ret = from_glib(ffi::pango_parse_stretch(
131            str.to_glib_none().0,
132            stretch.as_mut_ptr(),
133            warn.into_glib(),
134        ));
135        if ret {
136            Some(from_glib(stretch.assume_init()))
137        } else {
138            None
139        }
140    }
141}
142
143#[doc(alias = "pango_parse_style")]
144pub fn parse_style(str: &str, warn: bool) -> Option<Style> {
145    unsafe {
146        let mut style = std::mem::MaybeUninit::uninit();
147        let ret = from_glib(ffi::pango_parse_style(
148            str.to_glib_none().0,
149            style.as_mut_ptr(),
150            warn.into_glib(),
151        ));
152        if ret {
153            Some(from_glib(style.assume_init()))
154        } else {
155            None
156        }
157    }
158}
159
160#[doc(alias = "pango_parse_variant")]
161pub fn parse_variant(str: &str, warn: bool) -> Option<Variant> {
162    unsafe {
163        let mut variant = std::mem::MaybeUninit::uninit();
164        let ret = from_glib(ffi::pango_parse_variant(
165            str.to_glib_none().0,
166            variant.as_mut_ptr(),
167            warn.into_glib(),
168        ));
169        if ret {
170            Some(from_glib(variant.assume_init()))
171        } else {
172            None
173        }
174    }
175}
176
177#[doc(alias = "pango_parse_weight")]
178pub fn parse_weight(str: &str, warn: bool) -> Option<Weight> {
179    unsafe {
180        let mut weight = std::mem::MaybeUninit::uninit();
181        let ret = from_glib(ffi::pango_parse_weight(
182            str.to_glib_none().0,
183            weight.as_mut_ptr(),
184            warn.into_glib(),
185        ));
186        if ret {
187            Some(from_glib(weight.assume_init()))
188        } else {
189            None
190        }
191    }
192}
193
194#[doc(alias = "pango_quantize_line_geometry")]
195pub fn quantize_line_geometry(thickness: &mut i32, position: &mut i32) {
196    unsafe {
197        ffi::pango_quantize_line_geometry(thickness, position);
198    }
199}
200
201//#[cfg(feature = "v1_44")]
202//#[cfg_attr(docsrs, doc(cfg(feature = "v1_44")))]
203//#[doc(alias = "pango_tailor_break")]
204//pub fn tailor_break(text: &str, analysis: &mut Analysis, offset: i32, attrs: /*Ignored*/Vec<LogAttr>) {
205//    unsafe { TODO: call ffi:pango_tailor_break() }
206//}
207
208#[doc(alias = "pango_unichar_direction")]
209pub fn unichar_direction(ch: char) -> Direction {
210    unsafe { from_glib(ffi::pango_unichar_direction(ch.into_glib())) }
211}
212
213#[doc(alias = "pango_units_from_double")]
214pub fn units_from_double(d: f64) -> i32 {
215    unsafe { ffi::pango_units_from_double(d) }
216}
217
218#[doc(alias = "pango_units_to_double")]
219pub fn units_to_double(i: i32) -> f64 {
220    unsafe { ffi::pango_units_to_double(i) }
221}
222
223#[doc(alias = "pango_version")]
224pub fn version() -> i32 {
225    unsafe { ffi::pango_version() }
226}
227
228#[doc(alias = "pango_version_check")]
229pub fn version_check(
230    required_major: i32,
231    required_minor: i32,
232    required_micro: i32,
233) -> Option<glib::GString> {
234    unsafe {
235        from_glib_none(ffi::pango_version_check(
236            required_major,
237            required_minor,
238            required_micro,
239        ))
240    }
241}
242
243#[doc(alias = "pango_version_string")]
244pub fn version_string() -> glib::GString {
245    unsafe { from_glib_none(ffi::pango_version_string()) }
246}