Class
PangoLayout
Description [src]
final class Pango.Layout : GObject.Object {
/* No available fields */
}
A PangoLayout
structure represents an entire paragraph of text.
While complete access to the layout capabilities of Pango is provided
using the detailed interfaces for itemization and shaping, using
that functionality directly involves writing a fairly large amount
of code. PangoLayout
provides a high-level driver for formatting
entire paragraphs of text at once. This includes paragraph-level
functionality such as line breaking, justification, alignment and ellipsization.
A PangoLayout
is initialized with a PangoContext
, UTF-8 string
and set of attributes for that string. Once that is done, the set of
formatted lines can be extracted from the object, the layout can be
rendered, and conversion between logical character positions within
the layout’s text, and the physical position of the resulting glyphs
can be made.
There are a number of parameters to adjust the formatting of a
PangoLayout
. The following image shows adjustable parameters
(on the left) and font metrics (on the right):
The following images demonstrate the effect of alignment and justification on the layout of text:
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
It is possible, as well, to ignore the 2-D setup,
and simply treat the results of a PangoLayout
as a list of lines.
Constructors
pango_layout_new
Create a new PangoLayout
object with attributes initialized to
default values for a particular PangoContext
.
Functions
pango_layout_deserialize
Loads data previously created via pango_layout_serialize()
.
Available since: 1.50
Instance methods
pango_layout_context_changed
Forces recomputation of any state in the PangoLayout
that
might depend on the layout’s context.
pango_layout_copy
Creates a deep copy-by-value of the layout.
pango_layout_get_alignment
Gets the alignment for the layout: how partial lines are positioned within the horizontal space available.
pango_layout_get_attributes
Gets the attribute list for the layout, if any.
pango_layout_get_auto_dir
Gets whether to calculate the base direction for the layout according to its contents.
Available since: 1.4
pango_layout_get_baseline
Gets the Y position of baseline of the first line in layout
.
Available since: 1.22
pango_layout_get_caret_pos
Given an index within a layout, determines the positions that of the strong and weak cursors if the insertion point is at that index.
Available since: 1.50
pango_layout_get_character_count
Returns the number of Unicode characters in the
the text of layout
.
Available since: 1.30
pango_layout_get_context
Retrieves the PangoContext
used for this layout.
pango_layout_get_cursor_pos
Given an index within a layout, determines the positions that of the strong and weak cursors if the insertion point is at that index.
pango_layout_get_direction
Gets the text direction at the given character position in layout
.
Available since: 1.46
pango_layout_get_ellipsize
Gets the type of ellipsization being performed for layout
.
Available since: 1.6
pango_layout_get_extents
Computes the logical and ink extents of layout
.
pango_layout_get_font_description
Gets the font description for the layout, if any.
Available since: 1.8
pango_layout_get_indent
Gets the paragraph indent width in Pango units.
pango_layout_get_iter
Returns an iterator to iterate over the visual extents of the layout.
pango_layout_get_justify
Gets whether each complete line should be stretched to fill the entire width of the layout.
pango_layout_get_justify_last_line
Gets whether the last line should be stretched to fill the entire width of the layout.
Available since: 1.50
pango_layout_get_line
Retrieves a particular line from a PangoLayout
.
pango_layout_get_line_count
Retrieves the count of lines for the layout
.
pango_layout_get_line_readonly
Retrieves a particular line from a PangoLayout
.
Available since: 1.16
pango_layout_get_lines
Returns the lines of the layout
as a list.
pango_layout_get_log_attrs
Retrieves an array of logical attributes for each character in
the layout
.
pango_layout_get_log_attrs_readonly
Retrieves an array of logical attributes for each character in
the layout
.
Available since: 1.30
pango_layout_get_pixel_extents
Computes the logical and ink extents of layout
in device units.
pango_layout_get_pixel_size
Determines the logical width and height of a PangoLayout
in device units.
pango_layout_get_single_paragraph_mode
Obtains whether layout
is in single paragraph mode.
pango_layout_get_size
Determines the logical width and height of a PangoLayout
in Pango units.
pango_layout_get_spacing
Gets the amount of spacing between the lines of the layout.
pango_layout_get_tabs
Gets the current PangoTabArray
used by this layout.
pango_layout_get_text
Gets the text in the layout.
pango_layout_get_unknown_glyphs_count
Counts the number of unknown glyphs in layout
.
Available since: 1.16
pango_layout_get_width
Gets the width to which the lines of the PangoLayout
should wrap.
pango_layout_get_wrap
Gets the wrap mode for the layout.
pango_layout_index_to_line_x
Converts from byte index_
within the layout
to line and X position.
pango_layout_index_to_pos
Converts from an index within a PangoLayout
to the onscreen position
corresponding to the grapheme at that index.
pango_layout_is_ellipsized
Queries whether the layout had to ellipsize any paragraphs.
Available since: 1.16
pango_layout_is_wrapped
Queries whether the layout had to wrap any paragraphs.
Available since: 1.16
pango_layout_move_cursor_visually
Computes a new cursor position from an old position and a direction.
pango_layout_serialize
Serializes the layout
for later deserialization via pango_layout_deserialize()
.
Available since: 1.50
pango_layout_set_alignment
Sets the alignment for the layout: how partial lines are positioned within the horizontal space available.
pango_layout_set_attributes
Sets the text attributes for a layout object.
pango_layout_set_auto_dir
Sets whether to calculate the base direction for the layout according to its contents.
Available since: 1.4
pango_layout_set_ellipsize
Sets the type of ellipsization being performed for layout
.
Available since: 1.6
pango_layout_set_font_description
Sets the default font description for the layout.
pango_layout_set_height
Sets the height to which the PangoLayout
should be ellipsized at.
Available since: 1.20
pango_layout_set_indent
Sets the width in Pango units to indent each paragraph.
pango_layout_set_justify
Sets whether each complete line should be stretched to fill the entire width of the layout.
pango_layout_set_justify_last_line
Sets whether the last line should be stretched to fill the entire width of the layout.
Available since: 1.50
pango_layout_set_markup
Sets the layout text and attribute list from marked-up text.
pango_layout_set_markup_with_accel
Sets the layout text and attribute list from marked-up text.
pango_layout_set_single_paragraph_mode
Sets the single paragraph mode of layout
.
pango_layout_set_spacing
Sets the amount of spacing in Pango units between the lines of the layout.
pango_layout_set_tabs
Sets the tabs to use for layout
, overriding the default tabs.
pango_layout_set_text
Sets the text of the layout.
pango_layout_set_width
Sets the width to which the lines of the PangoLayout
should wrap or ellipsized.
pango_layout_set_wrap
Sets the wrap mode.
pango_layout_write_to_file
A convenience method to serialize a layout to a file.
Available since: 1.50
pango_layout_xy_to_index
Converts from X and Y position within a layout to the byte index to the character at that logical position.
Signals
Signals inherited from GObject (1)
GObject.Object::notify
The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.