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
// Take a look at the license at the top of the repository in the LICENSE file.
#![cfg_attr(docsrs, feature(doc_cfg))]
#![doc = include_str!("../README.md")]
pub use ffi;
pub use glib;
#[allow(clippy::too_many_arguments)]
#[allow(clippy::derived_hash_with_manual_eq)]
#[allow(clippy::missing_safety_doc)]
mod auto;
pub use crate::{
auto::{functions::*, *},
manual_functions::*,
};
/// The scale between dimensions used for Pango distances and device units.
///
/// The definition of device units is dependent on the output device; it will
/// typically be pixels for a screen, and points for a printer. `PANGO_SCALE` is
/// currently 1024, but this may be changed in the future.
///
/// When setting font sizes, device units are always considered to be
/// points (as in "12 point font"), rather than pixels.
#[doc(alias = "PANGO_SCALE")]
pub const SCALE: i32 = ffi::PANGO_SCALE;
/// Whether the segment should be shifted to center around the baseline.
///
/// This is mainly used in vertical writing directions.
#[doc(alias = "PANGO_ANALYSIS_FLAG_CENTERED_BASELINE")]
pub const ANALYSIS_FLAG_CENTERED_BASELINE: i32 = ffi::PANGO_ANALYSIS_FLAG_CENTERED_BASELINE;
/// Whether this run holds ellipsized text.
#[doc(alias = "PANGO_ANALYSIS_FLAG_IS_ELLIPSIS")]
pub const ANALYSIS_FLAG_IS_ELLIPSIS: i32 = ffi::PANGO_ANALYSIS_FLAG_IS_ELLIPSIS;
/// Whether to add a hyphen at the end of the run during shaping.
#[doc(alias = "PANGO_ANALYSIS_FLAG_NEED_HYPHEN")]
pub const ANALYSIS_FLAG_NEED_HYPHEN: i32 = ffi::PANGO_ANALYSIS_FLAG_NEED_HYPHEN;
/// Value for @start_index in [`Attribute`][crate::Attribute] that indicates
/// the beginning of the text.
#[doc(alias = "PANGO_ATTR_INDEX_FROM_TEXT_BEGINNING")]
pub const ATTR_INDEX_FROM_TEXT_BEGINNING: u32 = ffi::PANGO_ATTR_INDEX_FROM_TEXT_BEGINNING;
/// Value for @end_index in [`Attribute`][crate::Attribute] that indicates
/// the end of the text.
#[doc(alias = "PANGO_ATTR_INDEX_TO_TEXT_END")]
pub const ATTR_INDEX_TO_TEXT_END: u32 = ffi::PANGO_ATTR_INDEX_TO_TEXT_END;
/// A `PangoGlyph` value that indicates a zero-width empty glpyh.
///
/// This is useful for example in shaper modules, to use as the glyph for
/// various zero-width Unicode characters (those passing [`is_zero_width()`][crate::is_zero_width()]).
#[doc(alias = "PANGO_GLYPH_EMPTY")]
pub const GLYPH_EMPTY: Glyph = ffi::PANGO_GLYPH_EMPTY;
/// A `PangoGlyph` value for invalid input.
///
/// [`Layout`][crate::Layout] produces one such glyph per invalid input UTF-8 byte and such
/// a glyph is rendered as a crossed box.
///
/// Note that this value is defined such that it has the `PANGO_GLYPH_UNKNOWN_FLAG`
/// set.
#[doc(alias = "PANGO_GLYPH_INVALID_INPUT")]
pub const GLYPH_INVALID_INPUT: Glyph = ffi::PANGO_GLYPH_INVALID_INPUT;
/// Flag used in `PangoGlyph` to turn a `gunichar` value of a valid Unicode
/// character into an unknown-character glyph for that `gunichar`.
///
/// Such unknown-character glyphs may be rendered as a 'hex box'.
#[doc(alias = "PANGO_GLYPH_UNKNOWN_FLAG")]
pub const GLYPH_UNKNOWN_FLAG: Glyph = ffi::PANGO_GLYPH_UNKNOWN_FLAG;
// rustdoc-stripper-ignore-next
/// The scale factor for three shrinking steps (1 / (1.2 * 1.2 * 1.2)).
pub const SCALE_XX_SMALL: f64 = 0.5787037037037;
// rustdoc-stripper-ignore-next
/// The scale factor for two shrinking steps (1 / (1.2 * 1.2)).
pub const SCALE_X_SMALL: f64 = 0.6944444444444;
// rustdoc-stripper-ignore-next
/// The scale factor for one shrinking step (1 / 1.2).
pub const SCALE_SMALL: f64 = 0.8333333333333;
// rustdoc-stripper-ignore-next
/// The scale factor for normal size (1.0).
pub const SCALE_MEDIUM: f64 = 1.0;
// rustdoc-stripper-ignore-next
/// The scale factor for one magnification step (1.2).
pub const SCALE_LARGE: f64 = 1.2;
// rustdoc-stripper-ignore-next
/// The scale factor for two magnification steps (1.2 * 1.2).
pub const SCALE_X_LARGE: f64 = 1.44;
// rustdoc-stripper-ignore-next
/// The scale factor for three magnification steps (1.2 * 1.2 * 1.2).
pub const SCALE_XX_LARGE: f64 = 1.728;
pub mod prelude;
#[macro_use]
mod attribute;
pub use attribute::IsAttribute;
mod analysis;
pub use analysis::Analysis;
mod attr_class;
pub use attr_class::AttrClass;
mod attr_color;
pub use attr_color::AttrColor;
mod attr_float;
pub use attr_float::AttrFloat;
mod attr_font_desc;
pub use attr_font_desc::AttrFontDesc;
mod attr_font_features;
pub use attr_font_features::AttrFontFeatures;
mod attr_int;
pub use attr_int::AttrInt;
mod attr_iterator;
pub use attr_iterator::{AttrIntoIter, AttrIterator};
mod attr_language;
pub use attr_language::AttrLanguage;
mod attr_list;
mod attr_shape;
pub use attr_shape::AttrShape;
mod attr_size;
pub use attr_size::AttrSize;
mod attr_string;
pub use attr_string::AttrString;
mod color;
mod coverage;
pub use coverage::Coverage;
mod enums;
mod glyph_geometry;
mod manual_functions;
pub use glyph_geometry::GlyphGeometry;
mod glyph_info;
pub use glyph_info::GlyphInfo;
mod glyph_item;
mod glyph_item_iter;
pub use glyph_item_iter::{GlyphItemIntoIter, GlyphItemIter};
mod glyph_string;
mod item;
mod language;
mod layout;
pub use layout::HitPosition;
mod matrix;
mod rectangle;
pub use rectangle::Rectangle;
mod script_iter;
pub use script_iter::{ScriptIntoIter, ScriptIter};
mod tab_array;