///|
#borrow(text, analysis)
extern "c" fn moonbit_pango_shape(
text : Bytes,
length : Int,
analysis : Analysis,
) -> GlyphString = "moonbit_pango_shape"
///|
/// Converts an itemized text segment into glyphs.
pub fn shape(text : String, length : Int, analysis : Analysis) -> GlyphString {
moonbit_pango_shape(@encoding/utf8.encode(text), length, analysis)
}
///|
#borrow(item_text, paragraph_text, analysis)
extern "c" fn moonbit_pango_shape_full(
item_text : Bytes,
item_length : Int,
paragraph_text : @glib.Nullable[Bytes],
paragraph_length : Int,
analysis : Analysis,
) -> GlyphString = "moonbit_pango_shape_full"
///|
/// Shapes an item with optional surrounding paragraph text.
pub fn shape_full(
item_text : String,
item_length : Int,
paragraph_text : String?,
paragraph_length : Int,
analysis : Analysis,
) -> GlyphString {
moonbit_pango_shape_full(
@encoding/utf8.encode(item_text),
item_length,
match paragraph_text {
Some(text) => @glib.Nullable::some(@encoding/utf8.encode(text))
None => @glib.Nullable::null()
},
paragraph_length,
analysis,
)
}
///|
#borrow(item, paragraph_text, log_attrs)
extern "c" fn moonbit_pango_shape_item(
item : Item,
paragraph_text : @glib.Nullable[Bytes],
paragraph_length : Int,
log_attrs : @glib.Nullable[Ref[FixedArray[LogAttr]]],
flags : Int,
) -> GlyphString = "moonbit_pango_shape_item"
///|
/// Shapes an item, applying optional logical attributes and shaping flags.
pub fn shape_item(
item : Item,
paragraph_text : String?,
paragraph_length : Int,
log_attrs : FixedArray[LogAttr]?,
flags : ShapeFlags,
) -> GlyphString {
moonbit_pango_shape_item(
item,
match paragraph_text {
Some(text) => @glib.Nullable::some(@encoding/utf8.encode(text))
None => @glib.Nullable::null()
},
paragraph_length,
match log_attrs {
Some(attrs) => @glib.Nullable::some(Ref(attrs))
None => @glib.Nullable::null()
},
flags.to_int(),
)
}
///|
#borrow(item_text, paragraph_text, analysis)
extern "c" fn moonbit_pango_shape_with_flags(
item_text : Bytes,
item_length : Int,
paragraph_text : @glib.Nullable[Bytes],
paragraph_length : Int,
analysis : Analysis,
flags : Int,
) -> GlyphString = "moonbit_pango_shape_with_flags"
///|
/// Shapes an item with optional paragraph context and shaping flags.
pub fn shape_with_flags(
item_text : String,
item_length : Int,
paragraph_text : String?,
paragraph_length : Int,
analysis : Analysis,
flags : ShapeFlags,
) -> GlyphString {
moonbit_pango_shape_with_flags(
@encoding/utf8.encode(item_text),
item_length,
match paragraph_text {
Some(text) => @glib.Nullable::some(@encoding/utf8.encode(text))
None => @glib.Nullable::null()
},
paragraph_length,
analysis,
flags.to_int(),
)
}