Class GlyphItemIter

All Implemented Interfaces:
PointerInterface

public class GlyphItemIter extends Record
A `PangoGlyphItemIter` is an iterator over the clusters in a
`PangoGlyphItem`.

The *forward direction* of the iterator is the logical direction of text.
That is, with increasing @start_index and @start_char values. If @glyph_item
is right-to-left (that is, if `glyph_item->item->analysis.level` is odd),
then @start_glyph decreases as the iterator moves forward. Moreover,
in right-to-left cases, @start_glyph is greater than @end_glyph.

An iterator should be initialized using either
pango_glyph_item_iter_init_start() or
pango_glyph_item_iter_init_end(), for forward and backward iteration
respectively, and walked over using any desired mixture of
pango_glyph_item_iter_next_cluster() and
pango_glyph_item_iter_prev_cluster().

A common idiom for doing a forward iteration over the clusters is:

```
PangoGlyphItemIter cluster_iter;
gboolean have_cluster;

for (have_cluster = pango_glyph_item_iter_init_start (&cluster_iter,
glyph_item, text);
have_cluster;
have_cluster = pango_glyph_item_iter_next_cluster (&cluster_iter))
{
...
}
```

Note that @text is the start of the text for layout, which is then
indexed by `glyph_item->item->offset` to get to the text of @glyph_item.
The @start_index and @end_index values can directly index into @text. The
@start_glyph, @end_glyph, @start_char, and @end_char values however are
zero-based for the @glyph_item. For each cluster, the item pointed at by
the start variables is included in the cluster while the one pointed at by
end variables is not.

None of the members of a `PangoGlyphItemIter` should be modified manually.

https://docs.gtk.org/Pango/struct.GlyphItemIter.html

  • Field Details

  • Constructor Details

    • GlyphItemIter

      public GlyphItemIter(PointerContainer pointer)
    • GlyphItemIter

      public GlyphItemIter()
  • Method Details

    • getClassHandler

      public static ClassHandler getClassHandler()
    • setFieldGlyphItem

      public void setFieldGlyphItem(GlyphItem glyph_item)
    • getFieldGlyphItem

      public GlyphItem getFieldGlyphItem()
    • setFieldText

      public void setFieldText(Str text)
    • getFieldText

      public Str getFieldText()
    • setFieldStartGlyph

      public void setFieldStartGlyph(int start_glyph)
    • getFieldStartGlyph

      public int getFieldStartGlyph()
    • setFieldStartIndex

      public void setFieldStartIndex(int start_index)
    • getFieldStartIndex

      public int getFieldStartIndex()
    • setFieldStartChar

      public void setFieldStartChar(int start_char)
    • getFieldStartChar

      public int getFieldStartChar()
    • setFieldEndGlyph

      public void setFieldEndGlyph(int end_glyph)
    • getFieldEndGlyph

      public int getFieldEndGlyph()
    • setFieldEndIndex

      public void setFieldEndIndex(int end_index)
    • getFieldEndIndex

      public int getFieldEndIndex()
    • setFieldEndChar

      public void setFieldEndChar(int end_char)
    • getFieldEndChar

      public int getFieldEndChar()
    • copy

      public GlyphItemIter copy()
      Make a shallow copy of an existing `PangoGlyphItemIter` structure.
      Returns:
      the newly allocated `PangoGlyphItemIter`
    • free

      public void free()
      Frees a `PangoGlyphItem`Iter.
    • initEnd

      public boolean initEnd(@Nonnull GlyphItem glyph_item, @Nonnull Str text)
      Initializes a `PangoGlyphItemIter` structure to point to the
      last cluster in a glyph item.

      See `PangoGlyphItemIter` for details of cluster orders.
      Parameters:
      glyph_item - the glyph item to iterate over
      text - text corresponding to the glyph item
      Returns:
      %FALSE if there are no clusters in the glyph item
    • initEnd

      public boolean initEnd(@Nonnull GlyphItem glyph_item, String text)
      Initializes a `PangoGlyphItemIter` structure to point to the
      last cluster in a glyph item.

      See `PangoGlyphItemIter` for details of cluster orders.
      Parameters:
      glyph_item - the glyph item to iterate over
      text - text corresponding to the glyph item
      Returns:
      %FALSE if there are no clusters in the glyph item
    • initStart

      public boolean initStart(@Nonnull GlyphItem glyph_item, @Nonnull Str text)
      Initializes a `PangoGlyphItemIter` structure to point to the
      first cluster in a glyph item.

      See `PangoGlyphItemIter` for details of cluster orders.
      Parameters:
      glyph_item - the glyph item to iterate over
      text - text corresponding to the glyph item
      Returns:
      %FALSE if there are no clusters in the glyph item
    • initStart

      public boolean initStart(@Nonnull GlyphItem glyph_item, String text)
      Initializes a `PangoGlyphItemIter` structure to point to the
      first cluster in a glyph item.

      See `PangoGlyphItemIter` for details of cluster orders.
      Parameters:
      glyph_item - the glyph item to iterate over
      text - text corresponding to the glyph item
      Returns:
      %FALSE if there are no clusters in the glyph item
    • nextCluster

      public boolean nextCluster()
      Advances the iterator to the next cluster in the glyph item.

      See `PangoGlyphItemIter` for details of cluster orders.
      Returns:
      %TRUE if the iterator was advanced, %FALSE if we were already on the last cluster.
    • prevCluster

      public boolean prevCluster()
      Moves the iterator to the preceding cluster in the glyph item.
      See `PangoGlyphItemIter` for details of cluster orders.
      Returns:
      %TRUE if the iterator was moved, %FALSE if we were already on the first cluster.
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()