![]() |
![]() |
![]() |
Pango Reference Manual | ![]() |
---|---|---|---|---|
enum PangoGravity; #define PANGO_TYPE_GRAVITY enum PangoGravityHint; #define PANGO_TYPE_GRAVITY_HINT #define PANGO_GRAVITY_IS_VERTICAL (gravity) PangoGravity pango_gravity_get_for_matrix (const PangoMatrix *matrix); PangoGravity pango_gravity_get_for_script (PangoScript script, PangoGravity base_gravity, PangoGravityHint hint);
Since 1.16, Pango is able to correctly lay vertical text out. In fact, it can set layouts of mixed vertical and non-vertical text. This section describes the types used for setting vertical text parameters.
typedef enum { PANGO_GRAVITY_SOUTH, PANGO_GRAVITY_EAST, PANGO_GRAVITY_NORTH, PANGO_GRAVITY_WEST, PANGO_GRAVITY_AUTO } PangoGravity;
The PangoGravity type represents the orientation of glyphs in a segment
of text. This is useful when rendering vertical text layouts. In
those situations, the layout is rotated using a non-identity PangoMatrix,
and then glyph orientation is controlled using PangoGravity.
Not every value in this enumeration makes sense for every usage of
PangoGravity; for example, PANGO_GRAVITY_AUTO
only can be passed to
pango_context_set_base_gravity()
and can only be returned by
pango_context_get_base_gravity()
.
See also: PangoGravityHint
Glyphs stand upright (default) | |
Glyphs are rotated 90 degrees clockwise | |
Glyphs are upside-down | |
Glyphs are rotated 90 degrees counter-clockwise | |
Gravity is resolved from the context matrix |
Since 1.16
#define PANGO_TYPE_GRAVITY (pango_gravity_get_type())
The GObject type for PangoGravity.
typedef enum { PANGO_GRAVITY_HINT_NATURAL, PANGO_GRAVITY_HINT_STRONG, PANGO_GRAVITY_HINT_LINE } PangoGravityHint;
The PangoGravityHint defines how horizontal scripts should behave in a vertical context. That is, English excerpt in a vertical paragraph for example.
See PangoGravity.
scripts will take their natural gravity based on the base gravity and the script. This is the default. | |
always use the base gravity set, regardless of the script. | |
for scripts not in their natural direction (eg. Latin in East gravity), choose per-script gravity such that every script respects the line progression. This means, Latin and Arabic will take opposite gravities and both flow top-to-bottom for example. |
Since 1.16
#define PANGO_TYPE_GRAVITY_HINT (pango_gravity_hint_get_type())
The GObject type for PangoGravity.
#define PANGO_GRAVITY_IS_VERTICAL(gravity)
Whether a PangoGravity represents vertical writing directions.
|
the PangoGravity to check |
Since 1.16
PangoGravity pango_gravity_get_for_matrix (const PangoMatrix *matrix);
Finds the gravity that best matches the rotation component in a PangoMatrix.
|
a PangoMatrix |
Returns : |
the gravity of matrix , which will never be
PANGO_GRAVITY_AUTO , or PANGO_GRAVITY_SOUTH if matrix is NULL
|
Since 1.16
PangoGravity pango_gravity_get_for_script (PangoScript script, PangoGravity base_gravity, PangoGravityHint hint);
Based on the script, base gravity, and hint, returns actual gravity to use in laying out a single PangoItem.
If base_gravity
is PANGO_GRAVITY_AUTO
, it is first replaced with the
preferred gravity of script
. To get the preferred gravity of a script,
pass PANGO_GRAVITY_AUTO
and PANGO_GRAVITY_HINT_STRONG
in.
|
PangoScript to query |
|
base gravity of the paragraph |
|
orientation hint |
Returns : |
resolved gravity suitable to use for a run of text |
Since 1.16