GlyphItem#
- class GlyphItem(*args, **kwargs)#
A PangoGlyphItem is a pair of a PangoItem and the glyphs
resulting from shaping the items text.
As an example of the usage of PangoGlyphItem, the results
of shaping text with PangoLayout is a list of PangoLayoutLine,
each of which contains a list of PangoGlyphItem.
Methods#
- class GlyphItem
- apply_attrs(text: str, list: AttrList) list[GlyphItem]#
Splits a shaped item (
PangoGlyphItem) into multiple items based on an attribute list.The idea is that if you have attributes that don’t affect shaping, such as color or underline, to avoid affecting shaping, you filter them out (
filter), apply the shaping process and then reapply them to the result using this function.All attributes that start or end inside a cluster are applied to that cluster; for instance, if half of a cluster is underlined and the other-half strikethrough, then the cluster will end up with both underline and strikethrough attributes. In these cases, it may happen that
item->extra_attrs for some of the result items can have multiple attributes of the same type.This function takes ownership of
glyph_item; it will be reused as one of the elements in the list.Added in version 1.2.
- Parameters:
text – text that
listapplies tolist – a
PangoAttrList
- get_logical_widths(text: str) list[int]#
Given a
PangoGlyphItemand the corresponding text, determine the width corresponding to each character.When multiple characters compose a single cluster, the width of the entire cluster is divided equally among the characters.
See also
get_logical_widths.Added in version 1.26.
- Parameters:
text – text that
glyph_itemcorresponds to (glyph_item->item->offset is an offset from the start oftext)
- letter_space(text: str, log_attrs: list[LogAttr], letter_spacing: int) None#
Adds spacing between the graphemes of
glyph_itemto give the effect of typographic letter spacing.Added in version 1.6.
- Parameters:
text – text that
glyph_itemcorresponds to (glyph_item->item->offset is an offset from the start oftext)log_attrs – logical attributes for the item (the first logical attribute refers to the position before the first character in the item)
letter_spacing – amount of letter spacing to add in Pango units. May be negative, though too large negative values will give ugly results.
- split(text: str, split_index: int) GlyphItem | None#
Modifies
origto cover only the text aftersplit_index, and returns a new item that covers the text beforesplit_indexthat used to be inorig.You can think of
split_indexas the length of the returned item.split_indexmay not be 0, and it may not be greater than or equal to the length oforig(that is, there must be at least one byte assigned to each item, you can’t create a zero-length item).This function is similar in function to
split()(and uses it internally.)Added in version 1.2.
- Parameters:
text – text to which positions in
origapplysplit_index – byte index of position to split item, relative to the start of the item
Fields#
- class GlyphItem
- end_x_offset#
- Horizontal displacement to apply after th
glyph item. Positive values shift right
- glyphs#
Corresponding
PangoGlyphString
- item#
Corresponding
PangoItem
- start_x_offset#
- Horizontal displacement to apply before the
glyph item. Positive values shift right
- y_offset#
- Shift of the baseline, relative to the baseline
of the containing line. Positive values shift upwards