:right-sidebar: True Gravity =================================================================== .. currentmodule:: gi.repository.Pango .. versionadded:: 1.16 .. class:: Gravity :no-contents-entry: ``PangoGravity`` 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 :obj:`~gi.repository.Pango.Matrix`, and then glyph orientation is controlled using ``PangoGravity``. Not every value in this enumeration makes sense for every usage of ``PangoGravity``; for example, :const:`~gi.repository.Pango.Gravity.AUTO` only can be passed to :obj:`~gi.repository.Pango.Context.set_base_gravity` and can only be returned by :obj:`~gi.repository.Pango.Context.get_base_gravity`. See also: :obj:`~gi.repository.Pango.GravityHint` Methods ------- .. rst-class:: interim-class .. class:: Gravity :no-index: .. method:: get_for_matrix(matrix: ~gi.repository.Pango.Matrix | None = None) -> ~gi.repository.Pango.Gravity Finds the gravity that best matches the rotation component in a ``PangoMatrix``. .. versionadded:: 1.16 :param matrix: a ``PangoMatrix`` .. method:: get_for_script(script: ~gi.repository.Pango.Script, base_gravity: ~gi.repository.Pango.Gravity, hint: ~gi.repository.Pango.GravityHint) -> ~gi.repository.Pango.Gravity Returns the gravity to use in laying out a ``PangoItem``. The gravity is determined based on the script, base gravity, and hint. If ``base_gravity`` is :const:`~gi.repository.Pango.Gravity.AUTO`, it is first replaced with the preferred gravity of ``script``. To get the preferred gravity of a script, pass :const:`~gi.repository.Pango.Gravity.AUTO` and :const:`~gi.repository.Pango.GravityHint.STRONG` in. .. versionadded:: 1.16 :param script: ``PangoScript`` to query :param base_gravity: base gravity of the paragraph :param hint: orientation hint .. method:: get_for_script_and_width(script: ~gi.repository.Pango.Script, wide: bool, base_gravity: ~gi.repository.Pango.Gravity, hint: ~gi.repository.Pango.GravityHint) -> ~gi.repository.Pango.Gravity Returns the gravity to use in laying out a single character or ``PangoItem``. The gravity is determined based on the script, East Asian width, base gravity, and hint, This function is similar to :obj:`~gi.repository.Pango.Gravity.get_for_script` except that this function makes a distinction between narrow/half-width and wide/full-width characters also. Wide/full-width characters always stand *upright*, that is, they always take the base gravity, whereas narrow/full-width characters are always rotated in vertical context. If ``base_gravity`` is :const:`~gi.repository.Pango.Gravity.AUTO`, it is first replaced with the preferred gravity of ``script``. .. versionadded:: 1.26 :param script: ``PangoScript`` to query :param wide: :const:`True` for wide characters as returned by :func:`~gi.repository.GLib.unichar_iswide` :param base_gravity: base gravity of the paragraph :param hint: orientation hint .. method:: to_rotation(gravity: ~gi.repository.Pango.Gravity) -> float Converts a ``PangoGravity`` value to its natural rotation in radians. Note that :obj:`~gi.repository.Pango.Matrix.rotate` takes angle in degrees, not radians. So, to call :obj:`~gi.repository.Pango.Matrix,rotate` with the output of this function you should multiply it by (180. / G_PI). .. versionadded:: 1.16 :param gravity: gravity to query, should not be :const:`~gi.repository.Pango.Gravity.AUTO` Fields ------ .. rst-class:: interim-class .. class:: Gravity :no-index: .. attribute:: AUTO Gravity is resolved from the context matrix .. attribute:: EAST Glyphs are rotated 90 degrees counter-clockwise. .. attribute:: NORTH Glyphs are upside-down. .. attribute:: SOUTH Glyphs stand upright (default) .. attribute:: WEST Glyphs are rotated 90 degrees clockwise.