Skip to content

Pango.AttrIterator

record (struct)

A PangoAttrIterator is used to iterate through a PangoAttrList.

A new iterator is created with AttrList.get_iterator. Once the iterator is created, it can be advanced through the style changes in the text using AttrIterator.next. At each style change, the range of the current style segment and the attributes currently in effect can be queried.

Methods

copy

def copy(self) -> AttrIterator

Copy a PangoAttrIterator.

destroy

def destroy(self) -> None

Destroy a PangoAttrIterator and free all associated memory.

get

def get(self, type: AttrType | int) -> Attribute | None

Find the current attribute of a particular type at the iterator location.

When multiple attributes of the same type overlap, the attribute whose range starts closest to the current location is used.

Parameters:

  • type — the type of attribute to find

get_attrs

def get_attrs(self) -> list[Attribute]

Gets a list of all attributes at the current position of the iterator.

get_font

def get_font(self, desc: FontDescription) -> tuple[Language, list[Attribute]]

Get the font and other attributes at the current iterator position.

Parameters:

  • desc — a PangoFontDescription to fill in with the current values. The family name in this structure will be set using FontDescription.set_family_static using values from an attribute in the PangoAttrList associated with the iterator, so if you plan to keep it around, you must call: pango_font_description_set_family (desc, pango_font_description_get_family (desc)).

next

def next(self) -> bool

Advance the iterator until the next change of style.

range

def range(self) -> tuple[int, int]

Get the range of the current segment.

Note that the stored return values are signed, not unsigned like the values in PangoAttribute. To deal with this API oversight, stored return values that wouldn't fit into a signed integer are clamped to G_MAXINT.