<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
  "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
[
<!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
<!ENTITY version SYSTEM "version.xml">
]>
<refentry id="pango-Vertical-Text">
<refmeta>
<refentrytitle role="top_of_page" id="pango-Vertical-Text.top_of_page">Vertical Text</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>PANGO Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>Vertical Text</refname>
<refpurpose>Laying text out in vertical directions</refpurpose>
</refnamediv>

<refsect1 id="pango-Vertical-Text.functions" role="functions_proto">
<title role="functions_proto.title">Functions</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="functions_proto_type" colwidth="150px"/>
<colspec colname="functions_proto_name"/>
<tbody>
<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="PANGO-GRAVITY-IS-IMPROPER:CAPS">PANGO_GRAVITY_IS_IMPROPER</link><phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="PANGO-GRAVITY-IS-VERTICAL:CAPS">PANGO_GRAVITY_IS_VERTICAL</link><phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="PangoGravity"><returnvalue>PangoGravity</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-gravity-get-for-matrix">pango_gravity_get_for_matrix</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="PangoGravity"><returnvalue>PangoGravity</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-gravity-get-for-script">pango_gravity_get_for_script</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="PangoGravity"><returnvalue>PangoGravity</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-gravity-get-for-script-and-width">pango_gravity_get_for_script_and_width</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="double"><returnvalue>double</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-gravity-to-rotation">pango_gravity_to_rotation</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="pango-Vertical-Text.other" role="other_proto">
<title role="other_proto.title">Types and Values</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="other_proto_type" colwidth="150px"/>
<colspec colname="other_proto_name"/>
<tbody>
<row><entry role="datatype_keyword">enum</entry><entry role="function_name"><link linkend="PangoGravity">PangoGravity</link></entry></row>
<row><entry role="datatype_keyword">enum</entry><entry role="function_name"><link linkend="PangoGravityHint">PangoGravityHint</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="pango-Vertical-Text.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<screen>    <link linkend="GEnum">GEnum</link>
    <phrase role="lineart">&#9500;&#9472;&#9472;</phrase> PangoGravity
    <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> PangoGravityHint
</screen>
</refsect1>


<refsect1 id="pango-Vertical-Text.description" role="desc">
<title role="desc.title">Description</title>
<para>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.</para>
<para>The way this is implemented is through the concept of
<firstterm>gravity</firstterm>.  Gravity of normal Latin text is south.  A
gravity value of east means that glyphs will be rotated ninety degrees
counterclockwise.  So, to render vertical text one needs to set the gravity
and rotate the layout using the matrix machinery already in place.  This has
the huge advantage that most algorithms working on a <link linkend="PangoLayout"><type>PangoLayout</type></link> do not need
any change as the assumption that lines run in the X direction and stack in
the Y direction holds even for vertical text layouts.</para>
<para>Applications should only need to set base gravity on <link linkend="PangoContext"><type>PangoContext</type></link> in use, and
let Pango decide the gravity assigned to each run of text.  This automatically
handles text with mixed scripts.  A very common use is to set the context base
gravity to auto using <link linkend="pango-context-set-base-gravity"><function>pango_context_set_base_gravity()</function></link>
and rotate the layout normally.  Pango will make sure that
Asian languages take the right form, while other scripts are rotated normally.</para>
<para>The correct way to set gravity on a layout is to set it on the context
associated with it using <link linkend="pango-context-set-base-gravity"><function>pango_context_set_base_gravity()</function></link>.  The context
of a layout can be accessed using <link linkend="pango-layout-get-context"><function>pango_layout_get_context()</function></link>.  The currently
set base gravity of the context can be accessed using
<link linkend="pango-context-get-base-gravity"><function>pango_context_get_base_gravity()</function></link> and the <firstterm>resolved</firstterm>
gravity of it using <link linkend="pango-context-get-gravity"><function>pango_context_get_gravity()</function></link>.  The resolved gravity is
the same as the base gravity for the most part, except that if the base
gravity is set to <link linkend="PANGO-GRAVITY-AUTO:CAPS"><literal>PANGO_GRAVITY_AUTO</literal></link>, the resolved gravity will depend
on the current matrix set on context, and is derived using
<link linkend="pango-gravity-get-for-matrix"><function>pango_gravity_get_for_matrix()</function></link>.</para>
<para>The next thing an application may want to set on the context is the
<firstterm>gravity hint</firstterm>.  A <link linkend="PangoGravityHint"><type>PangoGravityHint</type></link> instructs how
different scripts should react to the set base gravity.</para>
<para>Font descriptions have a gravity property too, that can be set using
<link linkend="pango-font-description-set-gravity"><function>pango_font_description_set_gravity()</function></link> and accessed using
<link linkend="pango-font-description-get-gravity"><function>pango_font_description_get_gravity()</function></link>.  However, those are rarely useful
from application code and are mainly used by <link linkend="PangoLayout"><type>PangoLayout</type></link> internally.</para>
<para>Last but not least, one can create <link linkend="PangoAttribute"><type>PangoAttribute</type></link><!---->s for gravity
and gravity hint using <link linkend="pango-attr-gravity-new"><function>pango_attr_gravity_new()</function></link> and
<link linkend="pango-attr-gravity-hint-new"><function>pango_attr_gravity_hint_new()</function></link>.</para>

