Class AttrIterator

java.lang.Object
org.javagi.base.ProxyInstance
org.gnome.pango.AttrIterator
All Implemented Interfaces:
Proxy

@Generated("org.javagi.JavaGI") public class AttrIterator extends ProxyInstance

A PangoAttrIterator is used to iterate through a PangoAttrList.

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

  • Constructor Details

    • AttrIterator

      public AttrIterator(MemorySegment address)
      Create a AttrIterator proxy instance for the provided memory address.
      Parameters:
      address - the memory address of the native object
  • Method Details

    • getType

      public static @Nullable Type getType()
      Get the GType of the AttrIterator class.
      Returns:
      the GType
    • getMemoryLayout

      public static MemoryLayout getMemoryLayout()
      The memory layout of the native struct.
      Returns:
      the memory layout
    • copy

      public AttrIterator copy()
      Copy a PangoAttrIterator.
      Returns:
      the newly allocated PangoAttrIterator, which should be freed with destroy()
    • destroy

      public void destroy()
      Destroy a PangoAttrIterator and free all associated memory.
    • get

      public @Nullable Attribute get(AttrType type)

      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
      Returns:
      the current attribute of the given type, or null if no attribute of that type applies to the current location.
    • getAttrs

      public SList<Attribute> getAttrs()
      Gets a list of all attributes at the current position of the iterator.
      Returns:
      a list of all attributes for the current range. To free this value, call Attribute.destroy() on each value and g_slist_free() on the list.
      Since:
      1.2
    • getFont

      public void getFont(FontDescription desc, @Nullable Out<Language> language, @Nullable Out<SList<Attribute>> extraAttrs)
      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.setFamilyStatic(String) 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)).
      language - location to store language tag for item, or null if none is found.
      extraAttrs - location in which to store a list of non-font attributes at the the current position; only the highest priority value of each attribute will be added to this list. In order to free this value, you must call Attribute.destroy() on each member.
    • next

      public boolean next()
      Advance the iterator until the next change of style.
      Returns:
      false if the iterator is at the end of the list, otherwise true
    • range

      public void range(Out<Integer> start, Out<Integer> end)

      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.

      Parameters:
      start - location to store the start of the range
      end - location to store the end of the range