Pango.Item

Fields

Name

Type

Access

Description

analysis

Pango.Analysis

r/w

analysis results for the item.

length

int

r/w

length of this item in bytes.

num_chars

int

r/w

number of Unicode characters in the item.

offset

int

r/w

byte offset of the start of this item in text.

Methods

class

new ()

apply_attrs (iter)

copy ()

free ()

get_char_offset ()

split (split_index, split_offset)

Details

class Pango.Item

The PangoItem structure stores information about a segment of text.

You typically obtain PangoItems by itemizing a piece of text with [func`itemize`].

classmethod new()[source]
Returns:

the newly allocated PangoItem, which should be freed with [method`Pango`.Item.free].

Return type:

Pango.Item

Creates a new PangoItem structure initialized to default values.

apply_attrs(iter)[source]
Parameters:

iter (Pango.AttrIterator) – a PangoAttrIterator

Add attributes to a PangoItem.

The idea is that you have attributes that don’t affect itemization, such as font features, so you filter them out using [method`Pango`.AttrList.filter], itemize your text, then reapply the attributes to the resulting items using this function.

The iter should be positioned before the range of the item, and will be advanced past it. This function is meant to be called in a loop over the items resulting from itemization, while passing the iter to each call.

New in version 1.44.

copy()[source]
Returns:

the newly allocated PangoItem

Return type:

Pango.Item or None

Copy an existing PangoItem structure.

free()[source]

Free a PangoItem and all associated memory.

get_char_offset()[source]
Returns:

the character offset of the item from the beginning of the itemized text, or -1

Return type:

int

Returns the character offset of the item from the beginning of the itemized text.

If the item has not been obtained from Pango’s itemization machinery, then the character offset is not available. In that case, this function returns -1.

New in version 1.54.

split(split_index, split_offset)[source]
Parameters:
  • split_index (int) – byte index of position to split item, relative to the start of the item

  • split_offset (int) – number of chars between start of self and split_index

Returns:

new item representing text before split_index, which should be freed with [method`Pango`.Item.free].

Return type:

Pango.Item

Modifies self to cover only the text after split_index, and returns a new item that covers the text before split_index that used to be in self.

You can think of split_index as the length of the returned item. split_index may not be 0, and it may not be greater than or equal to the length of self (that is, there must be at least one byte assigned to each item, you can’t create a zero-length item). split_offset is the length of the first item in chars, and must be provided because the text used to generate the item isn’t available, so pango_item_split() can’t count the str length of the split items itself.