</refsect1>
<refsect1 id="pango-Vertical-Text.functions_details" role="details">
<title role="details.title">Functions</title>
<refsect2 id="PANGO-GRAVITY-IS-IMPROPER:CAPS" role="macro" condition="since:1.32">
<title>PANGO_GRAVITY_IS_IMPROPER()</title>
<indexterm zone="PANGO-GRAVITY-IS-IMPROPER:CAPS" role="1.32"><primary>PANGO_GRAVITY_IS_IMPROPER</primary></indexterm>
<programlisting language="C">#define             PANGO_GRAVITY_IS_IMPROPER(gravity)</programlisting>
<para>Whether a <link linkend="PangoGravity"><type>PangoGravity</type></link> represents a gravity that results in reversal of text direction.</para>
<refsect3 id="PANGO-GRAVITY-IS-IMPROPER.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>gravity</para></entry>
<entry role="parameter_description"><para>the <link linkend="PangoGravity"><type>PangoGravity</type></link> to check</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="PANGO-GRAVITY-IS-IMPROPER.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if <parameter>gravity</parameter>
is <link linkend="PANGO-GRAVITY-WEST:CAPS"><literal>PANGO_GRAVITY_WEST</literal></link> or <link linkend="PANGO-GRAVITY-NORTH:CAPS"><literal>PANGO_GRAVITY_NORTH</literal></link>,
<link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise.</para>
</refsect3><para role="since">Since: <link linkend="api-index-1.32">1.32</link></para></refsect2>
<refsect2 id="PANGO-GRAVITY-IS-VERTICAL:CAPS" role="macro" condition="since:1.16">
<title>PANGO_GRAVITY_IS_VERTICAL()</title>
<indexterm zone="PANGO-GRAVITY-IS-VERTICAL:CAPS" role="1.16"><primary>PANGO_GRAVITY_IS_VERTICAL</primary></indexterm>
<programlisting language="C">#define             PANGO_GRAVITY_IS_VERTICAL(gravity)</programlisting>
<para>Whether a <link linkend="PangoGravity"><type>PangoGravity</type></link> represents vertical writing directions.</para>
<refsect3 id="PANGO-GRAVITY-IS-VERTICAL.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>gravity</para></entry>
<entry role="parameter_description"><para>the <link linkend="PangoGravity"><type>PangoGravity</type></link> to check</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="PANGO-GRAVITY-IS-VERTICAL.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if <parameter>gravity</parameter>
is <link linkend="PANGO-GRAVITY-EAST:CAPS"><literal>PANGO_GRAVITY_EAST</literal></link> or <link linkend="PANGO-GRAVITY-WEST:CAPS"><literal>PANGO_GRAVITY_WEST</literal></link>,
<link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise.</para>
</refsect3><para role="since">Since: <link linkend="api-index-1.16">1.16</link></para></refsect2>
<refsect2 id="pango-gravity-get-for-matrix" role="function" condition="since:1.16">
<title>pango_gravity_get_for_matrix&#160;()</title>
<indexterm zone="pango-gravity-get-for-matrix" role="1.16"><primary>pango_gravity_get_for_matrix</primary></indexterm>
<programlisting language="C"><link linkend="PangoGravity"><returnvalue>PangoGravity</returnvalue></link>
pango_gravity_get_for_matrix (<parameter>const <link linkend="PangoMatrix"><type>PangoMatrix</type></link> *matrix</parameter>);</programlisting>
<para>Finds the gravity that best matches the rotation component
in a <link linkend="PangoMatrix"><type>PangoMatrix</type></link>.</para>
<refsect3 id="pango-gravity-get-for-matrix.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>matrix</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoMatrix"><type>PangoMatrix</type></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-gravity-get-for-matrix.returns" role="returns">
<title>Returns</title>
<para> the gravity of <parameter>matrix</parameter>
, which will never be
<link linkend="PANGO-GRAVITY-AUTO:CAPS"><literal>PANGO_GRAVITY_AUTO</literal></link>, or <link linkend="PANGO-GRAVITY-SOUTH:CAPS"><literal>PANGO_GRAVITY_SOUTH</literal></link> if <parameter>matrix</parameter>
is <link linkend="NULL:CAPS"><literal>NULL</literal></link></para>
</refsect3><para role="since">Since: <link linkend="api-index-1.16">1.16</link></para></refsect2>
<refsect2 id="pango-gravity-get-for-script" role="function" condition="since:1.16">
<title>pango_gravity_get_for_script&#160;()</title>
<indexterm zone="pango-gravity-get-for-script" role="1.16"><primary>pango_gravity_get_for_script</primary></indexterm>
<programlisting language="C"><link linkend="PangoGravity"><returnvalue>PangoGravity</returnvalue></link>
pango_gravity_get_for_script (<parameter><link linkend="PangoScript"><type>PangoScript</type></link> script</parameter>,
                              <parameter><link linkend="PangoGravity"><type>PangoGravity</type></link> base_gravity</parameter>,
                              <parameter><link linkend="PangoGravityHint"><type>PangoGravityHint</type></link> hint</parameter>);</programlisting>
