1#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
6#![allow(
7 clippy::approx_constant,
8 clippy::type_complexity,
9 clippy::unreadable_literal,
10 clippy::upper_case_acronyms
11)]
12#![cfg_attr(docsrs, feature(doc_cfg))]
13
14use cairo_sys as cairo;
15use glib_sys as glib;
16use pango_sys as pango;
17
18#[allow(unused_imports)]
19use libc::{FILE, intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t};
20#[cfg(unix)]
21#[allow(unused_imports)]
22use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
23#[allow(unused_imports)]
24use std::ffi::{
25 c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
26};
27
28#[allow(unused_imports)]
29use glib::{GType, gboolean, gconstpointer, gpointer};
30
31pub type PangoCairoShapeRendererFunc = Option<
33 unsafe extern "C" fn(*mut cairo::cairo_t, *mut pango::PangoAttrShape, gboolean, gpointer),
34>;
35
36#[repr(C)]
38#[allow(dead_code)]
39pub struct PangoCairoFont {
40 _data: [u8; 0],
41 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
42}
43
44impl ::std::fmt::Debug for PangoCairoFont {
45 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
46 write!(f, "PangoCairoFont @ {self:p}")
47 }
48}
49
50#[repr(C)]
51#[allow(dead_code)]
52pub struct PangoCairoFontMap {
53 _data: [u8; 0],
54 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
55}
56
57impl ::std::fmt::Debug for PangoCairoFontMap {
58 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
59 write!(f, "PangoCairoFontMap @ {self:p}")
60 }
61}
62
63unsafe extern "C" {
64
65 pub fn pango_cairo_font_get_type() -> GType;
69 pub fn pango_cairo_font_get_scaled_font(
70 font: *mut PangoCairoFont,
71 ) -> *mut cairo::cairo_scaled_font_t;
72
73 pub fn pango_cairo_font_map_get_type() -> GType;
77 pub fn pango_cairo_font_map_get_default() -> *mut pango::PangoFontMap;
78 pub fn pango_cairo_font_map_new() -> *mut pango::PangoFontMap;
79 pub fn pango_cairo_font_map_new_for_font_type(
80 fonttype: cairo::cairo_font_type_t,
81 ) -> *mut pango::PangoFontMap;
82 pub fn pango_cairo_font_map_create_context(
83 fontmap: *mut PangoCairoFontMap,
84 ) -> *mut pango::PangoContext;
85 pub fn pango_cairo_font_map_get_font_type(
86 fontmap: *mut PangoCairoFontMap,
87 ) -> cairo::cairo_font_type_t;
88 pub fn pango_cairo_font_map_get_resolution(fontmap: *mut PangoCairoFontMap) -> c_double;
89 pub fn pango_cairo_font_map_set_default(fontmap: *mut PangoCairoFontMap);
90 pub fn pango_cairo_font_map_set_resolution(fontmap: *mut PangoCairoFontMap, dpi: c_double);
91
92 pub fn pango_cairo_context_get_font_options(
96 context: *mut pango::PangoContext,
97 ) -> *const cairo::cairo_font_options_t;
98 pub fn pango_cairo_context_get_resolution(context: *mut pango::PangoContext) -> c_double;
99 pub fn pango_cairo_context_get_shape_renderer(
100 context: *mut pango::PangoContext,
101 data: *mut gpointer,
102 ) -> PangoCairoShapeRendererFunc;
103 pub fn pango_cairo_context_set_font_options(
104 context: *mut pango::PangoContext,
105 options: *const cairo::cairo_font_options_t,
106 );
107 pub fn pango_cairo_context_set_resolution(context: *mut pango::PangoContext, dpi: c_double);
108 pub fn pango_cairo_context_set_shape_renderer(
109 context: *mut pango::PangoContext,
110 func: PangoCairoShapeRendererFunc,
111 data: gpointer,
112 dnotify: glib::GDestroyNotify,
113 );
114 pub fn pango_cairo_create_context(cr: *mut cairo::cairo_t) -> *mut pango::PangoContext;
115 pub fn pango_cairo_create_layout(cr: *mut cairo::cairo_t) -> *mut pango::PangoLayout;
116 pub fn pango_cairo_error_underline_path(
117 cr: *mut cairo::cairo_t,
118 x: c_double,
119 y: c_double,
120 width: c_double,
121 height: c_double,
122 );
123 pub fn pango_cairo_glyph_string_path(
124 cr: *mut cairo::cairo_t,
125 font: *mut pango::PangoFont,
126 glyphs: *mut pango::PangoGlyphString,
127 );
128 pub fn pango_cairo_layout_line_path(cr: *mut cairo::cairo_t, line: *mut pango::PangoLayoutLine);
129 pub fn pango_cairo_layout_path(cr: *mut cairo::cairo_t, layout: *mut pango::PangoLayout);
130 #[cfg(feature = "v1_58")]
131 #[cfg_attr(docsrs, doc(cfg(feature = "v1_58")))]
132 pub fn pango_cairo_layout_path_for_components(
133 cr: *mut cairo::cairo_t,
134 layout: *mut pango::PangoLayout,
135 components: pango::PangoRenderComponent,
136 );
137 pub fn pango_cairo_show_error_underline(
138 cr: *mut cairo::cairo_t,
139 x: c_double,
140 y: c_double,
141 width: c_double,
142 height: c_double,
143 );
144 pub fn pango_cairo_show_glyph_item(
145 cr: *mut cairo::cairo_t,
146 text: *const c_char,
147 glyph_item: *mut pango::PangoGlyphItem,
148 );
149 pub fn pango_cairo_show_glyph_string(
150 cr: *mut cairo::cairo_t,
151 font: *mut pango::PangoFont,
152 glyphs: *mut pango::PangoGlyphString,
153 );
154 pub fn pango_cairo_show_layout(cr: *mut cairo::cairo_t, layout: *mut pango::PangoLayout);
155 pub fn pango_cairo_show_layout_line(cr: *mut cairo::cairo_t, line: *mut pango::PangoLayoutLine);
156 pub fn pango_cairo_update_context(cr: *mut cairo::cairo_t, context: *mut pango::PangoContext);
157 pub fn pango_cairo_update_layout(cr: *mut cairo::cairo_t, layout: *mut pango::PangoLayout);
158
159}