W Wrapl, The Programming Language

Libraries:Gtk:Pango:LayoutIter

Types

T

Constants

Nil : T

Functions

GetType() : Gtk.GObject.Type.T



Methods

:"="(_ @ T, _ @ T)

:AtLastLine(self @ T) : Std.Symbol.T

Determines whether iter is on the last line of the layout.

iter a T
Returns TRUE if iter is on the last line.


:Copy(self @ T) : Gtk.Pango.LayoutIter.T

Copies a T.

iter a T, may be NULL
Returns the newly allocated T, which should be freed with Free, or NULL if iter was NULL.


:Free(self @ T) : Std.Object.T

Frees an iterator that's no longer in use.

iter a T, may be NULL


:GetBaseline(self @ T) : Std.Integer.SmallT

Gets the Y position of the current line's baseline, in layout coordinates (origin at top left of the entire layout).

iter a T
Returns baseline of current line.


:GetCharExtents(self @ T, logical_rect @ Gtk.Pango.Rectangle.T) : Std.Object.T

Gets the extents of the current character, in layout coordinates (origin is the top left of the entire layout). Only logical extents can sensibly be obtained for characters; ink extents make sense only down to the level of clusters.

iter a T
logical_rect rectangle to fill with logical extents


:GetClusterExtents(self @ T, ink_rect @ Gtk.Pango.Rectangle.T, logical_rect @ Gtk.Pango.Rectangle.T) : Std.Object.T

Gets the extents of the current cluster, in layout coordinates (origin is the top left of the entire layout).

iter a T
ink_rect rectangle to fill with ink extents, or NULL. [out][allow-none]
logical_rect rectangle to fill with logical extents, or NULL. [out][allow-none]


:GetIndex(self @ T) : Std.Integer.SmallT

Gets the current byte index. Note that iterating forward by char moves in visual order, not logical order, so indexes may not be sequential. Also, the index may be equal to the length of the text in the layout, if on the NULL run (see GetRun).

iter a T
Returns current byte index.


:GetLayout(self @ T) : Gtk.Pango.Layout.T

Gets the layout associated with a T.

iter a T
Returns the layout associated with iter. [transfer none]


:GetLayoutExtents(self @ T, ink_rect @ Gtk.Pango.Rectangle.T, logical_rect @ Gtk.Pango.Rectangle.T) : Std.Object.T

Obtains the extents of the Gtk.Pango.Layout.T being iterated over. ink_rect or logical_rect can be NULL if you aren't interested in them.

iter a T
ink_rect rectangle to fill with ink extents, or NULL. [out][allow-none]
logical_rect rectangle to fill with logical extents, or NULL. [out][allow-none]


:GetLine(self @ T) : Gtk.Pango.LayoutLine.T

Gets the current line.

Use the faster GetLineReadonly if you do not plan to modify the contents of the line (glyphs, glyph widths, etc.).

iter a T
Returns the current line.


:GetLineExtents(self @ T, ink_rect @ Gtk.Pango.Rectangle.T, logical_rect @ Gtk.Pango.Rectangle.T) : Std.Object.T

Obtains the extents of the current line. ink_rect or logical_rect can be NULL if you aren't interested in them. Extents are in layout coordinates (origin is the top-left corner of the entire Gtk.Pango.Layout.T). Thus the extents returned by this function will be the same width/height but not at the same x/y as the extents returned from Gtk.Pango.LayoutLine.GetExtents.

iter a T
ink_rect rectangle to fill with ink extents, or NULL. [out][allow-none]
logical_rect rectangle to fill with logical extents, or NULL. [out][allow-none]


:GetLineReadonly(self @ T) : Gtk.Pango.LayoutLine.T

Gets the current line for read-only access.

This is a faster alternative to GetLine, but the user is not expected to modify the contents of the line (glyphs, glyph widths, etc.).

iter a T
Returns the current line, that should not be modified.


:GetLineYrange(self @ T, y0_ @ Std.Object.T, y1_ @ Std.Object.T) : Std.Object.T

Divides the vertical space in the Gtk.Pango.Layout.T being iterated over between the lines in the layout, and returns the space belonging to the current line. A line's range includes the line's logical extents, plus half of the spacing above and below the line, if Gtk.Pango.Layout.SetSpacing has been called to set layout spacing. The Y positions are in layout coordinates (origin at top left of the entire layout).

iter a T
y0_ start of line, or NULL. [out][allow-none]
y1_ end of line, or NULL. [out][allow-none]


:GetRun(self @ T) : Gtk.Pango.LayoutRun.T

Gets the current run. When iterating by run, at the end of each line, there's a position with a NULL run, so this function can return NULL. The NULL run at the end of each line ensures that all lines have at least one run, even lines consisting of only a newline.

Use the faster GetRunReadonly if you do not plan to modify the contents of the run (glyphs, glyph widths, etc.).

iter a T
Returns the current run. [transfer none]


:GetRunExtents(self @ T, ink_rect @ Gtk.Pango.Rectangle.T, logical_rect @ Gtk.Pango.Rectangle.T) : Std.Object.T

Gets the extents of the current run in layout coordinates (origin is the top left of the entire layout).

iter a T
ink_rect rectangle to fill with ink extents, or NULL. [out][allow-none]
logical_rect rectangle to fill with logical extents, or NULL. [out][allow-none]


:GetRunReadonly(self @ T) : Gtk.Pango.LayoutRun.T

Gets the current run. When iterating by run, at the end of each line, there's a position with a NULL run, so this function can return NULL. The NULL run at the end of each line ensures that all lines have at least one run, even lines consisting of only a newline.

This is a faster alternative to GetRun, but the user is not expected to modify the contents of the run (glyphs, glyph widths, etc.).

iter a T
Returns the current run, that should not be modified. [transfer none]


:NextChar(self @ T) : Std.Symbol.T

Moves iter forward to the next character in visual order. If iter was already at the end of the layout, returns FALSE.

iter a T
Returns whether motion was possible.


:NextCluster(self @ T) : Std.Symbol.T

Moves iter forward to the next cluster in visual order. If iter was already at the end of the layout, returns FALSE.

iter a T
Returns whether motion was possible.


:NextLine(self @ T) : Std.Symbol.T

Moves iter forward to the start of the next line. If iter is already on the last line, returns FALSE.

iter a T
Returns whether motion was possible.


:NextRun(self @ T) : Std.Symbol.T

Moves iter forward to the next run in visual order. If iter was already at the end of the layout, returns FALSE.

iter a T
Returns whether motion was possible.


:"~="(_ @ T, _ @ T)