<para>Based on the script, base gravity, and hint, returns actual gravity
to use in laying out a single <link linkend="PangoItem"><type>PangoItem</type></link>.</para>
<para>If <parameter>base_gravity</parameter>
 is <link linkend="PANGO-GRAVITY-AUTO:CAPS"><literal>PANGO_GRAVITY_AUTO</literal></link>, it is first replaced with the
preferred gravity of <parameter>script</parameter>
.  To get the preferred gravity of a script,
pass <link linkend="PANGO-GRAVITY-AUTO:CAPS"><literal>PANGO_GRAVITY_AUTO</literal></link> and <link linkend="PANGO-GRAVITY-HINT-STRONG:CAPS"><literal>PANGO_GRAVITY_HINT_STRONG</literal></link> in.</para>
<refsect3 id="pango-gravity-get-for-script.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>script</para></entry>
<entry role="parameter_description"><para><link linkend="PangoScript"><type>PangoScript</type></link> to query</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>base_gravity</para></entry>
<entry role="parameter_description"><para>base gravity of the paragraph</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>hint</para></entry>
<entry role="parameter_description"><para>orientation hint</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-gravity-get-for-script.returns" role="returns">
<title>Returns</title>
<para> resolved gravity suitable to use for a run of text
with <parameter>script</parameter>
.</para>
</refsect3><para role="since">Since: <link linkend="api-index-1.16">1.16</link></para></refsect2>
<refsect2 id="pango-gravity-get-for-script-and-width" role="function" condition="since:1.26">
<title>pango_gravity_get_for_script_and_width&#160;()</title>
<indexterm zone="pango-gravity-get-for-script-and-width" role="1.26"><primary>pango_gravity_get_for_script_and_width</primary></indexterm>
<programlisting language="C"><link linkend="PangoGravity"><returnvalue>PangoGravity</returnvalue></link>
pango_gravity_get_for_script_and_width
                               (<parameter><link linkend="PangoScript"><type>PangoScript</type></link> script</parameter>,
                                <parameter><link linkend="gboolean"><type>gboolean</type></link> wide</parameter>,
                                <parameter><link linkend="PangoGravity"><type>PangoGravity</type></link> base_gravity</parameter>,
                                <parameter><link linkend="PangoGravityHint"><type>PangoGravityHint</type></link> hint</parameter>);</programlisting>
<para>Based on the script, East Asian width, base gravity, and hint,
returns actual gravity to use in laying out a single character
or <link linkend="PangoItem"><type>PangoItem</type></link>.</para>
<para>This function is similar to <link linkend="pango-gravity-get-for-script"><function>pango_gravity_get_for_script()</function></link> except
that this function makes a distinction between narrow/half-width and
wide/full-width characters also.  Wide/full-width characters always
stand <emphasis>upright</emphasis>, that is, they always take the base gravity,
whereas narrow/full-width characters are always rotated in vertical
context.</para>
<para>If <parameter>base_gravity</parameter>
 is <link linkend="PANGO-GRAVITY-AUTO:CAPS"><literal>PANGO_GRAVITY_AUTO</literal></link>, it is first replaced with the
preferred gravity of <parameter>script</parameter>
.</para>
<refsect3 id="pango-gravity-get-for-script-and-width.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>script</para></entry>
<entry role="parameter_description"><para><link linkend="PangoScript"><type>PangoScript</type></link> to query</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>wide</para></entry>
<entry role="parameter_description"><para><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> for wide characters as returned by <link linkend="g-unichar-iswide"><function>g_unichar_iswide()</function></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>base_gravity</para></entry>
<entry role="parameter_description"><para>base gravity of the paragraph</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>hint</para></entry>
<entry role="parameter_description"><para>orientation hint</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-gravity-get-for-script-and-width.returns" role="returns">
<title>Returns</title>
<para> resolved gravity suitable to use for a run of text
with <parameter>script</parameter>
and <parameter>wide</parameter>
.</para>
</refsect3><para role="since">Since: <link linkend="api-index-1.26">1.26</link></para></refsect2>
<refsect2 id="pango-gravity-to-rotation" role="function" condition="since:1.16">
<title>pango_gravity_to_rotation&#160;()</title>
<indexterm zone="pango-gravity-to-rotation" role="1.16"><primary>pango_gravity_to_rotation</primary></indexterm>
<programlisting language="C"><link linkend="double"><returnvalue>double</returnvalue></link>
pango_gravity_to_rotation (<parameter><link linkend="PangoGravity"><type>PangoGravity</type></link> gravity</parameter>);</programlisting>
<para>Converts a <link linkend="PangoGravity"><type>PangoGravity</type></link> value to its natural rotation in radians.
<parameter>gravity</parameter>
 should not be <link linkend="PANGO-GRAVITY-AUTO:CAPS"><literal>PANGO_GRAVITY_AUTO</literal></link>.</para>
<para>Note that <link linkend="pango-matrix-rotate"><function>pango_matrix_rotate()</function></link> takes angle in degrees, not radians.
So, to call <link linkend="pango-matrix-rotate"><function>pango_matrix_rotate()</function></link> with the output of this function
you should multiply it by (180. / G_PI).</para>
<refsect3 id="pango-gravity-to-rotation.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>gravity</para></entry>
<entry role="parameter_description"><para>gravity to query</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-gravity-to-rotation.returns" role="returns">
<title>Returns</title>
<para> the rotation value corresponding to <parameter>gravity</parameter>
.</para>
</refsect3><para role="since">Since: <link linkend="api-index-1.16">1.16</link></para></refsect2>

</refsect1>
<refsect1 id="pango-Vertical-Text.other_details" role="details">
<title role="details.title">Types and Values</title>
<refsect2 id="PangoGravity" role="enum" condition="since:1.16">
<title>enum PangoGravity</title>
<indexterm zone="PangoGravity" role="1.16"><primary>PangoGravity</primary></indexterm>
<para>The <link linkend="PangoGravity"><type>PangoGravity</type></link> 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 <link linkend="PangoGravity"><type>PangoGravity</type></link>.
Not every value in this enumeration makes sense for every usage of
<link linkend="PangoGravity"><type>PangoGravity</type></link>; for example, <link linkend="PANGO-GRAVITY-AUTO:CAPS"><literal>PANGO_GRAVITY_AUTO</literal></link> only can be passed to
<link linkend="pango-context-set-base-gravity"><function>pango_context_set_base_gravity()</function></link> and can only be returned by
<link linkend="pango-context-get-base-gravity"><function>pango_context_get_base_gravity()</function></link>.</para>
<para>See also: <link linkend="PangoGravityHint"><type>PangoGravityHint</type></link></para>
<refsect3 id="PangoGravity.members" role="enum_members">
<title>Members</title>
<informaltable role="enum_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="enum_members_name" colwidth="300px"/>
<colspec colname="enum_members_description"/>
<colspec colname="enum_members_annotations" colwidth="200px"/>
<tbody>
<row role="constant"><entry role="enum_member_name"><para id="PANGO-GRAVITY-SOUTH:CAPS">PANGO_GRAVITY_SOUTH</para></entry>
<entry role="enum_member_description"><para>Glyphs stand upright (default)</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="PANGO-GRAVITY-EAST:CAPS">PANGO_GRAVITY_EAST</para></entry>
<entry role="enum_member_description"><para>Glyphs are rotated 90 degrees clockwise</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="PANGO-GRAVITY-NORTH:CAPS">PANGO_GRAVITY_NORTH</para></entry>
<entry role="enum_member_description"><para>Glyphs are upside-down</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="PANGO-GRAVITY-WEST:CAPS">PANGO_GRAVITY_WEST</para></entry>
<entry role="enum_member_description"><para>Glyphs are rotated 90 degrees counter-clockwise</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="PANGO-GRAVITY-AUTO:CAPS">PANGO_GRAVITY_AUTO</para></entry>
<entry role="enum_member_description"><para>Gravity is resolved from the context matrix</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">Since: <link linkend="api-index-1.16">1.16</link></para></refsect2>
<refsect2 id="PangoGravityHint" role="enum" condition="since:1.16">
<title>enum PangoGravityHint</title>
<indexterm zone="PangoGravityHint" role="1.16"><primary>PangoGravityHint</primary></indexterm>
<para>The <link linkend="PangoGravityHint"><type>PangoGravityHint</type></link> defines how horizontal scripts should behave in a
vertical context.  That is, English excerpt in a vertical paragraph for
example.</para>
<para>See <link linkend="PangoGravity"><type>PangoGravity</type></link>.</para>
<refsect3 id="PangoGravityHint.members" role="enum_members">
<title>Members</title>
<informaltable role="enum_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="enum_members_name" colwidth="300px"/>
<colspec colname="enum_members_description"/>
<colspec colname="enum_members_annotations" colwidth="200px"/>
<tbody>
<row role="constant"><entry role="enum_member_name"><para id="PANGO-GRAVITY-HINT-NATURAL:CAPS">PANGO_GRAVITY_HINT_NATURAL</para></entry>
<entry role="enum_member_description"><para>scripts will take their natural gravity based
on the base gravity and the script.  This is the default.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="PANGO-GRAVITY-HINT-STRONG:CAPS">PANGO_GRAVITY_HINT_STRONG</para></entry>
<entry role="enum_member_description"><para>always use the base gravity set, regardless of
the script.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="PANGO-GRAVITY-HINT-LINE:CAPS">PANGO_GRAVITY_HINT_LINE</para></entry>
<entry role="enum_member_description"><para>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.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">Since: <link linkend="api-index-1.16">1.16</link></para></refsect2>

</refsect1>
<refsect1 id="pango-Vertical-Text.see-also">
<title>See Also</title>
<para>pango_context_get_base_gravity(),
<link linkend="pango-context-set-base-gravity"><function>pango_context_set_base_gravity()</function></link>,
<link linkend="pango-context-get-gravity"><function>pango_context_get_gravity()</function></link>,
<link linkend="pango-context-get-gravity-hint"><function>pango_context_get_gravity_hint()</function></link>,
<link linkend="pango-context-set-gravity-hint"><function>pango_context_set_gravity_hint()</function></link>,
<link linkend="pango-font-description-set-gravity"><function>pango_font_description_set_gravity()</function></link>,
<link linkend="pango-font-description-get-gravity"><function>pango_font_description_get_gravity()</function></link>,
<link linkend="pango-attr-gravity-new"><function>pango_attr_gravity_new()</function></link>,
<link linkend="pango-attr-gravity-hint-new"><function>pango_attr_gravity_hint_new()</function></link></para>

</refsect1>

</refentry>
