<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="Cally" version="13"/>
  <include name="Clutter" version="13"/>
  <include name="GdkPixbuf" version="2.0"/>
  <include name="Meta" version="13"/>
  <namespace name="St"
             version="13"
             shared-library="libst-13.so"
             c:identifier-prefixes="St"
             c:symbol-prefixes="st">
    <class name="Adjustment"
           c:symbol-prefix="adjustment"
           c:type="StAdjustment"
           parent="GObject.Object"
           glib:type-name="StAdjustment"
           glib:get-type="st_adjustment_get_type"
           glib:type-struct="AdjustmentClass">
      <source-position filename="src/st/st-adjustment.h" line="49"/>
      <implements name="Clutter.Animatable"/>
      <constructor name="new" c:identifier="st_adjustment_new">
        <doc xml:space="preserve"
             filename="src/st/st-adjustment.c"
             line="440">Creates a new #StAdjustment</doc>
        <source-position filename="src/st/st-adjustment.h" line="51"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-adjustment.c"
               line="452">a new #StAdjustment</doc>
          <type name="Adjustment" c:type="StAdjustment*"/>
        </return-value>
        <parameters>
          <parameter name="actor"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="442">a #ClutterActor</doc>
            <type name="Clutter.Actor" c:type="ClutterActor*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="443">the initial value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="lower" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="444">the minimum value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="upper" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="445">the maximum value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="step_increment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="446">the step increment</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="page_increment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="447">the page increment</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="page_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="448">the page size</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="changed">
        <source-position filename="src/st/st-adjustment.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="adjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="StAdjustment*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="add_transition"
              c:identifier="st_adjustment_add_transition">
        <doc xml:space="preserve"
             filename="src/st/st-adjustment.c"
             line="940">Add a #ClutterTransition for the adjustment. If the transition stops, it will
be automatically removed if #ClutterTransition:remove-on-complete is %TRUE.</doc>
        <source-position filename="src/st/st-adjustment.h" line="84"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="adjustment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="942">a #StAdjustment</doc>
            <type name="Adjustment" c:type="StAdjustment*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="943">a unique name for the transition</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="transition" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="944">a #ClutterTransition</doc>
            <type name="Clutter.Transition" c:type="ClutterTransition*"/>
          </parameter>
        </parameters>
      </method>
      <method name="adjust_for_scroll_event"
              c:identifier="st_adjustment_adjust_for_scroll_event">
        <doc xml:space="preserve"
             filename="src/st/st-adjustment.c"
             line="825">Adjusts the adjustment using delta values from a scroll event.
You should use this instead of using st_adjustment_set_value()
as this method will tweak the values directly using the same
math as GTK+, to ensure that scrolling is consistent across
the environment.</doc>
        <source-position filename="src/st/st-adjustment.h" line="79"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="adjustment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="827">An #StAdjustment</doc>
            <type name="Adjustment" c:type="StAdjustment*"/>
          </instance-parameter>
          <parameter name="delta" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="828">A delta, retrieved directly from clutter_event_get_scroll_delta()
  or similar.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="clamp_page" c:identifier="st_adjustment_clamp_page">
        <doc xml:space="preserve"
             filename="src/st/st-adjustment.c"
             line="524">Set #StAdjustment:value to a value clamped between @lower and @upper. The
clamping described by st_adjustment_set_value() still applies.</doc>
        <source-position filename="src/st/st-adjustment.h" line="61"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="adjustment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="526">a #StAdjustment</doc>
            <type name="Adjustment" c:type="StAdjustment*"/>
          </instance-parameter>
          <parameter name="lower" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="527">the lower value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="upper" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="528">the upper value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_transition"
              c:identifier="st_adjustment_get_transition">
        <doc xml:space="preserve"
             filename="src/st/st-adjustment.c"
             line="909">Get the #ClutterTransition for @name previously added with
st_adjustment_add_transition() or %NULL if not found.</doc>
        <source-position filename="src/st/st-adjustment.h" line="82"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-adjustment.c"
               line="917">a #ClutterTransition</doc>
          <type name="Clutter.Transition" c:type="ClutterTransition*"/>
        </return-value>
        <parameters>
          <instance-parameter name="adjustment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="911">a #StAdjustment</doc>
            <type name="Adjustment" c:type="StAdjustment*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="912">a transition name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value"
              c:identifier="st_adjustment_get_value"
              glib:get-property="value">
        <doc xml:space="preserve"
             filename="src/st/st-adjustment.c"
             line="474">Gets the current value of the adjustment. See st_adjustment_set_value().</doc>
        <source-position filename="src/st/st-adjustment.h" line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-adjustment.c"
               line="480">The current value of the adjustment</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="adjustment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="476">a #StAdjustment</doc>
            <type name="Adjustment" c:type="StAdjustment*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_values" c:identifier="st_adjustment_get_values">
        <doc xml:space="preserve"
             filename="src/st/st-adjustment.c"
             line="779">Gets all of @adjustment's values at once.</doc>
        <source-position filename="src/st/st-adjustment.h" line="71"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="adjustment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="781">an #StAdjustment</doc>
            <type name="Adjustment" c:type="StAdjustment*"/>
          </instance-parameter>
          <parameter name="value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="782">the current value</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="lower"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="783">the lower bound</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="upper"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="784">the upper bound</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="step_increment"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="785">the step increment</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="page_increment"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="786">the page increment</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="page_size"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="787">the page size</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_transition"
              c:identifier="st_adjustment_remove_transition">
        <source-position filename="src/st/st-adjustment.h" line="87"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="adjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="StAdjustment*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_value"
              c:identifier="st_adjustment_set_value"
              glib:set-property="value">
        <doc xml:space="preserve"
             filename="src/st/st-adjustment.c"
             line="490">Sets the #StAdjustment value. The value is clamped to lie between
#StAdjustment:lower and #StAdjustment:upper - #StAdjustment:page-size.</doc>
        <source-position filename="src/st/st-adjustment.h" line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="adjustment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="492">a #StAdjustment</doc>
            <type name="Adjustment" c:type="StAdjustment*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="493">the new value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_values" c:identifier="st_adjustment_set_values">
        <doc xml:space="preserve"
             filename="src/st/st-adjustment.c"
             line="736">Sets all properties of the adjustment at once.

Use this function to avoid multiple emissions of the #GObject::notify and
#StAdjustment::changed signals. See st_adjustment_set_lower() for an
alternative way of compressing multiple emissions of #GObject::notify and
#StAdjustmet::changed into one of each.</doc>
        <source-position filename="src/st/st-adjustment.h" line="64"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="adjustment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="738">a #StAdjustment</doc>
            <type name="Adjustment" c:type="StAdjustment*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="739">the new value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="lower" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="740">the new minimum value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="upper" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="741">the new maximum value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="step_increment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="742">the new step increment</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="page_increment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="743">the new page increment</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="page_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-adjustment.c"
                 line="744">the new page size</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <property name="actor" writable="1" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/st/st-adjustment.c"
             line="324">If the adjustment is used as #ClutterAnimatable for a
#ClutterPropertyTransition, this property is used to determine which
monitor should drive the animation.</doc>
        <type name="Clutter.Actor"/>
      </property>
      <property name="lower"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value="0.000000">
        <doc xml:space="preserve"
             filename="src/st/st-adjustment.c"
             line="337">The minimum value of the adjustment.</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="page-increment"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value="0.000000">
        <doc xml:space="preserve"
             filename="src/st/st-adjustment.c"
             line="388">The page increment of the adjustment.</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="page-size"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value="0.000000">
        <doc xml:space="preserve"
             filename="src/st/st-adjustment.c"
             line="400">The page size of the adjustment.

Note that the page-size is irrelevant and should be set to zero if the
adjustment is used for a simple scalar value.</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="step-increment"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value="0.000000">
        <doc xml:space="preserve"
             filename="src/st/st-adjustment.c"
             line="376">The step increment of the adjustment.</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="upper"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value="0.000000">
        <doc xml:space="preserve"
             filename="src/st/st-adjustment.c"
             line="349">The maximum value of the adjustment.

Note that values will be restricted by `upper - page-size` if
#StAdjustment:page-size is non-zero.</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="value"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_value"
                getter="get_value"
                default-value="0.000000">
        <doc xml:space="preserve"
             filename="src/st/st-adjustment.c"
             line="364">The value of the adjustment.</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="changed" when="last">
        <doc xml:space="preserve"
             filename="src/st/st-adjustment.c"
             line="417">Emitted when any of the adjustment properties have changed, except for
#StAdjustment:value.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="AdjustmentClass"
            c:type="StAdjustmentClass"
            glib:is-gtype-struct-for="Adjustment">
      <doc xml:space="preserve"
           filename="src/st/st-adjustment.h"
           line="36">Base class for #StAdjustment.</doc>
      <source-position filename="src/st/st-adjustment.h" line="49"/>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="changed">
        <callback name="changed">
          <source-position filename="src/st/st-adjustment.h" line="48"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="adjustment" transfer-ownership="none">
              <type name="Adjustment" c:type="StAdjustment*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <function-macro name="BUTTON_MASK_FROM_BUTTON"
                    c:identifier="ST_BUTTON_MASK_FROM_BUTTON"
                    introspectable="0">
      <source-position filename="src/st/st-button.h" line="77"/>
      <parameters>
        <parameter name="button">
        </parameter>
      </parameters>
    </function-macro>
    <enumeration name="BackgroundSize"
                 glib:type-name="StBackgroundSize"
                 glib:get-type="st_background_size_get_type"
                 c:type="StBackgroundSize">
      <member name="auto"
              value="0"
              c:identifier="ST_BACKGROUND_SIZE_AUTO"
              glib:nick="auto"
              glib:name="ST_BACKGROUND_SIZE_AUTO">
      </member>
      <member name="contain"
              value="1"
              c:identifier="ST_BACKGROUND_SIZE_CONTAIN"
              glib:nick="contain"
              glib:name="ST_BACKGROUND_SIZE_CONTAIN">
      </member>
      <member name="cover"
              value="2"
              c:identifier="ST_BACKGROUND_SIZE_COVER"
              glib:nick="cover"
              glib:name="ST_BACKGROUND_SIZE_COVER">
      </member>
      <member name="fixed"
              value="3"
              c:identifier="ST_BACKGROUND_SIZE_FIXED"
              glib:nick="fixed"
              glib:name="ST_BACKGROUND_SIZE_FIXED">
      </member>
    </enumeration>
    <class name="Bin"
           c:symbol-prefix="bin"
           c:type="StBin"
           parent="Widget"
           glib:type-name="StBin"
           glib:get-type="st_bin_get_type"
           glib:type-struct="BinClass">
      <source-position filename="src/st/st-bin.h" line="44"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new" c:identifier="st_bin_new">
        <doc xml:space="preserve"
             filename="src/st/st-bin.c"
             line="325">Creates a new #StBin, a simple container for one child.</doc>
        <source-position filename="src/st/st-bin.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-bin.c"
               line="330">the newly created #StBin actor</doc>
          <type name="Widget" c:type="StWidget*"/>
        </return-value>
      </constructor>
      <method name="get_child"
              c:identifier="st_bin_get_child"
              glib:get-property="child">
        <doc xml:space="preserve"
             filename="src/st/st-bin.c"
             line="390">Gets the #ClutterActor child for @bin.</doc>
        <source-position filename="src/st/st-bin.h" line="49"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-bin.c"
               line="396">a #ClutterActor, or %NULL</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="bin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-bin.c"
                 line="392">a #StBin</doc>
            <type name="Bin" c:type="StBin*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_child"
              c:identifier="st_bin_set_child"
              glib:set-property="child">
        <doc xml:space="preserve"
             filename="src/st/st-bin.c"
             line="338">Sets @child as the child of @bin.

If @bin already has a child, the previous child is removed.</doc>
        <source-position filename="src/st/st-bin.h" line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-bin.c"
                 line="340">a #StBin</doc>
            <type name="Bin" c:type="StBin*"/>
          </instance-parameter>
          <parameter name="child"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-bin.c"
                 line="341">a #ClutterActor, or %NULL</doc>
            <type name="Clutter.Actor" c:type="ClutterActor*"/>
          </parameter>
        </parameters>
      </method>
      <property name="child"
                writable="1"
                transfer-ownership="none"
                setter="set_child"
                getter="get_child">
        <doc xml:space="preserve"
             filename="src/st/st-bin.c"
             line="305">The child #ClutterActor of the #StBin container.</doc>
        <type name="Clutter.Actor"/>
      </property>
      <field name="parent_instance">
        <type name="Widget" c:type="StWidget"/>
      </field>
    </class>
    <record name="BinClass" c:type="StBinClass" glib:is-gtype-struct-for="Bin">
      <doc xml:space="preserve"
           filename="src/st/st-bin.h"
           line="35">The #StBinClass struct contains only private data</doc>
      <source-position filename="src/st/st-bin.h" line="44"/>
      <field name="parent_class" readable="0" private="1">
        <type name="WidgetClass" c:type="StWidgetClass"/>
      </field>
    </record>
    <class name="BorderImage"
           c:symbol-prefix="border_image"
           c:type="StBorderImage"
           parent="GObject.Object"
           glib:type-name="StBorderImage"
           glib:get-type="st_border_image_get_type"
           glib:type-struct="BorderImageClass">
      <source-position filename="src/st/st-border-image.h" line="33"/>
      <constructor name="new" c:identifier="st_border_image_new">
        <doc xml:space="preserve"
             filename="src/st/st-border-image.c"
             line="69">Creates a new #StBorderImage.</doc>
        <source-position filename="src/st/st-border-image.h" line="35"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-border-image.c"
               line="80">a new #StBorderImage.</doc>
          <type name="BorderImage" c:type="StBorderImage*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-border-image.c"
                 line="71">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="border_top" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-border-image.c"
                 line="72">the top border</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="border_right" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-border-image.c"
                 line="73">the right border</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="border_bottom" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-border-image.c"
                 line="74">the bottom border</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="border_left" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-border-image.c"
                 line="75">the left border</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="scale_factor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-border-image.c"
                 line="76">the scale factor</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="equal" c:identifier="st_border_image_equal">
        <doc xml:space="preserve"
             filename="src/st/st-border-image.c"
             line="150">Check if two #StBorderImage objects are identical.</doc>
        <source-position filename="src/st/st-border-image.h" line="49"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-border-image.c"
               line="157">%TRUE if the two border image objects are identical</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-border-image.c"
                 line="152">a #StBorderImage</doc>
            <type name="BorderImage" c:type="StBorderImage*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-border-image.c"
                 line="153">a different #StBorderImage</doc>
            <type name="BorderImage" c:type="StBorderImage*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_borders" c:identifier="st_border_image_get_borders">
        <source-position filename="src/st/st-border-image.h" line="43"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <type name="BorderImage" c:type="StBorderImage*"/>
          </instance-parameter>
          <parameter name="border_top" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="border_right" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="border_bottom" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="border_left" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_file" c:identifier="st_border_image_get_file">
        <doc xml:space="preserve"
             filename="src/st/st-border-image.c"
             line="104">Get the #GFile for @image.</doc>
        <source-position filename="src/st/st-border-image.h" line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-border-image.c"
               line="110">a #GFile</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-border-image.c"
                 line="106">a #StBorderImage</doc>
            <type name="BorderImage" c:type="StBorderImage*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="BorderImageClass"
            c:type="StBorderImageClass"
            glib:is-gtype-struct-for="BorderImage">
      <source-position filename="src/st/st-border-image.h" line="33"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="BoxLayout"
           c:symbol-prefix="box_layout"
           c:type="StBoxLayout"
           parent="Viewport"
           glib:type-name="StBoxLayout"
           glib:get-type="st_box_layout_get_type"
           glib:type-struct="BoxLayoutClass">
      <doc xml:space="preserve"
           filename="src/st/st-box-layout.h"
           line="39">The contents of this structure are private and should only be accessed
through the public API.</doc>
      <source-position filename="src/st/st-box-layout.h" line="34"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <implements name="Scrollable"/>
      <constructor name="new" c:identifier="st_box_layout_new">
        <doc xml:space="preserve"
             filename="src/st/st-box-layout.c"
             line="222">Create a new #StBoxLayout.</doc>
        <source-position filename="src/st/st-box-layout.h" line="53"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-box-layout.c"
               line="227">a newly allocated #StBoxLayout</doc>
          <type name="Widget" c:type="StWidget*"/>
        </return-value>
      </constructor>
      <method name="get_pack_start"
              c:identifier="st_box_layout_get_pack_start"
              glib:get-property="pack-start">
        <source-position filename="src/st/st-box-layout.h" line="61"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-box-layout.c"
               line="300">the value of the #StBoxLayout:pack-start property,
  always %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="box" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-box-layout.c"
                 line="298">A #StBoxLayout</doc>
            <type name="BoxLayout" c:type="StBoxLayout*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_vertical"
              c:identifier="st_box_layout_get_vertical"
              glib:get-property="vertical">
        <doc xml:space="preserve"
             filename="src/st/st-box-layout.c"
             line="262">Get the value of the #StBoxLayout:vertical property.</doc>
        <source-position filename="src/st/st-box-layout.h" line="57"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-box-layout.c"
               line="268">%TRUE if the layout is vertical</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="box" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-box-layout.c"
                 line="264">A #StBoxLayout</doc>
            <type name="BoxLayout" c:type="StBoxLayout*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_pack_start"
              c:identifier="st_box_layout_set_pack_start"
              glib:set-property="pack-start"
              deprecated="1">
        <doc-deprecated xml:space="preserve">No longer has any effect</doc-deprecated>
        <source-position filename="src/st/st-box-layout.h" line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="box" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-box-layout.c"
                 line="285">A #StBoxLayout</doc>
            <type name="BoxLayout" c:type="StBoxLayout*"/>
          </instance-parameter>
          <parameter name="pack_start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-box-layout.c"
                 line="286">%TRUE if the layout should use pack-start</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_vertical"
              c:identifier="st_box_layout_set_vertical"
              glib:set-property="vertical">
        <doc xml:space="preserve"
             filename="src/st/st-box-layout.c"
             line="235">Set the value of the #StBoxLayout:vertical property</doc>
        <source-position filename="src/st/st-box-layout.h" line="55"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="box" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-box-layout.c"
                 line="237">A #StBoxLayout</doc>
            <type name="BoxLayout" c:type="StBoxLayout*"/>
          </instance-parameter>
          <parameter name="vertical" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-box-layout.c"
                 line="238">%TRUE if the layout should be vertical</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="pack-start"
                writable="1"
                transfer-ownership="none"
                setter="set_pack_start"
                getter="get_pack_start"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="src/st/st-box-layout.c"
             line="196">A convenience property for the #ClutterBoxLayout:pack-start property of the
internal layout for #StBoxLayout.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="vertical"
                writable="1"
                transfer-ownership="none"
                setter="set_vertical"
                getter="get_vertical"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="src/st/st-box-layout.c"
             line="182">A convenience property for the #ClutterBoxLayout:vertical property of the
internal layout for #StBoxLayout.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="Viewport" c:type="StViewport"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="BoxLayoutPrivate" c:type="StBoxLayoutPrivate*"/>
      </field>
    </class>
    <record name="BoxLayoutClass"
            c:type="StBoxLayoutClass"
            glib:is-gtype-struct-for="BoxLayout">
      <source-position filename="src/st/st-box-layout.h" line="34"/>
      <field name="parent_class">
        <type name="ViewportClass" c:type="StViewportClass"/>
      </field>
    </record>
    <record name="BoxLayoutPrivate"
            c:type="StBoxLayoutPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/st/st-box-layout.h" line="37"/>
    </record>
    <class name="Button"
           c:symbol-prefix="button"
           c:type="StButton"
           parent="Bin"
           glib:type-name="StButton"
           glib:get-type="st_button_get_type"
           glib:type-struct="ButtonClass">
      <source-position filename="src/st/st-button.h" line="44"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new" c:identifier="st_button_new">
        <doc xml:space="preserve"
             filename="src/st/st-button.c"
             line="601">Create a new button</doc>
        <source-position filename="src/st/st-button.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-button.c"
               line="606">a new #StButton</doc>
          <type name="Widget" c:type="StWidget*"/>
        </return-value>
      </constructor>
      <constructor name="new_with_label"
                   c:identifier="st_button_new_with_label">
        <doc xml:space="preserve"
             filename="src/st/st-button.c"
             line="614">Create a new #StButton with the specified label</doc>
        <source-position filename="src/st/st-button.h" line="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-button.c"
               line="620">a new #StButton</doc>
          <type name="Widget" c:type="StWidget*"/>
        </return-value>
        <parameters>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-button.c"
                 line="616">text to set the label to</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="clicked">
        <source-position filename="src/st/st-button.h" line="43"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <type name="Button" c:type="StButton*"/>
          </instance-parameter>
          <parameter name="clicked_button" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="transition">
        <source-position filename="src/st/st-button.h" line="40"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <type name="Button" c:type="StButton*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="fake_release" c:identifier="st_button_fake_release">
        <doc xml:space="preserve"
             filename="src/st/st-button.c"
             line="892">If this widget is holding a pointer grab, this function will
will ungrab it, and reset the #StButton:pressed state.  The effect is
similar to if the user had released the mouse button, but without
emitting the #StButton::clicked signal.

This function is useful if for example you want to do something
after the user is holding the mouse button for a given period of
time, breaking the grab.</doc>
        <source-position filename="src/st/st-button.h" line="61"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-button.c"
                 line="894">an #StButton</doc>
            <type name="Button" c:type="StButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_button_mask"
              c:identifier="st_button_get_button_mask"
              glib:get-property="button-mask">
        <doc xml:space="preserve"
             filename="src/st/st-button.c"
             line="761">Gets the mask of mouse buttons that @button emits the
#StButton::clicked signal for.</doc>
        <source-position filename="src/st/st-button.h" line="81"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-button.c"
               line="768">the mask of mouse buttons that @button emits the
#StButton::clicked signal for.</doc>
          <type name="ButtonMask" c:type="StButtonMask"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-button.c"
                 line="763">a #StButton</doc>
            <type name="Button" c:type="StButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_checked"
              c:identifier="st_button_get_checked"
              glib:get-property="checked">
        <doc xml:space="preserve"
             filename="src/st/st-button.c"
             line="846">Get the #StButton:checked property of a #StButton that is in toggle mode.</doc>
        <source-position filename="src/st/st-button.h" line="59"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-button.c"
               line="852">%TRUE if the button is checked, or %FALSE if not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-button.c"
                 line="848">a #StButton</doc>
            <type name="Button" c:type="StButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_name"
              c:identifier="st_button_get_icon_name"
              glib:get-property="icon-name">
        <doc xml:space="preserve"
             filename="src/st/st-button.c"
             line="698">Get the icon name of the button. If the button isn't showing an icon,
the return value will be %NULL.</doc>
        <source-position filename="src/st/st-button.h" line="51"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-button.c"
               line="705">the icon name of the button</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-button.c"
                 line="700">a #StButton</doc>
            <type name="Button" c:type="StButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_label"
              c:identifier="st_button_get_label"
              glib:get-property="label">
        <doc xml:space="preserve"
             filename="src/st/st-button.c"
             line="628">Get the text displayed on the button. If the label is empty, an empty string
will be returned instead of %NULL.</doc>
        <source-position filename="src/st/st-button.h" line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-button.c"
               line="635">the text for the button</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-button.c"
                 line="630">a #StButton</doc>
            <type name="Button" c:type="StButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_toggle_mode"
              c:identifier="st_button_get_toggle_mode"
              glib:get-property="toggle-mode">
        <doc xml:space="preserve"
             filename="src/st/st-button.c"
             line="804">Get the toggle mode status of the button.</doc>
        <source-position filename="src/st/st-button.h" line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-button.c"
               line="810">%TRUE if toggle mode is set, otherwise %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-button.c"
                 line="806">a #StButton</doc>
            <type name="Button" c:type="StButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_button_mask"
              c:identifier="st_button_set_button_mask"
              glib:set-property="button-mask">
        <doc xml:space="preserve"
             filename="src/st/st-button.c"
             line="779">Sets which mouse buttons @button emits #StButton::clicked for.</doc>
        <source-position filename="src/st/st-button.h" line="79"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-button.c"
                 line="781">a #Stbutton</doc>
            <type name="Button" c:type="StButton*"/>
          </instance-parameter>
          <parameter name="mask" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-button.c"
                 line="782">the mask of mouse buttons that @button responds to</doc>
            <type name="ButtonMask" c:type="StButtonMask"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_checked"
              c:identifier="st_button_set_checked"
              glib:set-property="checked">
        <doc xml:space="preserve"
             filename="src/st/st-button.c"
             line="862">Set the #StButton:checked property of the button. This is only really useful
if the button has #StButton:toggle-mode property set to %TRUE.</doc>
        <source-position filename="src/st/st-button.h" line="57"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-button.c"
                 line="864">a #Stbutton</doc>
            <type name="Button" c:type="StButton*"/>
          </instance-parameter>
          <parameter name="checked" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-button.c"
                 line="865">%TRUE or %FALSE</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_name"
              c:identifier="st_button_set_icon_name"
              glib:set-property="icon-name">
        <doc xml:space="preserve"
             filename="src/st/st-button.c"
             line="720">Adds an `StIcon` with the given icon name as a child.

If @button already contains a child actor, that child will
be removed and replaced with the icon.</doc>
        <source-position filename="src/st/st-button.h" line="52"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-button.c"
                 line="722">a #Stbutton</doc>
            <type name="Button" c:type="StButton*"/>
          </instance-parameter>
          <parameter name="icon_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-button.c"
                 line="723">an icon name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_label"
              c:identifier="st_button_set_label"
              glib:set-property="label">
        <doc xml:space="preserve"
             filename="src/st/st-button.c"
             line="645">Sets the text displayed on the button.</doc>
        <source-position filename="src/st/st-button.h" line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-button.c"
                 line="647">a #Stbutton</doc>
            <type name="Button" c:type="StButton*"/>
          </instance-parameter>
          <parameter name="text"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-button.c"
                 line="648">text to set the label to</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_toggle_mode"
              c:identifier="st_button_set_toggle_mode"
              glib:set-property="toggle-mode">
        <doc xml:space="preserve"
             filename="src/st/st-button.c"
             line="820">Enables or disables toggle mode for the button. In toggle mode, the checked
state will be "toggled" when the user clicks the button.</doc>
        <source-position filename="src/st/st-button.h" line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-button.c"
                 line="822">a #Stbutton</doc>
            <type name="Button" c:type="StButton*"/>
          </instance-parameter>
          <parameter name="toggle" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-button.c"
                 line="823">%TRUE or %FALSE</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="button-mask"
                writable="1"
                transfer-ownership="none"
                setter="set_button_mask"
                getter="get_button_mask"
                default-value="ST_BUTTON_ONE">
        <doc xml:space="preserve"
             filename="src/st/st-button.c"
             line="516">Which buttons will trigger the #StButton::clicked signal.</doc>
        <type name="ButtonMask"/>
      </property>
      <property name="checked"
                writable="1"
                transfer-ownership="none"
                setter="set_checked"
                getter="get_checked"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="src/st/st-button.c"
             line="540">If #StButton:toggle-mode is %TRUE, indicates if the #StButton is toggled
"on" or "off".

When the value is %TRUE, the #StButton will have the `checked` CSS
pseudo-class set.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="icon-name"
                writable="1"
                transfer-ownership="none"
                setter="set_icon_name"
                getter="get_icon_name"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="src/st/st-button.c"
             line="504">The icon name of the #StButton.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="label"
                writable="1"
                transfer-ownership="none"
                setter="set_label"
                getter="get_label"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="src/st/st-button.c"
             line="492">The label of the #StButton.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="pressed" transfer-ownership="none" default-value="FALSE">
        <doc xml:space="preserve"
             filename="src/st/st-button.c"
             line="556">In contrast to #StButton:checked, this property indicates whether the
#StButton is being actively pressed, rather than just in the "on" state.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="toggle-mode"
                writable="1"
                transfer-ownership="none"
                setter="set_toggle_mode"
                getter="get_toggle_mode"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="src/st/st-button.c"
             line="528">Whether the #StButton is operating in toggle mode (on/off).</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="Bin" c:type="StBin"/>
      </field>
      <glib:signal name="clicked" when="last">
        <doc xml:space="preserve"
             filename="src/st/st-button.c"
             line="572">Emitted when the user activates the button, either with a mouse press and
release or with the keyboard.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="clicked_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-button.c"
                 line="575">the mouse button that was used</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ButtonClass"
            c:type="StButtonClass"
            glib:is-gtype-struct-for="Button">
      <source-position filename="src/st/st-button.h" line="44"/>
      <field name="parent_class">
        <type name="BinClass" c:type="StBinClass"/>
      </field>
      <field name="transition">
        <callback name="transition">
          <source-position filename="src/st/st-button.h" line="40"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="button" transfer-ownership="none">
              <type name="Button" c:type="StButton*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="clicked">
        <callback name="clicked">
          <source-position filename="src/st/st-button.h" line="43"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="button" transfer-ownership="none">
              <type name="Button" c:type="StButton*"/>
            </parameter>
            <parameter name="clicked_button" transfer-ownership="none">
              <type name="gint" c:type="int"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <bitfield name="ButtonMask"
              glib:type-name="StButtonMask"
              glib:get-type="st_button_mask_get_type"
              c:type="StButtonMask">
      <doc xml:space="preserve"
           filename="src/st/st-button.h"
           line="63">A mask representing which mouse buttons an #StButton responds to.</doc>
      <member name="one"
              value="1"
              c:identifier="ST_BUTTON_ONE"
              glib:nick="one"
              glib:name="ST_BUTTON_ONE">
        <doc xml:space="preserve"
             filename="src/st/st-button.h"
             line="65">button 1 (left)</doc>
      </member>
      <member name="two"
              value="2"
              c:identifier="ST_BUTTON_TWO"
              glib:nick="two"
              glib:name="ST_BUTTON_TWO">
        <doc xml:space="preserve"
             filename="src/st/st-button.h"
             line="66">button 2 (middle)</doc>
      </member>
      <member name="three"
              value="4"
              c:identifier="ST_BUTTON_THREE"
              glib:nick="three"
              glib:name="ST_BUTTON_THREE">
        <doc xml:space="preserve"
             filename="src/st/st-button.h"
             line="67">button 3 (right)</doc>
      </member>
    </bitfield>
    <class name="Clipboard"
           c:symbol-prefix="clipboard"
           c:type="StClipboard"
           parent="GObject.Object"
           glib:type-name="StClipboard"
           glib:get-type="st_clipboard_get_type"
           glib:type-struct="ClipboardClass">
      <doc xml:space="preserve"
           filename="src/st/st-clipboard.h"
           line="37">The contents of this structure is private and should only be accessed using
the provided API.</doc>
      <source-position filename="src/st/st-clipboard.h" line="33"/>
      <function name="get_default" c:identifier="st_clipboard_get_default">
        <doc xml:space="preserve"
             filename="src/st/st-clipboard.c"
             line="67">Get the global #StClipboard object that represents the clipboard.</doc>
        <source-position filename="src/st/st-clipboard.h" line="78"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-clipboard.c"
               line="72">a #StClipboard owned by St and must not be
unrefferenced or freed.</doc>
          <type name="Clipboard" c:type="StClipboard*"/>
        </return-value>
      </function>
      <function name="set_selection"
                c:identifier="st_clipboard_set_selection"
                introspectable="0">
        <doc xml:space="preserve"
             filename="src/st/st-clipboard.c"
             line="337">Sets the #MetaSelection of the default #StClipboard.

This function is called during the initialization of GNOME Shell.</doc>
        <source-position filename="src/st/st-clipboard.h" line="101"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="selection" transfer-ownership="none">
            <type name="Meta.Selection" c:type="MetaSelection*"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_content" c:identifier="st_clipboard_get_content">
        <doc xml:space="preserve"
             filename="src/st/st-clipboard.c"
             line="236">Request the data from the clipboard in #GBytes form. @callback is executed
when the data is retrieved.</doc>
        <source-position filename="src/st/st-clipboard.h" line="95"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="clipboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-clipboard.c"
                 line="238">A #StCliboard</doc>
            <type name="Clipboard" c:type="StClipboard*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-clipboard.c"
                 line="239">The type of clipboard data you want</doc>
            <type name="ClipboardType" c:type="StClipboardType"/>
          </parameter>
          <parameter name="mimetype" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-clipboard.c"
                 line="240">The mimetype to get content for</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve"
                 filename="src/st/st-clipboard.c"
                 line="241">function to be called when the type is retrieved</doc>
            <type name="ClipboardContentCallbackFunc"
                  c:type="StClipboardContentCallbackFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-clipboard.c"
                 line="242">data to be passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_mimetypes" c:identifier="st_clipboard_get_mimetypes">
        <doc xml:space="preserve"
             filename="src/st/st-clipboard.c"
             line="166">Gets a list of the mimetypes supported by the default #StClipboard.</doc>
        <source-position filename="src/st/st-clipboard.h" line="80"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-clipboard.c"
               line="172">the supported mimetypes</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="clipboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-clipboard.c"
                 line="168">a #StClipboard</doc>
            <type name="Clipboard" c:type="StClipboard*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <type name="ClipboardType" c:type="StClipboardType"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_text" c:identifier="st_clipboard_get_text">
        <doc xml:space="preserve"
             filename="src/st/st-clipboard.c"
             line="189">Request the data from the clipboard in text form. @callback is executed
when the data is retrieved.</doc>
        <source-position filename="src/st/st-clipboard.h" line="83"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="clipboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-clipboard.c"
                 line="191">A #StCliboard</doc>
            <type name="Clipboard" c:type="StClipboard*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-clipboard.c"
                 line="192">The type of clipboard data you want</doc>
            <type name="ClipboardType" c:type="StClipboardType"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve"
                 filename="src/st/st-clipboard.c"
                 line="193">function to be called when the text is retrieved</doc>
            <type name="ClipboardCallbackFunc"
                  c:type="StClipboardCallbackFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-clipboard.c"
                 line="194">data to be passed to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_content" c:identifier="st_clipboard_set_content">
        <doc xml:space="preserve"
             filename="src/st/st-clipboard.c"
             line="281">Sets the clipboard content to @bytes.

@mimetype is a semi-colon separated list of mime-type strings.</doc>
        <source-position filename="src/st/st-clipboard.h" line="91"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="clipboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-clipboard.c"
                 line="283">A #StClipboard</doc>
            <type name="Clipboard" c:type="StClipboard*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-clipboard.c"
                 line="284">The type of clipboard that you want to set</doc>
            <type name="ClipboardType" c:type="StClipboardType"/>
          </parameter>
          <parameter name="mimetype" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-clipboard.c"
                 line="285">content mimetype</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="bytes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-clipboard.c"
                 line="286">content data</doc>
            <type name="GLib.Bytes" c:type="GBytes*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_text" c:identifier="st_clipboard_set_text">
        <doc xml:space="preserve"
             filename="src/st/st-clipboard.c"
             line="313">Sets text as the current contents of the clipboard.</doc>
        <source-position filename="src/st/st-clipboard.h" line="87"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="clipboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-clipboard.c"
                 line="315">A #StClipboard</doc>
            <type name="Clipboard" c:type="StClipboard*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-clipboard.c"
                 line="316">The type of clipboard that you want to set</doc>
            <type name="ClipboardType" c:type="StClipboardType"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-clipboard.c"
                 line="317">text to copy to the clipboard</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <callback name="ClipboardCallbackFunc" c:type="StClipboardCallbackFunc">
      <doc xml:space="preserve"
           filename="src/st/st-clipboard.h"
           line="54">Callback function called when text is retrieved from the clipboard.</doc>
      <source-position filename="src/st/st-clipboard.h" line="62"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="clipboard" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-clipboard.h"
               line="56">A #StClipboard</doc>
          <type name="Clipboard" c:type="StClipboard*"/>
        </parameter>
        <parameter name="text" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-clipboard.h"
               line="57">text from the clipboard</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <doc xml:space="preserve"
               filename="src/st/st-clipboard.h"
               line="58">user data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="ClipboardClass"
            c:type="StClipboardClass"
            glib:is-gtype-struct-for="Clipboard">
      <source-position filename="src/st/st-clipboard.h" line="33"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <callback name="ClipboardContentCallbackFunc"
              c:type="StClipboardContentCallbackFunc">
      <doc xml:space="preserve"
           filename="src/st/st-clipboard.h"
           line="66">Callback function called when content is retrieved from the clipboard.</doc>
      <source-position filename="src/st/st-clipboard.h" line="74"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="clipboard" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-clipboard.h"
               line="68">A #StClipboard</doc>
          <type name="Clipboard" c:type="StClipboard*"/>
        </parameter>
        <parameter name="bytes" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-clipboard.h"
               line="69">content from the clipboard</doc>
          <type name="GLib.Bytes" c:type="GBytes*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <doc xml:space="preserve"
               filename="src/st/st-clipboard.h"
               line="70">user data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="ClipboardType"
                 glib:type-name="StClipboardType"
                 glib:get-type="st_clipboard_type_get_type"
                 c:type="StClipboardType">
      <member name="primary"
              value="0"
              c:identifier="ST_CLIPBOARD_TYPE_PRIMARY"
              glib:nick="primary"
              glib:name="ST_CLIPBOARD_TYPE_PRIMARY">
      </member>
      <member name="clipboard"
              value="1"
              c:identifier="ST_CLIPBOARD_TYPE_CLIPBOARD"
              glib:nick="clipboard"
              glib:name="ST_CLIPBOARD_TYPE_CLIPBOARD">
      </member>
    </enumeration>
    <enumeration name="Corner"
                 glib:type-name="StCorner"
                 glib:get-type="st_corner_get_type"
                 c:type="StCorner">
      <doc xml:space="preserve"
           filename="src/st/st-theme-node.h"
           line="75">Used to target a particular corner of a #StThemeNode element.</doc>
      <member name="topleft"
              value="0"
              c:identifier="ST_CORNER_TOPLEFT"
              glib:nick="topleft"
              glib:name="ST_CORNER_TOPLEFT">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.h"
             line="77">The top-right corner.</doc>
      </member>
      <member name="topright"
              value="1"
              c:identifier="ST_CORNER_TOPRIGHT"
              glib:nick="topright"
              glib:name="ST_CORNER_TOPRIGHT">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.h"
             line="78">The top-right corner.</doc>
      </member>
      <member name="bottomright"
              value="2"
              c:identifier="ST_CORNER_BOTTOMRIGHT"
              glib:nick="bottomright"
              glib:name="ST_CORNER_BOTTOMRIGHT">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.h"
             line="79">The bottom-right corner.</doc>
      </member>
      <member name="bottomleft"
              value="3"
              c:identifier="ST_CORNER_BOTTOMLEFT"
              glib:nick="bottomleft"
              glib:name="ST_CORNER_BOTTOMLEFT">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.h"
             line="80">The bottom-left corner.</doc>
      </member>
    </enumeration>
    <enumeration name="DirectionType"
                 glib:type-name="StDirectionType"
                 glib:get-type="st_direction_type_get_type"
                 c:type="StDirectionType">
      <doc xml:space="preserve"
           filename="src/st/st-widget.h"
           line="41">Enumeration for focus direction.</doc>
      <member name="tab_forward"
              value="0"
              c:identifier="ST_DIR_TAB_FORWARD"
              glib:nick="tab-forward"
              glib:name="ST_DIR_TAB_FORWARD">
        <doc xml:space="preserve"
             filename="src/st/st-widget.h"
             line="43">Move forward.</doc>
      </member>
      <member name="tab_backward"
              value="1"
              c:identifier="ST_DIR_TAB_BACKWARD"
              glib:nick="tab-backward"
              glib:name="ST_DIR_TAB_BACKWARD">
        <doc xml:space="preserve"
             filename="src/st/st-widget.h"
             line="44">Move backward.</doc>
      </member>
      <member name="up"
              value="2"
              c:identifier="ST_DIR_UP"
              glib:nick="up"
              glib:name="ST_DIR_UP">
        <doc xml:space="preserve"
             filename="src/st/st-widget.h"
             line="45">Move up.</doc>
      </member>
      <member name="down"
              value="3"
              c:identifier="ST_DIR_DOWN"
              glib:nick="down"
              glib:name="ST_DIR_DOWN">
        <doc xml:space="preserve"
             filename="src/st/st-widget.h"
             line="46">Move down.</doc>
      </member>
      <member name="left"
              value="4"
              c:identifier="ST_DIR_LEFT"
              glib:nick="left"
              glib:name="ST_DIR_LEFT">
        <doc xml:space="preserve"
             filename="src/st/st-widget.h"
             line="47">Move left.</doc>
      </member>
      <member name="right"
              value="5"
              c:identifier="ST_DIR_RIGHT"
              glib:nick="right"
              glib:name="ST_DIR_RIGHT">
        <doc xml:space="preserve"
             filename="src/st/st-widget.h"
             line="48">Move right.</doc>
      </member>
    </enumeration>
    <class name="DrawingArea"
           c:symbol-prefix="drawing_area"
           c:type="StDrawingArea"
           parent="Widget"
           glib:type-name="StDrawingArea"
           glib:get-type="st_drawing_area_get_type"
           glib:type-struct="DrawingAreaClass">
      <source-position filename="src/st/st-drawing-area.h" line="36"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <virtual-method name="repaint">
        <source-position filename="src/st/st-drawing-area.h" line="35"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="area" transfer-ownership="none">
            <type name="DrawingArea" c:type="StDrawingArea*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_context" c:identifier="st_drawing_area_get_context">
        <doc xml:space="preserve"
             filename="src/st/st-drawing-area.c"
             line="167">Gets the Cairo context to paint to. This function must only be called
from a signal handler or virtual function for the #StDrawingArea::repaint
signal.

JavaScript code must call the special dispose function before returning from
the signal handler or virtual function to avoid leaking memory:

|[&lt;!-- language="JavaScript" --&gt;
function onRepaint(area) {
    let cr = area.get_context();

    // Draw to the context

    cr.$dispose();
}

let area = new St.DrawingArea();
area.connect('repaint', onRepaint);
]|</doc>
        <source-position filename="src/st/st-drawing-area.h" line="39"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-drawing-area.c"
               line="191">the Cairo context for the paint operation</doc>
          <type name="cairo.Context" c:type="cairo_t*"/>
        </return-value>
        <parameters>
          <instance-parameter name="area" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-drawing-area.c"
                 line="169">the #StDrawingArea</doc>
            <type name="DrawingArea" c:type="StDrawingArea*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_surface_size"
              c:identifier="st_drawing_area_get_surface_size">
        <doc xml:space="preserve"
             filename="src/st/st-drawing-area.c"
             line="206">Gets the size of the cairo surface being painted to, which is equal
to the size of the content area of the widget. This function must
only be called from a signal handler for the #StDrawingArea::repaint signal.</doc>
        <source-position filename="src/st/st-drawing-area.h" line="40"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="area" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-drawing-area.c"
                 line="208">the #StDrawingArea</doc>
            <type name="DrawingArea" c:type="StDrawingArea*"/>
          </instance-parameter>
          <parameter name="width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-drawing-area.c"
                 line="209">location to store the width of the painted area</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
          <parameter name="height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-drawing-area.c"
                 line="210">location to store the height of the painted area</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="queue_repaint"
              c:identifier="st_drawing_area_queue_repaint">
        <doc xml:space="preserve"
             filename="src/st/st-drawing-area.c"
             line="149">Will cause the actor to emit a #StDrawingArea::repaint signal before it is
next drawn to the scene. Useful if some parameters for the area being
drawn other than the size or style have changed. Note that
clutter_actor_queue_redraw() will simply result in the same
contents being drawn to the scene again.</doc>
        <source-position filename="src/st/st-drawing-area.h" line="38"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="area" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-drawing-area.c"
                 line="151">the #StDrawingArea</doc>
            <type name="DrawingArea" c:type="StDrawingArea*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Widget" c:type="StWidget"/>
      </field>
      <glib:signal name="repaint" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="DrawingAreaClass"
            c:type="StDrawingAreaClass"
            glib:is-gtype-struct-for="DrawingArea">
      <source-position filename="src/st/st-drawing-area.h" line="36"/>
      <field name="parent_class">
        <type name="WidgetClass" c:type="StWidgetClass"/>
      </field>
      <field name="repaint">
        <callback name="repaint">
          <source-position filename="src/st/st-drawing-area.h" line="35"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="area" transfer-ownership="none">
              <type name="DrawingArea" c:type="StDrawingArea*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="Entry"
           c:symbol-prefix="entry"
           c:type="StEntry"
           parent="Widget"
           glib:type-name="StEntry"
           glib:get-type="st_entry_get_type"
           glib:type-struct="EntryClass">
      <source-position filename="src/st/st-entry.h" line="41"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new" c:identifier="st_entry_new">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="1118">Create a new #StEntry with the specified text.</doc>
        <source-position filename="src/st/st-entry.h" line="43"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-entry.c"
               line="1124">a new #StEntry</doc>
          <type name="Widget" c:type="StWidget*"/>
        </return-value>
        <parameters>
          <parameter name="text"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1120">text to set the entry to</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="set_cursor_func"
                c:identifier="st_entry_set_cursor_func"
                introspectable="0">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="768">This function is for private use by libgnome-shell.
Do not ever use.</doc>
        <source-position filename="src/st/st-entry.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="func" transfer-ownership="none" closure="1">
            <type name="EntryCursorFunc" c:type="StEntryCursorFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="primary_icon_clicked">
        <source-position filename="src/st/st-entry.h" line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <type name="Entry" c:type="StEntry*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="secondary_icon_clicked">
        <source-position filename="src/st/st-entry.h" line="40"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <type name="Entry" c:type="StEntry*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_clutter_text"
              c:identifier="st_entry_get_clutter_text"
              glib:get-property="clutter-text">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="1184">Retrieve the internal #ClutterText so that extra parameters can be set.</doc>
        <source-position filename="src/st/st-entry.h" line="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-entry.c"
               line="1190">the #ClutterText used by @entry</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1186">a #StEntry</doc>
            <type name="Entry" c:type="StEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_hint_actor"
              c:identifier="st_entry_get_hint_actor"
              glib:get-property="hint-actor">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="1516">Get the value of the #StEntry:hint-actor property.</doc>
        <source-position filename="src/st/st-entry.h" line="71"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-entry.c"
               line="1522">a #ClutterActor</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1518">a #StEntry</doc>
            <type name="Entry" c:type="StEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_hint_text"
              c:identifier="st_entry_get_hint_text"
              glib:get-property="hint-text">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="1224">Gets the text that is displayed when the entry is empty and unfocused or
%NULL if the #StEntry:hint-actor was set to an actor that is not a #StLabel.

Unlike st_entry_get_text() this function may return %NULL if
#StEntry:hint-actor is not a #StLabel.</doc>
        <source-position filename="src/st/st-entry.h" line="51"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-entry.c"
               line="1234">the current value of the hint property</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1226">a #StEntry</doc>
            <type name="Entry" c:type="StEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_input_hints"
              c:identifier="st_entry_get_input_hints"
              glib:get-property="input-hints">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="1327">Gets the value of the #StEntry:input-hints property.</doc>
        <source-position filename="src/st/st-entry.h" line="59"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-entry.c"
               line="1333">the input hints for the entry</doc>
          <type name="Clutter.InputContentHintFlags"
                c:type="ClutterInputContentHintFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1329">a #StEntry</doc>
            <type name="Entry" c:type="StEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_input_purpose"
              c:identifier="st_entry_get_input_purpose"
              glib:get-property="input-purpose">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="1280">Gets the value of the #StEntry:input-purpose property.</doc>
        <source-position filename="src/st/st-entry.h" line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-entry.c"
               line="1286">the input purpose of the entry</doc>
          <type name="Clutter.InputContentPurpose"
                c:type="ClutterInputContentPurpose"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1282">a #StEntry</doc>
            <type name="Entry" c:type="StEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_primary_icon"
              c:identifier="st_entry_get_primary_icon"
              glib:get-property="primary-icon">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="1416">Get the value of the #StEntry:primary-icon property.</doc>
        <source-position filename="src/st/st-entry.h" line="63"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-entry.c"
               line="1422">a #ClutterActor</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1418">a #StEntry</doc>
            <type name="Entry" c:type="StEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_secondary_icon"
              c:identifier="st_entry_get_secondary_icon"
              glib:get-property="secondary-icon">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="1459">Get the value of the #StEntry:secondary-icon property.</doc>
        <source-position filename="src/st/st-entry.h" line="67"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-entry.c"
               line="1465">a #ClutterActor</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1461">a #StEntry</doc>
            <type name="Entry" c:type="StEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text"
              c:identifier="st_entry_get_text"
              glib:get-property="text">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="1139">Get the text displayed on the entry. If @entry is empty, an empty string will
be returned instead of %NULL.</doc>
        <source-position filename="src/st/st-entry.h" line="44"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-entry.c"
               line="1146">the text for the entry</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1141">a #StEntry</doc>
            <type name="Entry" c:type="StEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_hint_actor"
              c:identifier="st_entry_set_hint_actor"
              glib:set-property="hint-actor">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="1478">Set the hint actor of the entry to @hint_actor.</doc>
        <source-position filename="src/st/st-entry.h" line="69"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1480">a #StEntry</doc>
            <type name="Entry" c:type="StEntry*"/>
          </instance-parameter>
          <parameter name="hint_actor"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1481">a #ClutterActor</doc>
            <type name="Clutter.Actor" c:type="ClutterActor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_hint_text"
              c:identifier="st_entry_set_hint_text"
              glib:set-property="hint-text">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="1200">Sets the text to display when the entry is empty and unfocused. When the
entry is displaying the hint, it has a pseudo class of `indeterminate`.
A value of %NULL unsets the hint.</doc>
        <source-position filename="src/st/st-entry.h" line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1202">a #StEntry</doc>
            <type name="Entry" c:type="StEntry*"/>
          </instance-parameter>
          <parameter name="text"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1203">text to set as the entry hint</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_input_hints"
              c:identifier="st_entry_set_input_hints"
              glib:set-property="input-hints">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="1299">Sets the #StEntry:input-hints property, which
allows input methods to fine-tune their behaviour.</doc>
        <source-position filename="src/st/st-entry.h" line="55"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1301">a #StEntry</doc>
            <type name="Entry" c:type="StEntry*"/>
          </instance-parameter>
          <parameter name="hints" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1302">the hints</doc>
            <type name="Clutter.InputContentHintFlags"
                  c:type="ClutterInputContentHintFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_input_purpose"
              c:identifier="st_entry_set_input_purpose"
              glib:set-property="input-purpose">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="1251">Sets the #StEntry:input-purpose property which
can be used by on-screen keyboards and other input
methods to adjust their behaviour.</doc>
        <source-position filename="src/st/st-entry.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1253">a #StEntry</doc>
            <type name="Entry" c:type="StEntry*"/>
          </instance-parameter>
          <parameter name="purpose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1254">the purpose</doc>
            <type name="Clutter.InputContentPurpose"
                  c:type="ClutterInputContentPurpose"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_primary_icon"
              c:identifier="st_entry_set_primary_icon"
              glib:set-property="primary-icon">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="1392">Set the primary icon of the entry to @icon.</doc>
        <source-position filename="src/st/st-entry.h" line="61"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1394">a #StEntry</doc>
            <type name="Entry" c:type="StEntry*"/>
          </instance-parameter>
          <parameter name="icon"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1395">a #ClutterActor</doc>
            <type name="Clutter.Actor" c:type="ClutterActor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_secondary_icon"
              c:identifier="st_entry_set_secondary_icon"
              glib:set-property="secondary-icon">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="1435">Set the secondary icon of the entry to @icon.</doc>
        <source-position filename="src/st/st-entry.h" line="65"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1437">a #StEntry</doc>
            <type name="Entry" c:type="StEntry*"/>
          </instance-parameter>
          <parameter name="icon"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1438">an #ClutterActor</doc>
            <type name="Clutter.Actor" c:type="ClutterActor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_text"
              c:identifier="st_entry_set_text"
              glib:set-property="text">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="1160">Sets the text displayed on the entry. If @text is %NULL, the #ClutterText
will instead be set to an empty string.</doc>
        <source-position filename="src/st/st-entry.h" line="45"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1162">a #StEntry</doc>
            <type name="Entry" c:type="StEntry*"/>
          </instance-parameter>
          <parameter name="text"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-entry.c"
                 line="1163">text to set the entry to</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="clutter-text"
                transfer-ownership="none"
                getter="get_clutter_text">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="918">The internal #ClutterText actor supporting the #StEntry.</doc>
        <type name="Clutter.Text"/>
      </property>
      <property name="hint-actor"
                writable="1"
                transfer-ownership="none"
                setter="set_hint_actor"
                getter="get_hint_actor">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="968">A #ClutterActor to display when the entry is empty and unfocused. Setting
this will replace the actor displaying #StEntry:hint-text.</doc>
        <type name="Clutter.Actor"/>
      </property>
      <property name="hint-text"
                writable="1"
                transfer-ownership="none"
                setter="set_hint_text"
                getter="get_hint_text"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="954">The text to display when the entry is empty and unfocused. Setting this
will replace the actor of #StEntry::hint-actor.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="input-hints"
                writable="1"
                transfer-ownership="none"
                setter="set_input_hints"
                getter="get_input_hints"
                default-value="0">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="1008">The #ClutterInputContentHintFlags providing additional hints (beyond
#StEntry:input-purpose) that allow input methods to fine-tune their
behaviour.</doc>
        <type name="Clutter.InputContentHintFlags"/>
      </property>
      <property name="input-purpose"
                writable="1"
                transfer-ownership="none"
                setter="set_input_purpose"
                getter="get_input_purpose"
                default-value="CLUTTER_INPUT_CONTENT_PURPOSE_NORMAL">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="994">The #ClutterInputContentPurpose that helps on-screen keyboards and similar
input methods to decide which keys should be presented to the user.</doc>
        <type name="Clutter.InputContentPurpose"/>
      </property>
      <property name="primary-icon"
                writable="1"
                transfer-ownership="none"
                setter="set_primary_icon"
                getter="get_primary_icon">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="930">The #ClutterActor acting as the primary icon at the start of the #StEntry.</doc>
        <type name="Clutter.Actor"/>
      </property>
      <property name="secondary-icon"
                writable="1"
                transfer-ownership="none"
                setter="set_secondary_icon"
                getter="get_secondary_icon">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="942">The #ClutterActor acting as the secondary icon at the end of the #StEntry.</doc>
        <type name="Clutter.Actor"/>
      </property>
      <property name="text"
                writable="1"
                transfer-ownership="none"
                setter="set_text"
                getter="get_text"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="982">The current text value of the #StEntry.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="Widget" c:type="StWidget"/>
      </field>
      <glib:signal name="primary-icon-clicked" when="last">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="1026">Emitted when the primary icon is clicked.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="secondary-icon-clicked" when="last">
        <doc xml:space="preserve"
             filename="src/st/st-entry.c"
             line="1040">Emitted when the secondary icon is clicked.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="EntryClass"
            c:type="StEntryClass"
            glib:is-gtype-struct-for="Entry">
      <source-position filename="src/st/st-entry.h" line="41"/>
      <field name="parent_class">
        <type name="WidgetClass" c:type="StWidgetClass"/>
      </field>
      <field name="primary_icon_clicked">
        <callback name="primary_icon_clicked">
          <source-position filename="src/st/st-entry.h" line="39"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="entry" transfer-ownership="none">
              <type name="Entry" c:type="StEntry*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="secondary_icon_clicked">
        <callback name="secondary_icon_clicked">
          <source-position filename="src/st/st-entry.h" line="40"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="entry" transfer-ownership="none">
              <type name="Entry" c:type="StEntry*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <callback name="EntryCursorFunc" c:type="StEntryCursorFunc">
      <source-position filename="src/st/st-entry.h" line="73"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="entry" transfer-ownership="none">
          <type name="Entry" c:type="StEntry*"/>
        </parameter>
        <parameter name="use_ibeam" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="FocusManager"
           c:symbol-prefix="focus_manager"
           c:type="StFocusManager"
           parent="GObject.Object"
           glib:type-name="StFocusManager"
           glib:get-type="st_focus_manager_get_type"
           glib:type-struct="FocusManagerClass">
      <doc xml:space="preserve"
           filename="src/st/st-focus-manager.h"
           line="39">The #StFocusManager struct contains only private data</doc>
      <source-position filename="src/st/st-focus-manager.h" line="34"/>
      <function name="get_for_stage"
                c:identifier="st_focus_manager_get_for_stage">
        <doc xml:space="preserve"
             filename="src/st/st-focus-manager.c"
             line="131">Gets the #StFocusManager for @stage, creating it if necessary.</doc>
        <source-position filename="src/st/st-focus-manager.h" line="52"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-focus-manager.c"
               line="137">the focus manager for @stage</doc>
          <type name="FocusManager" c:type="StFocusManager*"/>
        </return-value>
        <parameters>
          <parameter name="stage" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-focus-manager.c"
                 line="133">a #ClutterStage</doc>
            <type name="Clutter.Stage" c:type="ClutterStage*"/>
          </parameter>
        </parameters>
      </function>
      <method name="add_group" c:identifier="st_focus_manager_add_group">
        <doc xml:space="preserve"
             filename="src/st/st-focus-manager.c"
             line="168">Adds a new focus group to @manager. When the focus is in an actor
that is a descendant of @root, @manager will handle moving focus
from one actor to another within @root based on keyboard events.</doc>
        <source-position filename="src/st/st-focus-manager.h" line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-focus-manager.c"
                 line="170">the #StFocusManager</doc>
            <type name="FocusManager" c:type="StFocusManager*"/>
          </instance-parameter>
          <parameter name="root" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-focus-manager.c"
                 line="171">the root container of the group</doc>
            <type name="Widget" c:type="StWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_group" c:identifier="st_focus_manager_get_group">
        <doc xml:space="preserve"
             filename="src/st/st-focus-manager.c"
             line="212">Checks if @widget is inside a focus group, and if so, returns
the root of that group.</doc>
        <source-position filename="src/st/st-focus-manager.h" line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-focus-manager.c"
               line="220">the focus group root, or %NULL if
@widget is not in a focus group</doc>
          <type name="Widget" c:type="StWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-focus-manager.c"
                 line="214">the #StFocusManager</doc>
            <type name="FocusManager" c:type="StFocusManager*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-focus-manager.c"
                 line="215">an #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="navigate_from_event"
              c:identifier="st_focus_manager_navigate_from_event">
        <doc xml:space="preserve"
             filename="src/st/st-focus-manager.c"
             line="235">Try to navigate from @event as if it bubbled all the way up to
the stage. This is useful in complex event handling situations
where you want key navigation, but a parent might be stopping
the key navigation event from bubbling all the way up to the stage.</doc>
        <source-position filename="src/st/st-focus-manager.h" line="60"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-focus-manager.c"
               line="245">Whether a new actor was navigated to</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-focus-manager.c"
                 line="237">the #StFocusManager</doc>
            <type name="FocusManager" c:type="StFocusManager*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-focus-manager.c"
                 line="238">a #ClutterEvent</doc>
            <type name="Clutter.Event" c:type="ClutterEvent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_group" c:identifier="st_focus_manager_remove_group">
        <doc xml:space="preserve"
             filename="src/st/st-focus-manager.c"
             line="190">Removes the group rooted at @root from @manager</doc>
        <source-position filename="src/st/st-focus-manager.h" line="56"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-focus-manager.c"
                 line="192">the #StFocusManager</doc>
            <type name="FocusManager" c:type="StFocusManager*"/>
          </instance-parameter>
          <parameter name="root" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-focus-manager.c"
                 line="193">the root container of the group</doc>
            <type name="Widget" c:type="StWidget*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="FocusManagerPrivate" c:type="StFocusManagerPrivate*"/>
      </field>
    </class>
    <record name="FocusManagerClass"
            c:type="StFocusManagerClass"
            glib:is-gtype-struct-for="FocusManager">
      <source-position filename="src/st/st-focus-manager.h" line="34"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="FocusManagerPrivate"
            c:type="StFocusManagerPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/st/st-focus-manager.h" line="37"/>
    </record>
    <function-macro name="GENERIC_ACCESSIBLE"
                    c:identifier="ST_GENERIC_ACCESSIBLE"
                    introspectable="0">
      <source-position filename="src/st/st-generic-accessible.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="GENERIC_ACCESSIBLE_CLASS"
                    c:identifier="ST_GENERIC_ACCESSIBLE_CLASS"
                    introspectable="0">
      <source-position filename="src/st/st-generic-accessible.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="GENERIC_ACCESSIBLE_GET_CLASS"
                    c:identifier="ST_GENERIC_ACCESSIBLE_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/st/st-generic-accessible.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="GenericAccessible"
           c:symbol-prefix="generic_accessible"
           c:type="StGenericAccessible"
           parent="WidgetAccessible"
           glib:type-name="StGenericAccessible"
           glib:get-type="st_generic_accessible_get_type"
           glib:type-struct="GenericAccessibleClass">
      <source-position filename="src/st/st-generic-accessible.h" line="54"/>
      <implements name="Atk.Action"/>
      <implements name="Atk.Component"/>
      <implements name="Atk.Value"/>
      <constructor name="new_for_actor"
                   c:identifier="st_generic_accessible_new_for_actor">
        <doc xml:space="preserve"
             filename="src/st/st-generic-accessible.c"
             line="224">Create a new #StGenericAccessible for @actor.

This is useful only for custom widgets that need a proxy for #AtkObject.</doc>
        <source-position filename="src/st/st-generic-accessible.h" line="58"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-generic-accessible.c"
               line="232">a new #AtkObject</doc>
          <type name="Atk.Object" c:type="AtkObject*"/>
        </return-value>
        <parameters>
          <parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-generic-accessible.c"
                 line="226">a #Clutter Actor</doc>
            <type name="Clutter.Actor" c:type="ClutterActor*"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent">
        <type name="WidgetAccessible" c:type="StWidgetAccessible"/>
      </field>
      <field name="priv">
        <type name="GenericAccessiblePrivate"
              c:type="StGenericAccessiblePrivate*"/>
      </field>
      <glib:signal name="get-current-value" when="last">
        <doc xml:space="preserve"
             filename="src/st/st-generic-accessible.c"
             line="67">Emitted when atk_value_get_current_value() is called on
@self. Right now we only care about doubles, so the value is
directly returned by the signal.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-generic-accessible.c"
               line="75">value of the current element.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
      </glib:signal>
      <glib:signal name="get-maximum-value" when="last">
        <doc xml:space="preserve"
             filename="src/st/st-generic-accessible.c"
             line="85">Emitted when atk_value_get_maximum_value() is called on
@self. Right now we only care about doubles, so the value is
directly returned by the signal.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-generic-accessible.c"
               line="93">maximum value of the accessible.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
      </glib:signal>
      <glib:signal name="get-minimum-increment" when="last">
        <doc xml:space="preserve"
             filename="src/st/st-generic-accessible.c"
             line="121">Emitted when atk_value_get_minimum_increment() is called on
@self. Right now we only care about doubles, so the value is
directly returned by the signal.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-generic-accessible.c"
               line="129">value of the current element.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
      </glib:signal>
      <glib:signal name="get-minimum-value" when="last">
        <doc xml:space="preserve"
             filename="src/st/st-generic-accessible.c"
             line="103">Emitted when atk_value_get_current_value() is called on
@self. Right now we only care about doubles, so the value is
directly returned by the signal.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-generic-accessible.c"
               line="111">minimum value of the accessible.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
      </glib:signal>
      <glib:signal name="set-current-value" when="last">
        <doc xml:space="preserve"
             filename="src/st/st-generic-accessible.c"
             line="139">Emitted when atk_value_set_current_value() is called on
@self. Right now we only care about doubles, so the value is
directly returned by the signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="new_value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-generic-accessible.c"
                 line="142">the new value for the accessible</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="GenericAccessibleClass"
            c:type="StGenericAccessibleClass"
            glib:is-gtype-struct-for="GenericAccessible">
      <source-position filename="src/st/st-generic-accessible.h" line="54"/>
      <field name="parent_class">
        <type name="WidgetAccessibleClass" c:type="StWidgetAccessibleClass"/>
      </field>
    </record>
    <record name="GenericAccessiblePrivate"
            c:type="StGenericAccessiblePrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/st/st-generic-accessible.h" line="42"/>
    </record>
    <enumeration name="GradientType"
                 glib:type-name="StGradientType"
                 glib:get-type="st_gradient_type_get_type"
                 c:type="StGradientType">
      <doc xml:space="preserve"
           filename="src/st/st-theme-node.h"
           line="127">Used to specify options when rendering gradients.</doc>
      <member name="none"
              value="0"
              c:identifier="ST_GRADIENT_NONE"
              glib:nick="none"
              glib:name="ST_GRADIENT_NONE">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.h"
             line="129">No gradient.</doc>
      </member>
      <member name="vertical"
              value="1"
              c:identifier="ST_GRADIENT_VERTICAL"
              glib:nick="vertical"
              glib:name="ST_GRADIENT_VERTICAL">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.h"
             line="130">A vertical gradient.</doc>
      </member>
      <member name="horizontal"
              value="2"
              c:identifier="ST_GRADIENT_HORIZONTAL"
              glib:nick="horizontal"
              glib:name="ST_GRADIENT_HORIZONTAL">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.h"
             line="131">A horizontal gradient.</doc>
      </member>
      <member name="radial"
              value="3"
              c:identifier="ST_GRADIENT_RADIAL"
              glib:nick="radial"
              glib:name="ST_GRADIENT_RADIAL">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.h"
             line="132">Lookup the style requested in the icon name.</doc>
      </member>
    </enumeration>
    <function-macro name="IS_GENERIC_ACCESSIBLE"
                    c:identifier="ST_IS_GENERIC_ACCESSIBLE"
                    introspectable="0">
      <source-position filename="src/st/st-generic-accessible.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_GENERIC_ACCESSIBLE_CLASS"
                    c:identifier="ST_IS_GENERIC_ACCESSIBLE_CLASS"
                    introspectable="0">
      <source-position filename="src/st/st-generic-accessible.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_WIDGET_ACCESSIBLE"
                    c:identifier="ST_IS_WIDGET_ACCESSIBLE"
                    introspectable="0">
      <source-position filename="src/st/st-widget-accessible.h" line="39"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_WIDGET_ACCESSIBLE_CLASS"
                    c:identifier="ST_IS_WIDGET_ACCESSIBLE_CLASS"
                    introspectable="0">
      <source-position filename="src/st/st-widget-accessible.h" line="47"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Icon"
           c:symbol-prefix="icon"
           c:type="StIcon"
           parent="Widget"
           glib:type-name="StIcon"
           glib:get-type="st_icon_get_type"
           glib:type-struct="IconClass">
      <doc xml:space="preserve"
           filename="src/st/st-icon.h"
           line="44">The contents of this structure are private and should only be accessed
through the public API.</doc>
      <source-position filename="src/st/st-icon.h" line="40"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new" c:identifier="st_icon_new">
        <doc xml:space="preserve"
             filename="src/st/st-icon.c"
             line="636">Create a newly allocated #StIcon.</doc>
        <source-position filename="src/st/st-icon.h" line="57"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-icon.c"
               line="641">A newly allocated #StIcon</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
      </constructor>
      <method name="get_fallback_gicon"
              c:identifier="st_icon_get_fallback_gicon"
              glib:get-property="fallback-gicon">
        <doc xml:space="preserve"
             filename="src/st/st-icon.c"
             line="743">Gets the currently set fallback #GIcon.</doc>
        <source-position filename="src/st/st-icon.h" line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-icon.c"
               line="749">The fallback #GIcon, if set, otherwise %NULL</doc>
          <type name="Gio.Icon" c:type="GIcon*"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon.c"
                 line="745">a #StIcon</doc>
            <type name="Icon" c:type="StIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_fallback_icon_name"
              c:identifier="st_icon_get_fallback_icon_name"
              glib:get-property="fallback-icon-name">
        <doc xml:space="preserve"
             filename="src/st/st-icon.c"
             line="828">This is a convenience method to get the icon name of the fallback
#GThemedIcon that is currently set.</doc>
        <source-position filename="src/st/st-icon.h" line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-icon.c"
               line="835">The name of the icon or %NULL if no icon is set</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon.c"
                 line="830">an #StIcon</doc>
            <type name="Icon" c:type="StIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_gicon"
              c:identifier="st_icon_get_gicon"
              glib:get-property="gicon">
        <doc xml:space="preserve"
             filename="src/st/st-icon.c"
             line="704">Gets the current #GIcon in use.</doc>
        <source-position filename="src/st/st-icon.h" line="59"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-icon.c"
               line="710">The current #GIcon, if set, otherwise %NULL</doc>
          <type name="Gio.Icon" c:type="GIcon*"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon.c"
                 line="706">an #StIcon</doc>
            <type name="Icon" c:type="StIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_name"
              c:identifier="st_icon_get_icon_name"
              glib:get-property="icon-name">
        <doc xml:space="preserve"
             filename="src/st/st-icon.c"
             line="649">This is a convenience method to get the icon name of the current icon, if it
is currently a #GThemedIcon, or %NULL otherwise.</doc>
        <source-position filename="src/st/st-icon.h" line="67"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-icon.c"
               line="656">The name of the icon or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon.c"
                 line="651">an #StIcon</doc>
            <type name="Icon" c:type="StIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_size"
              c:identifier="st_icon_get_icon_size"
              glib:get-property="icon-size">
        <doc xml:space="preserve"
             filename="src/st/st-icon.c"
             line="784">Gets the explicit size set using st_icon_set_icon_size() for the icon.
This is not necessarily the size that the icon will be displayed at.</doc>
        <source-position filename="src/st/st-icon.h" line="75"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-icon.c"
               line="791">The explicitly set size, or -1 if no size has been set</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon.c"
                 line="786">an #StIcon</doc>
            <type name="Icon" c:type="StIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_fallback_gicon"
              c:identifier="st_icon_set_fallback_gicon"
              glib:set-property="fallback-gicon">
        <doc xml:space="preserve"
             filename="src/st/st-icon.c"
             line="759">Sets a fallback #GIcon to show if the normal icon fails to load.
If @fallback_gicon is %NULL or fails to load, the icon is unset and no
texture will be visible for the fallback icon.</doc>
        <source-position filename="src/st/st-icon.h" line="64"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon.c"
                 line="761">a #StIcon</doc>
            <type name="Icon" c:type="StIcon*"/>
          </instance-parameter>
          <parameter name="fallback_gicon"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-icon.c"
                 line="762">the fallback #GIcon</doc>
            <type name="Gio.Icon" c:type="GIcon*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_fallback_icon_name"
              c:identifier="st_icon_set_fallback_icon_name"
              glib:set-property="fallback-icon-name">
        <doc xml:space="preserve"
             filename="src/st/st-icon.c"
             line="852">This is a convenience method to set the fallback #GIcon to a #GThemedIcon
created using the given icon name. If @fallback_icon_name is an empty
string, %NULL or fails to load, the icon is unset and no texture will
be visible for the fallback icon.</doc>
        <source-position filename="src/st/st-icon.h" line="72"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon.c"
                 line="854">an #StIcon</doc>
            <type name="Icon" c:type="StIcon*"/>
          </instance-parameter>
          <parameter name="fallback_icon_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-icon.c"
                 line="855">the name of the fallback icon</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_gicon"
              c:identifier="st_icon_set_gicon"
              glib:set-property="gicon">
        <doc xml:space="preserve"
             filename="src/st/st-icon.c"
             line="720">Sets a #GIcon to show for the icon. If @gicon is %NULL or fails to load,
the fallback icon set using st_icon_set_fallback_icon() will be shown.</doc>
        <source-position filename="src/st/st-icon.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon.c"
                 line="722">an #StIcon</doc>
            <type name="Icon" c:type="StIcon*"/>
          </instance-parameter>
          <parameter name="gicon"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-icon.c"
                 line="723">a #GIcon</doc>
            <type name="Gio.Icon" c:type="GIcon*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_name"
              c:identifier="st_icon_set_icon_name"
              glib:set-property="icon-name">
        <doc xml:space="preserve"
             filename="src/st/st-icon.c"
             line="673">This is a convenience method to set the #GIcon to a #GThemedIcon created
using the given icon name. If @icon_name is an empty string, %NULL or
fails to load, the fallback icon will be shown.</doc>
        <source-position filename="src/st/st-icon.h" line="68"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon.c"
                 line="675">an #StIcon</doc>
            <type name="Icon" c:type="StIcon*"/>
          </instance-parameter>
          <parameter name="icon_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-icon.c"
                 line="676">the name of the icon</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_size"
              c:identifier="st_icon_set_icon_size"
              glib:set-property="icon-size">
        <doc xml:space="preserve"
             filename="src/st/st-icon.c"
             line="801">Sets an explicit size for the icon. Setting @size to -1 will use the size
defined by the current style or the default icon size.</doc>
        <source-position filename="src/st/st-icon.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon.c"
                 line="803">an #StIcon</doc>
            <type name="Icon" c:type="StIcon*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon.c"
                 line="804">if positive, the new size, otherwise the size will be
  derived from the current style</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <property name="fallback-gicon"
                writable="1"
                transfer-ownership="none"
                setter="set_fallback_gicon"
                getter="get_fallback_gicon">
        <doc xml:space="preserve"
             filename="src/st/st-icon.c"
             line="312">The fallback #GIcon to display if #StIcon:gicon fails to load.</doc>
        <type name="Gio.Icon"/>
      </property>
      <property name="fallback-icon-name"
                writable="1"
                transfer-ownership="none"
                setter="set_fallback_icon_name"
                getter="get_fallback_icon_name"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="src/st/st-icon.c"
             line="349">The fallback icon name of the #StIcon. See st_icon_set_fallback_icon_name()
for details.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="gicon"
                writable="1"
                transfer-ownership="none"
                setter="set_gicon"
                getter="get_gicon">
        <doc xml:space="preserve"
             filename="src/st/st-icon.c"
             line="300">The #GIcon being displayed by this #StIcon.</doc>
        <type name="Gio.Icon"/>
      </property>
      <property name="icon-name"
                writable="1"
                transfer-ownership="none"
                setter="set_icon_name"
                getter="get_icon_name"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="src/st/st-icon.c"
             line="324">The name of the icon if the icon being displayed is a #GThemedIcon.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="icon-size"
                writable="1"
                transfer-ownership="none"
                setter="set_icon_size"
                getter="get_icon_size"
                default-value="-1">
        <doc xml:space="preserve"
             filename="src/st/st-icon.c"
             line="336">The size of the icon, if greater than `0`. Otherwise the icon size is derived
from the current style.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="Widget" c:type="StWidget"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="IconPrivate" c:type="StIconPrivate*"/>
      </field>
    </class>
    <record name="IconClass"
            c:type="StIconClass"
            glib:is-gtype-struct-for="Icon">
      <source-position filename="src/st/st-icon.h" line="40"/>
      <field name="parent_class">
        <type name="WidgetClass" c:type="StWidgetClass"/>
      </field>
    </record>
    <record name="IconColors"
            c:type="StIconColors"
            glib:type-name="StIconColors"
            glib:get-type="st_icon_colors_get_type"
            c:symbol-prefix="icon_colors">
      <doc xml:space="preserve"
           filename="src/st/st-icon-colors.h"
           line="13">The #StIconColors structure encapsulates colors for colorizing a symbolic
icon.</doc>
      <source-position filename="src/st/st-icon-colors.h" line="28"/>
      <field name="foreground" writable="1">
        <doc xml:space="preserve"
             filename="src/st/st-icon-colors.h"
             line="15">foreground color</doc>
        <type name="Clutter.Color" c:type="ClutterColor"/>
      </field>
      <field name="warning" writable="1">
        <doc xml:space="preserve"
             filename="src/st/st-icon-colors.h"
             line="16">color indicating a warning state</doc>
        <type name="Clutter.Color" c:type="ClutterColor"/>
      </field>
      <field name="error" writable="1">
        <doc xml:space="preserve"
             filename="src/st/st-icon-colors.h"
             line="17">color indicating an error state</doc>
        <type name="Clutter.Color" c:type="ClutterColor"/>
      </field>
      <field name="success" writable="1">
        <doc xml:space="preserve"
             filename="src/st/st-icon-colors.h"
             line="18">color indicating a successful operation</doc>
        <type name="Clutter.Color" c:type="ClutterColor"/>
      </field>
      <constructor name="new" c:identifier="st_icon_colors_new">
        <doc xml:space="preserve"
             filename="src/st/st-icon-colors.c"
             line="24">Creates a new #StIconColors. All colors are initialized to transparent black.</doc>
        <source-position filename="src/st/st-icon-colors.h" line="32"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-icon-colors.c"
               line="29">a newly created #StIconColors. Free with st_icon_colors_unref()</doc>
          <type name="IconColors" c:type="StIconColors*"/>
        </return-value>
      </constructor>
      <method name="copy" c:identifier="st_icon_colors_copy">
        <doc xml:space="preserve"
             filename="src/st/st-icon-colors.c"
             line="69">Creates a new StIconColors structure that is a copy of the passed
in @colors. You would use this function instead of st_icon_colors_ref()
if you were planning to change colors in the result.</doc>
        <source-position filename="src/st/st-icon-colors.h" line="35"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-icon-colors.c"
               line="77">a newly created #StIconColors.</doc>
          <type name="IconColors" c:type="StIconColors*"/>
        </return-value>
        <parameters>
          <instance-parameter name="colors" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-colors.c"
                 line="71">a #StIconColors</doc>
            <type name="IconColors" c:type="StIconColors*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="st_icon_colors_equal">
        <doc xml:space="preserve"
             filename="src/st/st-icon-colors.c"
             line="96">Check if two #StIconColors objects are identical.</doc>
        <source-position filename="src/st/st-icon-colors.h" line="36"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-icon-colors.c"
               line="103">%TRUE if the #StIconColors are equal</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="colors" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-colors.c"
                 line="98">a #StIconColors</doc>
            <type name="IconColors" c:type="StIconColors*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-colors.c"
                 line="99">another #StIconColors</doc>
            <type name="IconColors" c:type="StIconColors*"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="st_icon_colors_ref">
        <doc xml:space="preserve"
             filename="src/st/st-icon-colors.c"
             line="37">Atomically increments the reference count of @colors by one.</doc>
        <source-position filename="src/st/st-icon-colors.h" line="33"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-icon-colors.c"
               line="43">the passed in #StIconColors.</doc>
          <type name="IconColors" c:type="StIconColors*"/>
        </return-value>
        <parameters>
          <instance-parameter name="colors" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-colors.c"
                 line="39">a #StIconColors</doc>
            <type name="IconColors" c:type="StIconColors*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="st_icon_colors_unref">
        <doc xml:space="preserve"
             filename="src/st/st-icon-colors.c"
             line="53">Atomically decrements the reference count of @colors by one.
If the reference count drops to 0, all memory allocated by the
#StIconColors is released.</doc>
        <source-position filename="src/st/st-icon-colors.h" line="34"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="colors" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-colors.c"
                 line="55">a #StIconColors</doc>
            <type name="IconColors" c:type="StIconColors*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="IconInfo"
           c:symbol-prefix="icon_info"
           c:type="StIconInfo"
           parent="GObject.Object"
           glib:type-name="StIconInfo"
           glib:get-type="st_icon_info_get_type"
           glib:type-struct="IconInfoClass">
      <source-position filename="src/st/st-icon-theme.h" line="30"/>
      <constructor name="new_for_pixbuf"
                   c:identifier="st_icon_info_new_for_pixbuf">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="4309">Creates a #StIconInfo for a #GdkPixbuf.</doc>
        <source-position filename="src/st/st-icon-theme.h" line="171"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="4316">a #StIconInfo</doc>
          <type name="IconInfo" c:type="StIconInfo*"/>
        </return-value>
        <parameters>
          <parameter name="icon_theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="4311">a #StIconTheme</doc>
            <type name="IconTheme" c:type="StIconTheme*"/>
          </parameter>
          <parameter name="pixbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="4312">the pixbuf to wrap in a #StIconInfo</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_base_scale" c:identifier="st_icon_info_get_base_scale">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="2920">Gets the base scale for the icon. The base scale is a scale
for the icon that was specified by the icon theme creator.
For instance an icon drawn for a high-dpi screen with window
scale 2 for a base size of 32 will be 64 pixels tall and have
a base scale of 2.</doc>
        <source-position filename="src/st/st-icon-theme.h" line="176"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="2930">the base scale</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="2922">a #StIconInfo</doc>
            <type name="IconInfo" c:type="StIconInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_base_size" c:identifier="st_icon_info_get_base_size">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="2893">Gets the base size for the icon. The base size
is a size for the icon that was specified by
the icon theme creator. This may be different
than the actual size of image; an example of
this is small emblem icons that can be attached
to a larger icon. These icons will be given
the same base size as the larger icons to which
they are attached.

Note that for scaled icons the base size does
not include the base scale.</doc>
        <source-position filename="src/st/st-icon-theme.h" line="174"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="2909">the base size, or 0, if no base
    size is known for the icon.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="2895">a #StIconInfo</doc>
            <type name="IconInfo" c:type="StIconInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_filename" c:identifier="st_icon_info_get_filename">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="2940">Gets the filename for the icon.</doc>
        <source-position filename="src/st/st-icon-theme.h" line="178"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="2946">the filename for the icon, or %NULL.
    The return value is owned by GTK+ and should not be modified
    or freed.</doc>
          <type name="filename" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="2942">a #StIconInfo</doc>
            <type name="IconInfo" c:type="StIconInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_symbolic" c:identifier="st_icon_info_is_symbolic">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="2958">Checks if the icon is symbolic or not. This currently uses only
the file name and not the file contents for determining this.
This behaviour may change in the future.</doc>
        <source-position filename="src/st/st-icon-theme.h" line="180"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="2966">%TRUE if the icon is symbolic, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="2960">a #StIconInfo</doc>
            <type name="IconInfo" c:type="StIconInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_icon"
              c:identifier="st_icon_info_load_icon"
              throws="1">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="3412">Renders an icon previously looked up in an icon theme using
st_icon_theme_lookup_icon(); the size will be based on the size
passed to st_icon_theme_lookup_icon(). Note that the resulting
pixbuf may not be exactly this size; an icon theme may have icons
that differ slightly from their nominal sizes, and in addition GTK+
will avoid scaling icons that it considers sufficiently close to the
requested size or for which the source image would have to be scaled
up too far. (This maintains sharpness.). This behaviour can be changed
by passing the %ST_ICON_LOOKUP_FORCE_SIZE flag when obtaining
the #StIconInfo. If this flag has been specified, the pixbuf
returned by this function will be scaled to the exact size.</doc>
        <source-position filename="src/st/st-icon-theme.h" line="182"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="3430">the rendered icon; this may be a newly
    created icon or a new reference to an internal icon, so you must
    not modify the icon. Use g_object_unref() to release your reference
    to the icon.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="3414">a #StIconInfo from st_icon_theme_lookup_icon()</doc>
            <type name="IconInfo" c:type="StIconInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_icon_async"
              c:identifier="st_icon_info_load_icon_async">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="3495">Asynchronously load, render and scale an icon previously looked up
from the icon theme using st_icon_theme_lookup_icon().

For more details, see st_icon_info_load_icon() which is the synchronous
version of this call.</doc>
        <source-position filename="src/st/st-icon-theme.h" line="185"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="3497">a #StIconInfo from st_icon_theme_lookup_icon()</doc>
            <type name="IconInfo" c:type="StIconInfo*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="3498">optional #GCancellable object, %NULL to ignore</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="3499">a #GAsyncReadyCallback to call when the
    request is satisfied</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="3501">the data to pass to callback function</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_icon_finish"
              c:identifier="st_icon_info_load_icon_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="3540">Finishes an async icon load, see st_icon_info_load_icon_async().</doc>
        <source-position filename="src/st/st-icon-theme.h" line="190"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="3549">the rendered icon; this may be a newly
    created icon or a new reference to an internal icon, so you must
    not modify the icon. Use g_object_unref() to release your reference
    to the icon.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="3542">a #StIconInfo from st_icon_theme_lookup_icon()</doc>
            <type name="IconInfo" c:type="StIconInfo*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="3543">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_symbolic"
              c:identifier="st_icon_info_load_symbolic"
              throws="1">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="3929">Loads an icon, modifying it to match the system colours for the foreground,
success, warning and error colors provided. If the icon is not a symbolic
one, the function will return the result from st_icon_info_load_icon().

This allows loading symbolic icons that will match the system theme.

Unless you are implementing a widget, you will want to use
g_themed_icon_new_with_default_fallbacks() to load the icon.

As implementation details, the icon loaded needs to be of SVG type,
contain the “symbolic” term as the last component of the icon name,
and use the “fg”, “success”, “warning” and “error” CSS styles in the
SVG file itself.

See the [Symbolic Icons Specification](http://www.freedesktop.org/wiki/SymbolicIcons)
for more information about symbolic icons.</doc>
        <source-position filename="src/st/st-icon-theme.h" line="194"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="3956">a #GdkPixbuf representing the loaded icon</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="3931">a #StIconInfo</doc>
            <type name="IconInfo" c:type="StIconInfo*"/>
          </instance-parameter>
          <parameter name="colors" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="3932">a #StIconColors representing the foreground, warning and error colors</doc>
            <type name="IconColors" c:type="StIconColors*"/>
          </parameter>
          <parameter name="was_symbolic"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="3933">a #gboolean, returns whether the
    loaded icon was a symbolic one and whether the @fg color was
    applied to it.</doc>
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_symbolic_async"
              c:identifier="st_icon_info_load_symbolic_async">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="4037">Asynchronously load, render and scale a symbolic icon previously looked up
from the icon theme using st_icon_theme_lookup_icon().

For more details, see st_icon_info_load_symbolic() which is the synchronous
version of this call.</doc>
        <source-position filename="src/st/st-icon-theme.h" line="199"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="4039">a #StIconInfo from st_icon_theme_lookup_icon()</doc>
            <type name="IconInfo" c:type="StIconInfo*"/>
          </instance-parameter>
          <parameter name="colors" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="4040">an #StIconColors representing the foreground, error and
    success colors of the icon</doc>
            <type name="IconColors" c:type="StIconColors*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="4042">optional #GCancellable object,
    %NULL to ignore</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="4044">a #GAsyncReadyCallback to call when the
    request is satisfied</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="4046">the data to pass to callback function</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_symbolic_finish"
              c:identifier="st_icon_info_load_symbolic_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="4098">Finishes an async icon load, see st_icon_info_load_symbolic_async().</doc>
        <source-position filename="src/st/st-icon-theme.h" line="205"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="4110">the rendered icon; this may be a newly
    created icon or a new reference to an internal icon, so you must
    not modify the icon. Use g_object_unref() to release your reference
    to the icon.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="4100">a #StIconInfo from st_icon_theme_lookup_icon()</doc>
            <type name="IconInfo" c:type="StIconInfo*"/>
          </instance-parameter>
          <parameter name="res" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="4101">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="was_symbolic"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="4102">a #gboolean, returns whether the
    loaded icon was a symbolic one and whether the @fg color was
    applied to it.</doc>
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="IconInfoClass"
            c:type="StIconInfoClass"
            glib:is-gtype-struct-for="IconInfo">
      <source-position filename="src/st/st-icon-theme.h" line="30"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <bitfield name="IconLookupFlags"
              glib:type-name="StIconLookupFlags"
              glib:get-type="st_icon_lookup_flags_get_type"
              c:type="StIconLookupFlags">
      <doc xml:space="preserve"
           filename="src/st/st-icon-theme.h"
           line="35">Used to specify options for st_icon_theme_lookup_icon()</doc>
      <member name="no_svg"
              value="1"
              c:identifier="ST_ICON_LOOKUP_NO_SVG"
              glib:nick="no-svg"
              glib:name="ST_ICON_LOOKUP_NO_SVG">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.h"
             line="37">Never get SVG icons, even if gdk-pixbuf
  supports them. Cannot be used together with %ST_ICON_LOOKUP_FORCE_SVG.</doc>
      </member>
      <member name="force_svg"
              value="2"
              c:identifier="ST_ICON_LOOKUP_FORCE_SVG"
              glib:nick="force-svg"
              glib:name="ST_ICON_LOOKUP_FORCE_SVG">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.h"
             line="39">Get SVG icons, even if gdk-pixbuf
  doesn’t support them.
  Cannot be used together with %ST_ICON_LOOKUP_NO_SVG.</doc>
      </member>
      <member name="generic_fallback"
              value="4"
              c:identifier="ST_ICON_LOOKUP_GENERIC_FALLBACK"
              glib:nick="generic-fallback"
              glib:name="ST_ICON_LOOKUP_GENERIC_FALLBACK">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.h"
             line="42">Try to shorten icon name at '-'
  characters before looking at inherited themes. This flag is only
  supported in functions that take a single icon name. For more general
  fallback, see st_icon_theme_choose_icon().</doc>
      </member>
      <member name="force_size"
              value="8"
              c:identifier="ST_ICON_LOOKUP_FORCE_SIZE"
              glib:nick="force-size"
              glib:name="ST_ICON_LOOKUP_FORCE_SIZE">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.h"
             line="46">Always get the icon scaled to the
  requested size.</doc>
      </member>
      <member name="force_regular"
              value="16"
              c:identifier="ST_ICON_LOOKUP_FORCE_REGULAR"
              glib:nick="force-regular"
              glib:name="ST_ICON_LOOKUP_FORCE_REGULAR">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.h"
             line="48">Try to always load regular icons, even
  when symbolic icon names are given.</doc>
      </member>
      <member name="force_symbolic"
              value="32"
              c:identifier="ST_ICON_LOOKUP_FORCE_SYMBOLIC"
              glib:nick="force-symbolic"
              glib:name="ST_ICON_LOOKUP_FORCE_SYMBOLIC">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.h"
             line="50">Try to always load symbolic icons, even
  when regular icon names are given.</doc>
      </member>
      <member name="dir_ltr"
              value="64"
              c:identifier="ST_ICON_LOOKUP_DIR_LTR"
              glib:nick="dir-ltr"
              glib:name="ST_ICON_LOOKUP_DIR_LTR">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.h"
             line="52">Try to load a variant of the icon for left-to-right
  text direction.</doc>
      </member>
      <member name="dir_rtl"
              value="128"
              c:identifier="ST_ICON_LOOKUP_DIR_RTL"
              glib:nick="dir-rtl"
              glib:name="ST_ICON_LOOKUP_DIR_RTL">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.h"
             line="54">Try to load a variant of the icon for right-to-left
  text direction.</doc>
      </member>
    </bitfield>
    <record name="IconPrivate" c:type="StIconPrivate" disguised="1" opaque="1">
      <source-position filename="src/st/st-icon.h" line="42"/>
    </record>
    <enumeration name="IconStyle"
                 glib:type-name="StIconStyle"
                 glib:get-type="st_icon_style_get_type"
                 c:type="StIconStyle">
      <doc xml:space="preserve"
           filename="src/st/st-theme-node.h"
           line="143">Used to specify options when looking up icons.</doc>
      <member name="requested"
              value="0"
              c:identifier="ST_ICON_STYLE_REQUESTED"
              glib:nick="requested"
              glib:name="ST_ICON_STYLE_REQUESTED">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.h"
             line="145">Lookup the style requested in the icon name.</doc>
      </member>
      <member name="regular"
              value="1"
              c:identifier="ST_ICON_STYLE_REGULAR"
              glib:nick="regular"
              glib:name="ST_ICON_STYLE_REGULAR">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.h"
             line="146">Try to always load regular icons, even when symbolic
  icon names are given.</doc>
      </member>
      <member name="symbolic"
              value="2"
              c:identifier="ST_ICON_STYLE_SYMBOLIC"
              glib:nick="symbolic"
              glib:name="ST_ICON_STYLE_SYMBOLIC">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.h"
             line="148">Try to always load symbolic icons, even when regular
  icon names are given.</doc>
      </member>
    </enumeration>
    <class name="IconTheme"
           c:symbol-prefix="icon_theme"
           c:type="StIconTheme"
           parent="GObject.Object"
           glib:type-name="StIconTheme"
           glib:get-type="st_icon_theme_get_type"
           glib:type-struct="IconThemeClass">
      <doc xml:space="preserve"
           filename="src/st/st-icon-theme.c"
           line="36">#StIconTheme provides a facility for looking up icons by name
and size. The main reason for using a name rather than simply
providing a filename is to allow different icons to be used
depending on what “icon theme” is selected
by the user. The operation of icon themes on Linux and Unix
follows the [Icon Theme Specification](http://www.freedesktop.org/Standards/icon-theme-spec)
There is a fallback icon theme, named `hicolor`, where applications
should install their icons, but additional icon themes can be installed
as operating system vendors and users choose.

In many cases, named themes are used indirectly, via #StIcon,
rather than directly, but looking up icons directly is also simple.
The #StIconTheme object acts as a database of all the icons in the
current theme.</doc>
      <source-position filename="src/st/st-icon-theme.h" line="33"/>
      <constructor name="new" c:identifier="st_icon_theme_new">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="318">Creates a new icon theme object. Icon theme objects are used
to lookup up an icon by name in a particular icon theme.</doc>
        <source-position filename="src/st/st-icon-theme.h" line="92"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="324">the newly created #StIconTheme object.</doc>
          <type name="IconTheme" c:type="StIconTheme*"/>
        </return-value>
      </constructor>
      <method name="add_resource_path"
              c:identifier="st_icon_theme_add_resource_path">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="702">Adds a resource path that will be looked at when looking
for icons, similar to search paths.

This function should be used to make application-specific icons
available as part of the icon theme.

The resources are considered as part of the hicolor icon theme
and must be located in subdirectories that are defined in the
hicolor icon theme, such as `@path/16x16/actions/run.png`.
Icons that are directly placed in the resource path instead
of a subdirectory are also considered as ultimate fallback.</doc>
        <source-position filename="src/st/st-icon-theme.h" line="108"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="704">a #StIconTheme</doc>
            <type name="IconTheme" c:type="StIconTheme*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="705">a resource path</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="append_search_path"
              c:identifier="st_icon_theme_append_search_path">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="651">Appends a directory to the search path.
See st_icon_theme_set_search_path().</doc>
        <source-position filename="src/st/st-icon-theme.h" line="102"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="653">a #StIconTheme</doc>
            <type name="IconTheme" c:type="StIconTheme*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="654">directory name to append to the icon path</doc>
            <type name="filename" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="choose_icon" c:identifier="st_icon_theme_choose_icon">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="1683">Looks up a named icon and returns a #StIconInfo containing
information such as the filename of the icon. The icon
can then be rendered into a pixbuf using
st_icon_info_load_icon(). (st_icon_theme_load_icon()
combines these two steps if all you need is the pixbuf.)

If @icon_names contains more than one name, this function
tries them all in the given order before falling back to
inherited icon themes.</doc>
        <source-position filename="src/st/st-icon-theme.h" line="128"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="1701">a #StIconInfo object
containing information about the icon, or %NULL if the icon wasn’t
found.</doc>
          <type name="IconInfo" c:type="StIconInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1685">a #StIconTheme</doc>
            <type name="IconTheme" c:type="StIconTheme*"/>
          </instance-parameter>
          <parameter name="icon_names" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1686">%NULL-terminated array of
    icon names to lookup</doc>
            <array c:type="const char**">
              <type name="utf8" c:type="char*"/>
            </array>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1688">desired icon size</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1689">flags modifying the behavior of the icon lookup</doc>
            <type name="IconLookupFlags" c:type="StIconLookupFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="choose_icon_for_scale"
              c:identifier="st_icon_theme_choose_icon_for_scale">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="1720">Looks up a named icon for a particular window scale and returns
a #StIconInfo containing information such as the filename of the
icon. The icon can then be rendered into a pixbuf using
st_icon_info_load_icon(). (st_icon_theme_load_icon()
combines these two steps if all you need is the pixbuf.)

If @icon_names contains more than one name, this function
tries them all in the given order before falling back to
inherited icon themes.</doc>
        <source-position filename="src/st/st-icon-theme.h" line="133"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="1739">a #StIconInfo object
    containing information about the icon, or %NULL if the
    icon wasn’t found.</doc>
          <type name="IconInfo" c:type="StIconInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1722">a #StIconTheme</doc>
            <type name="IconTheme" c:type="StIconTheme*"/>
          </instance-parameter>
          <parameter name="icon_names" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1723">%NULL-terminated
    array of icon names to lookup</doc>
            <array c:type="const char**">
              <type name="utf8" c:type="char*"/>
            </array>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1725">desired icon size</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1726">desired scale</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1727">flags modifying the behavior of the icon lookup</doc>
            <type name="IconLookupFlags" c:type="StIconLookupFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_icon_sizes"
              c:identifier="st_icon_theme_get_icon_sizes">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="1928">Returns an array of integers describing the sizes at which
the icon is available without scaling. A size of -1 means
that the icon is available in a scalable format. The array
is zero-terminated.</doc>
        <source-position filename="src/st/st-icon-theme.h" line="114"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="1938">An newly
allocated array describing the sizes at which the icon is
available. The array should be freed with g_free() when it is no
longer needed.</doc>
          <array c:type="int*">
            <type name="gint" c:type="int"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="icon_theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1930">a #StIconTheme</doc>
            <type name="IconTheme" c:type="StIconTheme*"/>
          </instance-parameter>
          <parameter name="icon_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1931">the name of an icon</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_search_path"
              c:identifier="st_icon_theme_get_search_path">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="620">Gets the current search path. See st_icon_theme_set_search_path().</doc>
        <source-position filename="src/st/st-icon-theme.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="622">a #StIconTheme</doc>
            <type name="IconTheme" c:type="StIconTheme*"/>
          </instance-parameter>
          <parameter name="path"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="623">
    location to store a list of icon theme path directories or %NULL.
    The stored value should be freed with g_strfreev().</doc>
            <array length="1" zero-terminated="0" c:type="char***">
              <type name="filename"/>
            </array>
          </parameter>
          <parameter name="n_elements"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="626">location to store number of elements in @path, or %NULL</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_icon" c:identifier="st_icon_theme_has_icon">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="1876">Checks whether an icon theme includes an icon
for a particular name.</doc>
        <source-position filename="src/st/st-icon-theme.h" line="111"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="1884">%TRUE if @icon_theme includes an
 icon for @icon_name.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1878">a #StIconTheme</doc>
            <type name="IconTheme" c:type="StIconTheme*"/>
          </instance-parameter>
          <parameter name="icon_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1879">the name of an icon</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_contexts" c:identifier="st_icon_theme_list_contexts">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="2073">Gets the list of contexts available within the current
hierarchy of icon themes.
See st_icon_theme_list_icons() for details about contexts.</doc>
        <source-position filename="src/st/st-icon-theme.h" line="167"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="2081">a #GList list
    holding the names of all the contexts in the theme. You must first
    free each element in the list with g_free(), then free the list
    itself with g_list_free().</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="icon_theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="2075">a #StIconTheme</doc>
            <type name="IconTheme" c:type="StIconTheme*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="list_icons" c:identifier="st_icon_theme_list_icons">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="2007">Lists the icons in the current icon theme. Only a subset
of the icons can be listed by providing a context string.
The set of values for the context string is system dependent,
but will typically include such values as “Applications” and
“MimeTypes”. Contexts are explained in the
[Icon Theme Specification](http://www.freedesktop.org/wiki/Specifications/icon-theme-spec).
The standard contexts are listed in the
[Icon Naming Specification](http://www.freedesktop.org/wiki/Specifications/icon-naming-spec).
Also see st_icon_theme_list_contexts().</doc>
        <source-position filename="src/st/st-icon-theme.h" line="164"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="2023">a #GList list
    holding the names of all the icons in the theme. You must
    first free each element in the list with g_free(), then
    free the list itself with g_list_free().</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="icon_theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="2009">a #StIconTheme</doc>
            <type name="IconTheme" c:type="StIconTheme*"/>
          </instance-parameter>
          <parameter name="context"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="2010">a string identifying a particular type of
          icon, or %NULL to list all icons.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_icon"
              c:identifier="st_icon_theme_load_icon"
              throws="1">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="1768">Looks up an icon in an icon theme, scales it to the given size
and renders it into a pixbuf. This is a convenience function;
if more details about the icon are needed, use
st_icon_theme_lookup_icon() followed by st_icon_info_load_icon().

Note that you probably want to listen for icon theme changes and
update the icon. This is usually done by connecting to the
GtkWidget::style-set signal. If for some reason you do not want to
update the icon when the icon theme changes, you should consider
using gdk_pixbuf_copy() to make a private copy of the pixbuf
returned by this function. Otherwise GTK+ may need to keep the old
icon theme loaded, which would be a waste of memory.</doc>
        <source-position filename="src/st/st-icon-theme.h" line="139"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="1791">the rendered icon; this may be
    a newly created icon or a new reference to an internal icon, so
    you must not modify the icon. Use g_object_unref() to release
    your reference to the icon. %NULL if the icon isn’t found.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1770">a #StIconTheme</doc>
            <type name="IconTheme" c:type="StIconTheme*"/>
          </instance-parameter>
          <parameter name="icon_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1771">the name of the icon to lookup</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1772">the desired icon size. The resulting icon may not be
    exactly this size; see st_icon_info_load_icon().</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1774">flags modifying the behavior of the icon lookup</doc>
            <type name="IconLookupFlags" c:type="StIconLookupFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_icon_for_scale"
              c:identifier="st_icon_theme_load_icon_for_scale"
              throws="1">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="1813">Looks up an icon in an icon theme for a particular window scale,
scales it to the given size and renders it into a pixbuf. This is a
convenience function; if more details about the icon are needed,
use st_icon_theme_lookup_icon() followed by
st_icon_info_load_icon().

Note that you probably want to listen for icon theme changes and
update the icon. This is usually done by connecting to the
GtkWidget::style-set signal. If for some reason you do not want to
update the icon when the icon theme changes, you should consider
using gdk_pixbuf_copy() to make a private copy of the pixbuf
returned by this function. Otherwise GTK+ may need to keep the old
icon theme loaded, which would be a waste of memory.</doc>
        <source-position filename="src/st/st-icon-theme.h" line="145"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="1838">the rendered icon; this may be
    a newly created icon or a new reference to an internal icon, so
    you must not modify the icon. Use g_object_unref() to release
    your reference to the icon. %NULL if the icon isn’t found.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1815">a #StIconTheme</doc>
            <type name="IconTheme" c:type="StIconTheme*"/>
          </instance-parameter>
          <parameter name="icon_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1816">the name of the icon to lookup</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1817">the desired icon size. The resulting icon may not be
    exactly this size; see st_icon_info_load_icon().</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1819">desired scale</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1820">flags modifying the behavior of the icon lookup</doc>
            <type name="IconLookupFlags" c:type="StIconLookupFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_by_gicon"
              c:identifier="st_icon_theme_lookup_by_gicon">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="4154">Looks up an icon and returns a #StIconInfo containing information
such as the filename of the icon. The icon can then be rendered
into a pixbuf using st_icon_info_load_icon().

When rendering on displays with high pixel densities you should not
use a @size multiplied by the scaling factor returned by functions
like gdk_window_get_scale_factor(). Instead, you should use
st_icon_theme_lookup_by_gicon_for_scale(), as the assets loaded
for a given scaling factor may be different.</doc>
        <source-position filename="src/st/st-icon-theme.h" line="152"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="4171">a #StIconInfo containing
    information about the icon, or %NULL if the icon wasn’t
    found. Unref with g_object_unref()</doc>
          <type name="IconInfo" c:type="StIconInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="4156">a #StIconTheme</doc>
            <type name="IconTheme" c:type="StIconTheme*"/>
          </instance-parameter>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="4157">the #GIcon to look up</doc>
            <type name="Gio.Icon" c:type="GIcon*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="4158">desired icon size</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="4159">flags modifying the behavior of the icon lookup</doc>
            <type name="IconLookupFlags" c:type="StIconLookupFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_by_gicon_for_scale"
              c:identifier="st_icon_theme_lookup_by_gicon_for_scale">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="4186">Looks up an icon and returns a #StIconInfo containing information
such as the filename of the icon. The icon can then be rendered into
a pixbuf using st_icon_info_load_icon().</doc>
        <source-position filename="src/st/st-icon-theme.h" line="157"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="4198">a #StIconInfo containing
    information about the icon, or %NULL if the icon wasn’t
    found. Unref with g_object_unref()</doc>
          <type name="IconInfo" c:type="StIconInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="4188">a #StIconTheme</doc>
            <type name="IconTheme" c:type="StIconTheme*"/>
          </instance-parameter>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="4189">the #GIcon to look up</doc>
            <type name="Gio.Icon" c:type="GIcon*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="4190">desired icon size</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="4191">the desired scale</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="4192">flags modifying the behavior of the icon lookup</doc>
            <type name="IconLookupFlags" c:type="StIconLookupFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_icon" c:identifier="st_icon_theme_lookup_icon">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="1545">Looks up a named icon and returns a #StIconInfo containing
information such as the filename of the icon. The icon
can then be rendered into a pixbuf using
st_icon_info_load_icon(). (st_icon_theme_load_icon()
combines these two steps if all you need is the pixbuf.)

When rendering on displays with high pixel densities you should not
use a @size multiplied by the scaling factor returned by functions
like gdk_window_get_scale_factor(). Instead, you should use
st_icon_theme_lookup_icon_for_scale(), as the assets loaded
for a given scaling factor may be different.</doc>
        <source-position filename="src/st/st-icon-theme.h" line="117"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="1564">a #StIconInfo object
    containing information about the icon, or %NULL if the
    icon wasn’t found.</doc>
          <type name="IconInfo" c:type="StIconInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1547">a #StIconTheme</doc>
            <type name="IconTheme" c:type="StIconTheme*"/>
          </instance-parameter>
          <parameter name="icon_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1548">the name of the icon to lookup</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1549">desired icon size</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1550">flags modifying the behavior of the icon lookup</doc>
            <type name="IconLookupFlags" c:type="StIconLookupFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_icon_for_scale"
              c:identifier="st_icon_theme_lookup_icon_for_scale">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="1585">Looks up a named icon for a particular window scale and returns a
#StIconInfo containing information such as the filename of the
icon. The icon can then be rendered into a pixbuf using
st_icon_info_load_icon(). (st_icon_theme_load_icon() combines
these two steps if all you need is the pixbuf.)</doc>
        <source-position filename="src/st/st-icon-theme.h" line="122"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="1599">a #StIconInfo object
    containing information about the icon, or %NULL if the
    icon wasn’t found.</doc>
          <type name="IconInfo" c:type="StIconInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1587">a #StIconTheme</doc>
            <type name="IconTheme" c:type="StIconTheme*"/>
          </instance-parameter>
          <parameter name="icon_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1588">the name of the icon to lookup</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1589">desired icon size</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1590">the desired scale</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="1591">flags modifying the behavior of the icon lookup</doc>
            <type name="IconLookupFlags" c:type="StIconLookupFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="prepend_search_path"
              c:identifier="st_icon_theme_prepend_search_path">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="674">Prepends a directory to the search path.
See st_icon_theme_set_search_path().</doc>
        <source-position filename="src/st/st-icon-theme.h" line="105"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="676">a #StIconTheme</doc>
            <type name="IconTheme" c:type="StIconTheme*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="677">directory name to prepend to the icon path</doc>
            <type name="filename" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="rescan_if_needed"
              c:identifier="st_icon_theme_rescan_if_needed">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="2146">Checks to see if the icon theme has changed; if it has, any
currently cached information is discarded and will be reloaded
next time @icon_theme is accessed.</doc>
        <source-position filename="src/st/st-icon-theme.h" line="169"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-icon-theme.c"
               line="2154">%TRUE if the icon theme has changed and needed
    to be reloaded.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="2148">a #StIconTheme</doc>
            <type name="IconTheme" c:type="StIconTheme*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_search_path"
              c:identifier="st_icon_theme_set_search_path">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="575">Sets the search path for the icon theme object. When looking
for an icon theme, GTK+ will search for a subdirectory of
one or more of the directories in @path with the same name
as the icon theme containing an index.theme file. (Themes from
multiple of the path elements are combined to allow themes to be
extended by adding icons in the user’s home directory.)

In addition if an icon found isn’t found either in the current
icon theme or the default icon theme, and an image file with
the right name is found directly in one of the elements of
@path, then that image will be used for the icon name.
(This is legacy feature, and new icons should be put
into the fallback icon theme, which is called hicolor,
rather than directly on the icon path.)</doc>
        <source-position filename="src/st/st-icon-theme.h" line="94"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="icon_theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="577">a #StIconTheme</doc>
            <type name="IconTheme" c:type="StIconTheme*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="578">array of
    directories that are searched for icon themes</doc>
            <array length="1" zero-terminated="0" c:type="const char**">
              <type name="filename"/>
            </array>
          </parameter>
          <parameter name="n_elements" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-icon-theme.c"
                 line="580">number of elements in @path.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="changed" when="last">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.c"
             line="339">Emitted when the current icon theme is switched or GTK+ detects
that a change has occurred in the contents of the current
icon theme.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="IconThemeClass"
            c:type="StIconThemeClass"
            glib:is-gtype-struct-for="IconTheme">
      <source-position filename="src/st/st-icon-theme.h" line="33"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="IconThemeError"
                 glib:type-name="StIconThemeError"
                 glib:get-type="st_icon_theme_error_get_type"
                 c:type="StIconThemeError"
                 glib:error-domain="gtk-icon-theme-error-quark">
      <doc xml:space="preserve"
           filename="src/st/st-icon-theme.h"
           line="78">Error codes for StIconTheme operations.</doc>
      <member name="not_found"
              value="0"
              c:identifier="ST_ICON_THEME_NOT_FOUND"
              glib:nick="not-found"
              glib:name="ST_ICON_THEME_NOT_FOUND">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.h"
             line="80">The icon specified does not exist in the theme</doc>
      </member>
      <member name="failed"
              value="1"
              c:identifier="ST_ICON_THEME_FAILED"
              glib:nick="failed"
              glib:name="ST_ICON_THEME_FAILED">
        <doc xml:space="preserve"
             filename="src/st/st-icon-theme.h"
             line="81">An unspecified error occurred.</doc>
      </member>
      <function name="quark" c:identifier="st_icon_theme_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <class name="ImageContent"
           c:symbol-prefix="image_content"
           c:type="StImageContent"
           parent="Clutter.Image"
           glib:type-name="StImageContent"
           glib:get-type="st_image_content_get_type"
           glib:type-struct="ImageContentClass">
      <source-position filename="src/st/st-image-content.h" line="27"/>
      <implements name="Clutter.Content"/>
      <implements name="Gio.Icon"/>
      <implements name="Gio.LoadableIcon"/>
      <function name="new_with_preferred_size"
                c:identifier="st_image_content_new_with_preferred_size">
        <doc xml:space="preserve"
             filename="src/st/st-image-content.c"
             line="327">Creates a new #StImageContent, a simple content for sized images.

See #ClutterImage for setting the actual image to display or #StIcon for
displaying icons.</doc>
        <source-position filename="src/st/st-image-content.h" line="30"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-image-content.c"
               line="337">the newly created #StImageContent content
  Use g_object_unref() when done.</doc>
          <type name="Clutter.Content" c:type="ClutterContent*"/>
        </return-value>
        <parameters>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-image-content.c"
                 line="329">The preferred width to be used when drawing the content</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-image-content.c"
                 line="330">The preferred width to be used when drawing the content</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </function>
      <property name="preferred-height"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="-1">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="preferred-width"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="-1">
        <type name="gint" c:type="gint"/>
      </property>
    </class>
    <record name="ImageContentClass"
            c:type="StImageContentClass"
            glib:is-gtype-struct-for="ImageContent">
      <source-position filename="src/st/st-image-content.h" line="27"/>
      <field name="parent_class">
        <type name="Clutter.ImageClass" c:type="ClutterImageClass"/>
      </field>
    </record>
    <class name="Label"
           c:symbol-prefix="label"
           c:type="StLabel"
           parent="Widget"
           glib:type-name="StLabel"
           glib:get-type="st_label_get_type"
           glib:type-struct="LabelClass">
      <doc xml:space="preserve"
           filename="src/st/st-label.h"
           line="36">The contents of this structure is private and should only be accessed using
the provided API.</doc>
      <source-position filename="src/st/st-label.h" line="32"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new" c:identifier="st_label_new">
        <doc xml:space="preserve"
             filename="src/st/st-label.c"
             line="361">Create a new #StLabel with the label specified by @text.</doc>
        <source-position filename="src/st/st-label.h" line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-label.c"
               line="367">a new #StLabel</doc>
          <type name="Widget" c:type="StWidget*"/>
        </return-value>
        <parameters>
          <parameter name="text"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-label.c"
                 line="363">text to set the label to</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_clutter_text"
              c:identifier="st_label_get_clutter_text"
              glib:get-property="clutter-text">
        <doc xml:space="preserve"
             filename="src/st/st-label.c"
             line="427">Retrieve the internal #ClutterText used by @label so that extra parameters
can be set.</doc>
        <source-position filename="src/st/st-label.h" line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-label.c"
               line="434">the #ClutterText used by #StLabel. The actor
is owned by the #StLabel and should not be destroyed by the application.</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-label.c"
                 line="429">a #StLabel</doc>
            <type name="Label" c:type="StLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text"
              c:identifier="st_label_get_text"
              glib:get-property="text">
        <doc xml:space="preserve"
             filename="src/st/st-label.c"
             line="380">Get the text displayed on the label.</doc>
        <source-position filename="src/st/st-label.h" line="51"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-label.c"
               line="386">the text for the label. This must not be freed by
the application</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-label.c"
                 line="382">a #StLabel</doc>
            <type name="Label" c:type="StLabel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_text"
              c:identifier="st_label_set_text"
              glib:set-property="text">
        <doc xml:space="preserve"
             filename="src/st/st-label.c"
             line="397">Sets the text displayed by the label.</doc>
        <source-position filename="src/st/st-label.h" line="52"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-label.c"
                 line="399">a #StLabel</doc>
            <type name="Label" c:type="StLabel*"/>
          </instance-parameter>
          <parameter name="text"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-label.c"
                 line="400">text to set the label to</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="clutter-text"
                transfer-ownership="none"
                getter="get_clutter_text">
        <doc xml:space="preserve"
             filename="src/st/st-label.c"
             line="290">The internal #ClutterText actor supporting the label</doc>
        <type name="Clutter.Text"/>
      </property>
      <property name="text"
                writable="1"
                transfer-ownership="none"
                setter="set_text"
                getter="get_text"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="src/st/st-label.c"
             line="302">The current text being display in the #StLabel.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance" readable="0" private="1">
        <type name="Widget" c:type="StWidget"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="LabelPrivate" c:type="StLabelPrivate*"/>
      </field>
    </class>
    <record name="LabelClass"
            c:type="StLabelClass"
            glib:is-gtype-struct-for="Label">
      <source-position filename="src/st/st-label.h" line="32"/>
      <field name="parent_class">
        <type name="WidgetClass" c:type="StWidgetClass"/>
      </field>
    </record>
    <record name="LabelPrivate"
            c:type="StLabelPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/st/st-label.h" line="34"/>
    </record>
    <class name="PasswordEntry"
           c:symbol-prefix="password_entry"
           c:type="StPasswordEntry"
           parent="Entry"
           glib:type-name="StPasswordEntry"
           glib:get-type="st_password_entry_get_type"
           glib:type-struct="PasswordEntryClass">
      <source-position filename="src/st/st-password-entry.h" line="33"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new" c:identifier="st_password_entry_new">
        <doc xml:space="preserve"
             filename="src/st/st-password-entry.c"
             line="248">Create a new #StPasswordEntry.</doc>
        <source-position filename="src/st/st-password-entry.h" line="35"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-password-entry.c"
               line="253">a new #StEntry</doc>
          <type name="Entry" c:type="StEntry*"/>
        </return-value>
      </constructor>
      <method name="get_password_visible"
              c:identifier="st_password_entry_get_password_visible"
              glib:get-property="password-visible">
        <doc xml:space="preserve"
             filename="src/st/st-password-entry.c"
             line="346">Gets whether the text is masked in the password entry.</doc>
        <source-position filename="src/st/st-password-entry.h" line="36"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-password-entry.c"
               line="352">%TRUE if visible</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-password-entry.c"
                 line="348">a #StPasswordEntry</doc>
            <type name="PasswordEntry" c:type="StPasswordEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_peek_icon"
              c:identifier="st_password_entry_get_show_peek_icon"
              glib:get-property="show-peek-icon">
        <doc xml:space="preserve"
             filename="src/st/st-password-entry.c"
             line="290">Gets whether peek-icon is shown or hidden in the password entry.</doc>
        <source-position filename="src/st/st-password-entry.h" line="39"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-password-entry.c"
               line="296">%TRUE if visible</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-password-entry.c"
                 line="292">a #StPasswordEntry</doc>
            <type name="PasswordEntry" c:type="StPasswordEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_password_visible"
              c:identifier="st_password_entry_set_password_visible"
              glib:set-property="password-visible">
        <doc xml:space="preserve"
             filename="src/st/st-password-entry.c"
             line="309">Sets whether to show or hide text in the password entry.</doc>
        <source-position filename="src/st/st-password-entry.h" line="37"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-password-entry.c"
                 line="311">a #StPasswordEntry</doc>
            <type name="PasswordEntry" c:type="StPasswordEntry*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-password-entry.c"
                 line="312">%TRUE to show the password in the entry, #FALSE otherwise</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_peek_icon"
              c:identifier="st_password_entry_set_show_peek_icon"
              glib:set-property="show-peek-icon">
        <doc xml:space="preserve"
             filename="src/st/st-password-entry.c"
             line="261">Sets whether to show or hide the peek-icon in the password entry. If %TRUE,
a icon button for temporarily unmasking the password will be shown at the
end of the entry.</doc>
        <source-position filename="src/st/st-password-entry.h" line="40"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-password-entry.c"
                 line="263">a #StPasswordEntry</doc>
            <type name="PasswordEntry" c:type="StPasswordEntry*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-password-entry.c"
                 line="264">%TRUE to show the peek-icon in the entry</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="password-visible"
                writable="1"
                transfer-ownership="none"
                setter="set_password_visible"
                getter="get_password_visible"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="src/st/st-password-entry.c"
             line="149">Whether the text in the entry is masked for privacy.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-peek-icon"
                writable="1"
                transfer-ownership="none"
                setter="set_show_peek_icon"
                getter="get_show_peek_icon"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="src/st/st-password-entry.c"
             line="160">Whether to display an icon button to toggle the masking enabled by the
#StPasswordEntry:password-visible property.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
    </class>
    <record name="PasswordEntryClass"
            c:type="StPasswordEntryClass"
            glib:is-gtype-struct-for="PasswordEntry">
      <source-position filename="src/st/st-password-entry.h" line="33"/>
      <field name="parent_class">
        <type name="EntryClass" c:type="StEntryClass"/>
      </field>
    </record>
    <enumeration name="PolicyType"
                 glib:type-name="StPolicyType"
                 glib:get-type="st_policy_type_get_type"
                 c:type="StPolicyType">
      <member name="always"
              value="0"
              c:identifier="ST_POLICY_ALWAYS"
              glib:nick="always"
              glib:name="ST_POLICY_ALWAYS">
      </member>
      <member name="automatic"
              value="1"
              c:identifier="ST_POLICY_AUTOMATIC"
              glib:nick="automatic"
              glib:name="ST_POLICY_AUTOMATIC">
      </member>
      <member name="never"
              value="2"
              c:identifier="ST_POLICY_NEVER"
              glib:nick="never"
              glib:name="ST_POLICY_NEVER">
      </member>
      <member name="external"
              value="3"
              c:identifier="ST_POLICY_EXTERNAL"
              glib:nick="external"
              glib:name="ST_POLICY_EXTERNAL">
      </member>
    </enumeration>
    <class name="ScrollBar"
           c:symbol-prefix="scroll_bar"
           c:type="StScrollBar"
           parent="Widget"
           glib:type-name="StScrollBar"
           glib:get-type="st_scroll_bar_get_type"
           glib:type-struct="ScrollBarClass">
      <source-position filename="src/st/st-scroll-bar.h" line="43"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new" c:identifier="st_scroll_bar_new">
        <source-position filename="src/st/st-scroll-bar.h" line="45"/>
        <return-value transfer-ownership="none">
          <type name="Widget" c:type="StWidget*"/>
        </return-value>
        <parameters>
          <parameter name="adjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="StAdjustment*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="scroll_start">
        <source-position filename="src/st/st-scroll-bar.h" line="41"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bar" transfer-ownership="none">
            <type name="ScrollBar" c:type="StScrollBar*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="scroll_stop">
        <source-position filename="src/st/st-scroll-bar.h" line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bar" transfer-ownership="none">
            <type name="ScrollBar" c:type="StScrollBar*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_adjustment"
              c:identifier="st_scroll_bar_get_adjustment"
              glib:get-property="adjustment">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-bar.c"
             line="1009">Gets the #StAdjustment that controls the current position of @bar.</doc>
        <source-position filename="src/st/st-scroll-bar.h" line="49"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-scroll-bar.c"
               line="1015">an #StAdjustment</doc>
          <type name="Adjustment" c:type="StAdjustment*"/>
        </return-value>
        <parameters>
          <instance-parameter name="bar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scroll-bar.c"
                 line="1011">a #StScrollbar</doc>
            <type name="ScrollBar" c:type="StScrollBar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_adjustment"
              c:identifier="st_scroll_bar_set_adjustment"
              glib:set-property="adjustment">
        <source-position filename="src/st/st-scroll-bar.h" line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bar" transfer-ownership="none">
            <type name="ScrollBar" c:type="StScrollBar*"/>
          </instance-parameter>
          <parameter name="adjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="StAdjustment*"/>
          </parameter>
        </parameters>
      </method>
      <property name="adjustment"
                writable="1"
                transfer-ownership="none"
                setter="set_adjustment"
                getter="get_adjustment">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-bar.c"
             line="530">The #StAdjustment controlling the #StScrollBar.</doc>
        <type name="Adjustment"/>
      </property>
      <property name="vertical"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-bar.c"
             line="540">Whether the #StScrollBar is vertical. If %FALSE it is horizontal.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="Widget" c:type="StWidget"/>
      </field>
      <glib:signal name="scroll-start" when="last">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-bar.c"
             line="555">Emitted when the #StScrollBar begins scrolling.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="scroll-stop" when="last">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-bar.c"
             line="569">Emitted when the #StScrollBar finishes scrolling.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ScrollBarClass"
            c:type="StScrollBarClass"
            glib:is-gtype-struct-for="ScrollBar">
      <source-position filename="src/st/st-scroll-bar.h" line="43"/>
      <field name="parent_class">
        <type name="WidgetClass" c:type="StWidgetClass"/>
      </field>
      <field name="scroll_start">
        <callback name="scroll_start">
          <source-position filename="src/st/st-scroll-bar.h" line="41"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="bar" transfer-ownership="none">
              <type name="ScrollBar" c:type="StScrollBar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="scroll_stop">
        <callback name="scroll_stop">
          <source-position filename="src/st/st-scroll-bar.h" line="42"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="bar" transfer-ownership="none">
              <type name="ScrollBar" c:type="StScrollBar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="ScrollView"
           c:symbol-prefix="scroll_view"
           c:type="StScrollView"
           parent="Bin"
           glib:type-name="StScrollView"
           glib:get-type="st_scroll_view_get_type"
           glib:type-struct="ScrollViewClass">
      <doc xml:space="preserve"
           filename="src/st/st-scroll-view.h"
           line="47">The contents of this structure are private and should only be accessed
through the public API.</doc>
      <source-position filename="src/st/st-scroll-view.h" line="35"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new" c:identifier="st_scroll_view_new">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view.c"
             line="1019">Create a new #StScrollView.</doc>
        <source-position filename="src/st/st-scroll-view.h" line="61"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-scroll-view.c"
               line="1024">a new #StScrollView</doc>
          <type name="Widget" c:type="StWidget*"/>
        </return-value>
      </constructor>
      <method name="get_column_size"
              c:identifier="st_scroll_view_get_column_size">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view.c"
             line="1064">Get the step increment of the horizontal plane.</doc>
        <source-position filename="src/st/st-scroll-view.h" line="66"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-scroll-view.c"
               line="1070">the horizontal step increment</doc>
          <type name="gfloat" c:type="gfloat"/>
        </return-value>
        <parameters>
          <instance-parameter name="scroll" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scroll-view.c"
                 line="1066">a #StScrollView</doc>
            <type name="ScrollView" c:type="StScrollView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_hscroll_bar"
              c:identifier="st_scroll_view_get_hscroll_bar">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view.c"
             line="1032">Gets the horizontal #StScrollBar of the #StScrollView.</doc>
        <source-position filename="src/st/st-scroll-view.h" line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-scroll-view.c"
               line="1038">the horizontal scrollbar</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="scroll" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scroll-view.c"
                 line="1034">a #StScrollView</doc>
            <type name="ScrollView" c:type="StScrollView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mouse_scrolling"
              c:identifier="st_scroll_view_get_mouse_scrolling">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view.c"
             line="1195">Get whether automatic mouse wheel scrolling is enabled or disabled.</doc>
        <source-position filename="src/st/st-scroll-view.h" line="76"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-scroll-view.c"
               line="1201">%TRUE if enabled, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="scroll" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scroll-view.c"
                 line="1197">a #StScrollView</doc>
            <type name="ScrollView" c:type="StScrollView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_overlay_scrollbars"
              c:identifier="st_scroll_view_get_overlay_scrollbars"
              glib:get-property="overlay-scrollbars">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view.c"
             line="1241">Gets whether scrollbars are painted on top of the content.</doc>
        <source-position filename="src/st/st-scroll-view.h" line="80"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-scroll-view.c"
               line="1247">%TRUE if enabled, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="scroll" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scroll-view.c"
                 line="1243">A #StScrollView</doc>
            <type name="ScrollView" c:type="StScrollView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_row_size" c:identifier="st_scroll_view_get_row_size">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view.c"
             line="1115">Get the step increment of the vertical plane.</doc>
        <source-position filename="src/st/st-scroll-view.h" line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-scroll-view.c"
               line="1121">the vertical step increment</doc>
          <type name="gfloat" c:type="gfloat"/>
        </return-value>
        <parameters>
          <instance-parameter name="scroll" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scroll-view.c"
                 line="1117">a #StScrollView</doc>
            <type name="ScrollView" c:type="StScrollView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_vscroll_bar"
              c:identifier="st_scroll_view_get_vscroll_bar">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view.c"
             line="1048">Gets the vertical scrollbar of the #StScrollView.</doc>
        <source-position filename="src/st/st-scroll-view.h" line="64"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-scroll-view.c"
               line="1054">the vertical #StScrollBar</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="scroll" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scroll-view.c"
                 line="1050">a #StScrollView</doc>
            <type name="ScrollView" c:type="StScrollView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_column_size"
              c:identifier="st_scroll_view_set_column_size">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view.c"
             line="1086">Set the step increment of the horizontal plane to @column_size.</doc>
        <source-position filename="src/st/st-scroll-view.h" line="67"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="scroll" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scroll-view.c"
                 line="1088">a #StScrollView</doc>
            <type name="ScrollView" c:type="StScrollView*"/>
          </instance-parameter>
          <parameter name="column_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scroll-view.c"
                 line="1089">horizontal step increment</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mouse_scrolling"
              c:identifier="st_scroll_view_set_mouse_scrolling">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view.c"
             line="1166">Sets automatic mouse wheel scrolling to enabled or disabled.</doc>
        <source-position filename="src/st/st-scroll-view.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="scroll" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scroll-view.c"
                 line="1168">a #StScrollView</doc>
            <type name="ScrollView" c:type="StScrollView*"/>
          </instance-parameter>
          <parameter name="enabled" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scroll-view.c"
                 line="1169">%TRUE or %FALSE</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_overlay_scrollbars"
              c:identifier="st_scroll_view_set_overlay_scrollbars"
              glib:set-property="overlay-scrollbars">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view.c"
             line="1215">Sets whether scrollbars are painted on top of the content.</doc>
        <source-position filename="src/st/st-scroll-view.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="scroll" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scroll-view.c"
                 line="1217">A #StScrollView</doc>
            <type name="ScrollView" c:type="StScrollView*"/>
          </instance-parameter>
          <parameter name="enabled" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scroll-view.c"
                 line="1218">Whether to enable overlay scrollbars</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_policy" c:identifier="st_scroll_view_set_policy">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view.c"
             line="1261">Set the scroll policy.</doc>
        <source-position filename="src/st/st-scroll-view.h" line="82"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="scroll" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scroll-view.c"
                 line="1263">A #StScrollView</doc>
            <type name="ScrollView" c:type="StScrollView*"/>
          </instance-parameter>
          <parameter name="hscroll" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scroll-view.c"
                 line="1264">Whether to enable horizontal scrolling</doc>
            <type name="PolicyType" c:type="StPolicyType"/>
          </parameter>
          <parameter name="vscroll" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scroll-view.c"
                 line="1265">Whether to enable vertical scrolling</doc>
            <type name="PolicyType" c:type="StPolicyType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_row_size" c:identifier="st_scroll_view_set_row_size">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view.c"
             line="1137">Set the step increment of the vertical plane to @row_size.</doc>
        <source-position filename="src/st/st-scroll-view.h" line="71"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="scroll" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scroll-view.c"
                 line="1139">a #StScrollView</doc>
            <type name="ScrollView" c:type="StScrollView*"/>
          </instance-parameter>
          <parameter name="row_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scroll-view.c"
                 line="1140">vertical step increment</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_fade_effect"
              c:identifier="st_scroll_view_update_fade_effect">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view.c"
             line="162">Sets the fade effects in all four edges of the view. A value of 0
disables the effect.</doc>
        <source-position filename="src/st/st-scroll-view.h" line="85"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="scroll" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scroll-view.c"
                 line="164">a #StScrollView</doc>
            <type name="ScrollView" c:type="StScrollView*"/>
          </instance-parameter>
          <parameter name="fade_margins" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scroll-view.c"
                 line="165">a #ClutterMargin defining the vertical fade effects, in pixels.</doc>
            <type name="Clutter.Margin" c:type="ClutterMargin*"/>
          </parameter>
        </parameters>
      </method>
      <property name="enable-mouse-scrolling"
                writable="1"
                transfer-ownership="none"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view.c"
             line="888">Whether to enable automatic mouse wheel scrolling.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="hscroll" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view.c"
             line="814">The horizontal #StScrollBar for the #StScrollView.</doc>
        <type name="ScrollBar"/>
      </property>
      <property name="hscrollbar-policy"
                writable="1"
                transfer-ownership="none"
                default-value="ST_POLICY_AUTOMATIC">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view.c"
             line="851">The #StPolicyType for when to show the horizontal #StScrollBar.</doc>
        <type name="PolicyType"/>
      </property>
      <property name="hscrollbar-visible"
                transfer-ownership="none"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view.c"
             line="864">Whether the horizontal #StScrollBar is visible.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="overlay-scrollbars"
                writable="1"
                transfer-ownership="none"
                setter="set_overlay_scrollbars"
                getter="get_overlay_scrollbars"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view.c"
             line="900">Whether scrollbars are painted on top of the content.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="vscroll" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view.c"
             line="826">The vertical #StScrollBar for the #StScrollView.</doc>
        <type name="ScrollBar"/>
      </property>
      <property name="vscrollbar-policy"
                writable="1"
                transfer-ownership="none"
                default-value="ST_POLICY_AUTOMATIC">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view.c"
             line="838">The #StPolicyType for when to show the vertical #StScrollBar.</doc>
        <type name="PolicyType"/>
      </property>
      <property name="vscrollbar-visible"
                transfer-ownership="none"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view.c"
             line="876">Whether the vertical #StScrollBar is visible.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance" readable="0" private="1">
        <type name="Bin" c:type="StBin"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="ScrollViewPrivate" c:type="StScrollViewPrivate*"/>
      </field>
    </class>
    <record name="ScrollViewClass"
            c:type="StScrollViewClass"
            glib:is-gtype-struct-for="ScrollView">
      <source-position filename="src/st/st-scroll-view.h" line="35"/>
      <field name="parent_class">
        <type name="BinClass" c:type="StBinClass"/>
      </field>
    </record>
    <class name="ScrollViewFade"
           c:symbol-prefix="scroll_view_fade"
           c:type="StScrollViewFade"
           parent="Clutter.ShaderEffect"
           glib:type-name="StScrollViewFade"
           glib:get-type="st_scroll_view_fade_get_type"
           glib:type-struct="ScrollViewFadeClass">
      <source-position filename="src/st/st-scroll-view-fade.h" line="29"/>
      <constructor name="new" c:identifier="st_scroll_view_fade_new">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view-fade.c"
             line="450">Create a new #StScrollViewFade.</doc>
        <source-position filename="src/st/st-scroll-view-fade.h" line="32"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-scroll-view-fade.c"
               line="455">a new #StScrollViewFade</doc>
          <type name="Clutter.Effect" c:type="ClutterEffect*"/>
        </return-value>
      </constructor>
      <property name="extend-fade-area"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view-fade.c"
             line="424">Whether faded edges should extend beyond the faded area of the #StScrollViewFade.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="fade-edges"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view-fade.c"
             line="412">Whether the faded area should extend to the edges of the #StScrollViewFade.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="fade-margins" writable="1" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/st/st-scroll-view-fade.c"
             line="400">The margins widths that are faded.</doc>
        <type name="Clutter.Margin"/>
      </property>
    </class>
    <record name="ScrollViewFadeClass"
            c:type="StScrollViewFadeClass"
            glib:is-gtype-struct-for="ScrollViewFade">
      <source-position filename="src/st/st-scroll-view-fade.h" line="29"/>
      <field name="parent_class">
        <type name="Clutter.ShaderEffectClass"
              c:type="ClutterShaderEffectClass"/>
      </field>
    </record>
    <record name="ScrollViewPrivate"
            c:type="StScrollViewPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/st/st-scroll-view.h" line="45"/>
    </record>
    <interface name="Scrollable"
               c:symbol-prefix="scrollable"
               c:type="StScrollable"
               glib:type-name="StScrollable"
               glib:get-type="st_scrollable_get_type"
               glib:type-struct="ScrollableInterface">
      <source-position filename="src/st/st-scrollable.h" line="48"/>
      <virtual-method name="get_adjustments" invoker="get_adjustments">
        <source-position filename="src/st/st-scrollable.h" line="45"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="scrollable" transfer-ownership="none">
            <type name="Scrollable" c:type="StScrollable*"/>
          </instance-parameter>
          <parameter name="hadjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="StAdjustment**"/>
          </parameter>
          <parameter name="vadjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="StAdjustment**"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_adjustments" invoker="set_adjustments">
        <doc xml:space="preserve"
             filename="src/st/st-scrollable.c"
             line="152">This method should be implemented by classes implementing the #StScrollable
interface.

JavaScript code should do this by overriding the `vfunc_set_adjustments()`
method.</doc>
        <source-position filename="src/st/st-scrollable.h" line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="scrollable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scrollable.c"
                 line="154">a #StScrollable</doc>
            <type name="Scrollable" c:type="StScrollable*"/>
          </instance-parameter>
          <parameter name="hadjustment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scrollable.c"
                 line="155">the horizontal #StAdjustment</doc>
            <type name="Adjustment" c:type="StAdjustment*"/>
          </parameter>
          <parameter name="vadjustment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scrollable.c"
                 line="156">the vertical #StAdjustment</doc>
            <type name="Adjustment" c:type="StAdjustment*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_adjustments"
              c:identifier="st_scrollable_get_adjustments">
        <source-position filename="src/st/st-scrollable.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="scrollable" transfer-ownership="none">
            <type name="Scrollable" c:type="StScrollable*"/>
          </instance-parameter>
          <parameter name="hadjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="StAdjustment**"/>
          </parameter>
          <parameter name="vadjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="StAdjustment**"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_adjustments"
              c:identifier="st_scrollable_set_adjustments">
        <doc xml:space="preserve"
             filename="src/st/st-scrollable.c"
             line="152">This method should be implemented by classes implementing the #StScrollable
interface.

JavaScript code should do this by overriding the `vfunc_set_adjustments()`
method.</doc>
        <source-position filename="src/st/st-scrollable.h" line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="scrollable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scrollable.c"
                 line="154">a #StScrollable</doc>
            <type name="Scrollable" c:type="StScrollable*"/>
          </instance-parameter>
          <parameter name="hadjustment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scrollable.c"
                 line="155">the horizontal #StAdjustment</doc>
            <type name="Adjustment" c:type="StAdjustment*"/>
          </parameter>
          <parameter name="vadjustment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-scrollable.c"
                 line="156">the vertical #StAdjustment</doc>
            <type name="Adjustment" c:type="StAdjustment*"/>
          </parameter>
        </parameters>
      </method>
      <property name="hadjustment" writable="1" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/st/st-scrollable.c"
             line="89">The horizontal #StAdjustment used by the #StScrollable.

Implementations should override this property to provide read-write
access to the #StAdjustment.

JavaScript code may override this as demonstrated below:

|[&lt;!-- language="JavaScript" --&gt;
export const MyScrollable = GObject.registerClass({
    Properties: {
        'hadjustment': GObject.ParamSpec.override(
            'hadjustment',
            St.Scrollable
        )
    }
}, class MyScrollable extends St.Scrollable {

    get hadjustment() {
        return this._hadjustment || null;
    }

    set hadjustment(adjustment) {
        if (this.hadjustment === adjustment)
            return;

        this._hadjustment = adjustment;
        this.notify('hadjustment');
    }
});
]|</doc>
        <type name="Adjustment"/>
      </property>
      <property name="vadjustment" writable="1" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/st/st-scrollable.c"
             line="130">The vertical #StAdjustment used by the #StScrollable.

Implementations should override this property to provide read-write
access to the #StAdjustment.

See #StScrollable:hadjustment for an example of how to override this
property in JavaScript code.</doc>
        <type name="Adjustment"/>
      </property>
    </interface>
    <record name="ScrollableInterface"
            c:type="StScrollableInterface"
            glib:is-gtype-struct-for="Scrollable">
      <source-position filename="src/st/st-scrollable.h" line="48"/>
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="set_adjustments">
        <callback name="set_adjustments">
          <source-position filename="src/st/st-scrollable.h" line="42"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="scrollable" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/st/st-scrollable.c"
                   line="154">a #StScrollable</doc>
              <type name="Scrollable" c:type="StScrollable*"/>
            </parameter>
            <parameter name="hadjustment" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/st/st-scrollable.c"
                   line="155">the horizontal #StAdjustment</doc>
              <type name="Adjustment" c:type="StAdjustment*"/>
            </parameter>
            <parameter name="vadjustment" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/st/st-scrollable.c"
                   line="156">the vertical #StAdjustment</doc>
              <type name="Adjustment" c:type="StAdjustment*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_adjustments">
        <callback name="get_adjustments">
          <source-position filename="src/st/st-scrollable.h" line="45"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="scrollable" transfer-ownership="none">
              <type name="Scrollable" c:type="StScrollable*"/>
            </parameter>
            <parameter name="hadjustment" transfer-ownership="none">
              <type name="Adjustment" c:type="StAdjustment**"/>
            </parameter>
            <parameter name="vadjustment" transfer-ownership="none">
              <type name="Adjustment" c:type="StAdjustment**"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="Settings"
           c:symbol-prefix="settings"
           c:type="StSettings"
           parent="GObject.Object"
           glib:type-name="StSettings"
           glib:get-type="st_settings_get_type"
           glib:type-struct="SettingsClass">
      <source-position filename="src/st/st-settings.h" line="39"/>
      <function name="get" c:identifier="st_settings_get">
        <doc xml:space="preserve"
             filename="src/st/st-settings.c"
             line="460">Gets the global #StSettings object.</doc>
        <source-position filename="src/st/st-settings.h" line="41"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-settings.c"
               line="465">the global #StSettings object</doc>
          <type name="Settings" c:type="StSettings*"/>
        </return-value>
      </function>
      <method name="inhibit_animations"
              c:identifier="st_settings_inhibit_animations">
        <source-position filename="src/st/st-settings.h" line="43"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="settings" transfer-ownership="none">
            <type name="Settings" c:type="StSettings*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="uninhibit_animations"
              c:identifier="st_settings_uninhibit_animations">
        <source-position filename="src/st/st-settings.h" line="45"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="settings" transfer-ownership="none">
            <type name="Settings" c:type="StSettings*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="color-scheme"
                transfer-ownership="none"
                default-value="ST_SYSTEM_COLOR_SCHEME_DEFAULT">
        <doc xml:space="preserve"
             filename="src/st/st-settings.c"
             line="285">The preferred color-scheme</doc>
        <type name="SystemColorScheme"/>
      </property>
      <property name="disable-show-password"
                transfer-ownership="none"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="src/st/st-settings.c"
             line="319">Whether password showing can be locked down</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="drag-threshold"
                transfer-ownership="none"
                default-value="8">
        <doc xml:space="preserve"
             filename="src/st/st-settings.c"
             line="241">The threshold before a drag operation begins.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="enable-animations"
                transfer-ownership="none"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="src/st/st-settings.c"
             line="218">Whether animations are enabled.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="font-name" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/st/st-settings.c"
             line="252">The current font name.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="gtk-icon-theme" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/st/st-settings.c"
             line="274">The current GTK icon theme</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="high-contrast"
                transfer-ownership="none"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="src/st/st-settings.c"
             line="263">Whether the accessibility high contrast mode is enabled.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="magnifier-active"
                transfer-ownership="none"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="src/st/st-settings.c"
             line="297">Whether the accessibility magnifier is active.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="primary-paste"
                transfer-ownership="none"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="src/st/st-settings.c"
             line="229">Whether pasting from the `PRIMARY` selection is supported (eg. middle-click
paste).</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="slow-down-factor"
                writable="1"
                transfer-ownership="none"
                default-value="1.000000">
        <doc xml:space="preserve"
             filename="src/st/st-settings.c"
             line="308">The slow-down factor applied to all animation durations.</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
    </class>
    <record name="SettingsClass"
            c:type="StSettingsClass"
            glib:is-gtype-struct-for="Settings">
      <source-position filename="src/st/st-settings.h" line="39"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="Shadow"
            c:type="StShadow"
            glib:type-name="StShadow"
            glib:get-type="st_shadow_get_type"
            c:symbol-prefix="shadow">
      <doc xml:space="preserve"
           filename="src/st/st-shadow.h"
           line="34">Attributes of the -st-shadow property.</doc>
      <source-position filename="src/st/st-shadow.h" line="54"/>
      <field name="color" writable="1">
        <doc xml:space="preserve"
             filename="src/st/st-shadow.h"
             line="36">shadow's color</doc>
        <type name="Clutter.Color" c:type="ClutterColor"/>
      </field>
      <field name="xoffset" writable="1">
        <doc xml:space="preserve"
             filename="src/st/st-shadow.h"
             line="37">horizontal offset - positive values mean placement to the right,
          negative values placement to the left of the element.</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="yoffset" writable="1">
        <doc xml:space="preserve"
             filename="src/st/st-shadow.h"
             line="39">vertical offset - positive values mean placement below, negative
          values placement above the element.</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="blur" writable="1">
        <doc xml:space="preserve"
             filename="src/st/st-shadow.h"
             line="41">shadow's blur radius - a value of 0.0 will result in a hard shadow.</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="spread" writable="1">
        <doc xml:space="preserve"
             filename="src/st/st-shadow.h"
             line="42">shadow's spread radius - grow the shadow without enlarging the
          blur.</doc>
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="inset" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <constructor name="new" c:identifier="st_shadow_new">
        <doc xml:space="preserve"
             filename="src/st/st-shadow.c"
             line="39">Creates a new #StShadow</doc>
        <source-position filename="src/st/st-shadow.h" line="58"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-shadow.c"
               line="50">the newly allocated shadow. Use st_shadow_free() when done</doc>
          <type name="Shadow" c:type="StShadow*"/>
        </return-value>
        <parameters>
          <parameter name="color" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-shadow.c"
                 line="41">shadow's color</doc>
            <type name="Clutter.Color" c:type="ClutterColor*"/>
          </parameter>
          <parameter name="xoffset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-shadow.c"
                 line="42">horizontal offset</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="yoffset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-shadow.c"
                 line="43">vertical offset</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="blur" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-shadow.c"
                 line="44">blur radius</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="spread" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-shadow.c"
                 line="45">spread radius</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="inset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-shadow.c"
                 line="46">whether the shadow should be inset</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="equal" c:identifier="st_shadow_equal">
        <doc xml:space="preserve"
             filename="src/st/st-shadow.c"
             line="106">Check if two shadow objects are identical. Note that two shadows may
compare non-identically if they differ only by floating point rounding
errors.</doc>
        <source-position filename="src/st/st-shadow.h" line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-shadow.c"
               line="115">%TRUE if the two shadows are identical</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="shadow" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-shadow.c"
                 line="108">a #StShadow</doc>
            <type name="Shadow" c:type="StShadow*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-shadow.c"
                 line="109">a different #StShadow</doc>
            <type name="Shadow" c:type="StShadow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_box" c:identifier="st_shadow_get_box">
        <doc xml:space="preserve"
             filename="src/st/st-shadow.c"
             line="141">Gets the box used to paint @shadow, which will be partly
outside of @actor_box</doc>
        <source-position filename="src/st/st-shadow.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="shadow" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-shadow.c"
                 line="143">a #StShadow</doc>
            <type name="Shadow" c:type="StShadow*"/>
          </instance-parameter>
          <parameter name="actor_box" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-shadow.c"
                 line="144">the box allocated to a #ClutterAlctor</doc>
            <type name="Clutter.ActorBox" c:type="const ClutterActorBox*"/>
          </parameter>
          <parameter name="shadow_box" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-shadow.c"
                 line="145">computed box occupied by @shadow</doc>
            <type name="Clutter.ActorBox" c:type="ClutterActorBox*"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="st_shadow_ref">
        <doc xml:space="preserve"
             filename="src/st/st-shadow.c"
             line="74">Atomically increments the reference count of @shadow by one.</doc>
        <source-position filename="src/st/st-shadow.h" line="64"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-shadow.c"
               line="80">the passed in #StShadow.</doc>
          <type name="Shadow" c:type="StShadow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="shadow" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-shadow.c"
                 line="76">a #StShadow</doc>
            <type name="Shadow" c:type="StShadow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="st_shadow_unref">
        <doc xml:space="preserve"
             filename="src/st/st-shadow.c"
             line="90">Atomically decrements the reference count of @shadow by one.
If the reference count drops to 0, all memory allocated by the
#StShadow is released.</doc>
        <source-position filename="src/st/st-shadow.h" line="65"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="shadow" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-shadow.c"
                 line="92">a #StShadow</doc>
            <type name="Shadow" c:type="StShadow*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="ShadowHelper"
            c:type="StShadowHelper"
            opaque="1"
            glib:type-name="StShadowHelper"
            glib:get-type="st_shadow_helper_get_type"
            c:symbol-prefix="shadow_helper">
      <source-position filename="src/st/st-shadow.h" line="32"/>
      <constructor name="new" c:identifier="st_shadow_helper_new">
        <doc xml:space="preserve"
             filename="src/st/st-shadow.c"
             line="197">Builds a #StShadowHelper that will build a drop shadow
using @source as the mask.</doc>
        <source-position filename="src/st/st-shadow.h" line="79"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-shadow.c"
               line="204">a new #StShadowHelper</doc>
          <type name="ShadowHelper" c:type="StShadowHelper*"/>
        </return-value>
        <parameters>
          <parameter name="shadow" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-shadow.c"
                 line="199">a #StShadow representing the shadow properties</doc>
            <type name="Shadow" c:type="StShadow*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy" c:identifier="st_shadow_helper_copy">
        <source-position filename="src/st/st-shadow.h" line="81"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-shadow.c"
               line="249">a copy of @helper</doc>
          <type name="ShadowHelper" c:type="StShadowHelper*"/>
        </return-value>
        <parameters>
          <instance-parameter name="helper" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-shadow.c"
                 line="247">the #StShadowHelper to copy</doc>
            <type name="ShadowHelper" c:type="StShadowHelper*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="st_shadow_helper_free">
        <doc xml:space="preserve"
             filename="src/st/st-shadow.c"
             line="265">Free resources associated with @helper.</doc>
        <source-position filename="src/st/st-shadow.h" line="82"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="helper" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-shadow.c"
                 line="267">a #StShadowHelper</doc>
            <type name="ShadowHelper" c:type="StShadowHelper*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="paint" c:identifier="st_shadow_helper_paint">
        <doc xml:space="preserve"
             filename="src/st/st-shadow.c"
             line="281">Paints the shadow associated with @helper This must only
be called from the implementation of ClutterActor::paint().</doc>
        <source-position filename="src/st/st-shadow.h" line="87"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="helper" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-shadow.c"
                 line="283">a #StShadowHelper</doc>
            <type name="ShadowHelper" c:type="StShadowHelper*"/>
          </instance-parameter>
          <parameter name="framebuffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-shadow.c"
                 line="284">a #CoglFramebuffer</doc>
            <type name="Cogl.Framebuffer" c:type="CoglFramebuffer*"/>
          </parameter>
          <parameter name="actor_box" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-shadow.c"
                 line="285">the bounding box of the shadow</doc>
            <type name="Clutter.ActorBox" c:type="ClutterActorBox*"/>
          </parameter>
          <parameter name="paint_opacity" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-shadow.c"
                 line="286">the opacity at which the shadow is painted</doc>
            <type name="guint8" c:type="guint8"/>
          </parameter>
        </parameters>
      </method>
      <method name="update" c:identifier="st_shadow_helper_update">
        <doc xml:space="preserve"
             filename="src/st/st-shadow.c"
             line="217">Update @helper from @source.</doc>
        <source-position filename="src/st/st-shadow.h" line="84"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="helper" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-shadow.c"
                 line="219">a #StShadowHelper</doc>
            <type name="ShadowHelper" c:type="StShadowHelper*"/>
          </instance-parameter>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-shadow.c"
                 line="220">a #ClutterActor</doc>
            <type name="Clutter.Actor" c:type="ClutterActor*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="Side"
                 glib:type-name="StSide"
                 glib:get-type="st_side_get_type"
                 c:type="StSide">
      <doc xml:space="preserve"
           filename="src/st/st-theme-node.h"
           line="59">Used to target a particular side of a #StThemeNode element.</doc>
      <member name="top"
              value="0"
              c:identifier="ST_SIDE_TOP"
              glib:nick="top"
              glib:name="ST_SIDE_TOP">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.h"
             line="61">The top side.</doc>
      </member>
      <member name="right"
              value="1"
              c:identifier="ST_SIDE_RIGHT"
              glib:nick="right"
              glib:name="ST_SIDE_RIGHT">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.h"
             line="62">The right side.</doc>
      </member>
      <member name="bottom"
              value="2"
              c:identifier="ST_SIDE_BOTTOM"
              glib:nick="bottom"
              glib:name="ST_SIDE_BOTTOM">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.h"
             line="63">The bottom side.</doc>
      </member>
      <member name="left"
              value="3"
              c:identifier="ST_SIDE_LEFT"
              glib:nick="left"
              glib:name="ST_SIDE_LEFT">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.h"
             line="64">The left side.</doc>
      </member>
    </enumeration>
    <enumeration name="SystemColorScheme"
                 glib:type-name="StSystemColorScheme"
                 glib:get-type="st_system_color_scheme_get_type"
                 c:type="StSystemColorScheme">
      <member name="default"
              value="0"
              c:identifier="ST_SYSTEM_COLOR_SCHEME_DEFAULT"
              glib:nick="default"
              glib:name="ST_SYSTEM_COLOR_SCHEME_DEFAULT">
      </member>
      <member name="prefer_dark"
              value="1"
              c:identifier="ST_SYSTEM_COLOR_SCHEME_PREFER_DARK"
              glib:nick="prefer-dark"
              glib:name="ST_SYSTEM_COLOR_SCHEME_PREFER_DARK">
      </member>
      <member name="prefer_light"
              value="2"
              c:identifier="ST_SYSTEM_COLOR_SCHEME_PREFER_LIGHT"
              glib:nick="prefer-light"
              glib:name="ST_SYSTEM_COLOR_SCHEME_PREFER_LIGHT">
      </member>
    </enumeration>
    <enumeration name="TextAlign"
                 glib:type-name="StTextAlign"
                 glib:get-type="st_text_align_get_type"
                 c:type="StTextAlign">
      <doc xml:space="preserve"
           filename="src/st/st-theme-node.h"
           line="111">Used to align text in a label.</doc>
      <member name="left"
              value="0"
              c:identifier="ST_TEXT_ALIGN_LEFT"
              glib:nick="left"
              glib:name="ST_TEXT_ALIGN_LEFT">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.h"
             line="113">Text is aligned at the beginning of the label.</doc>
      </member>
      <member name="center"
              value="1"
              c:identifier="ST_TEXT_ALIGN_CENTER"
              glib:nick="center"
              glib:name="ST_TEXT_ALIGN_CENTER">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.h"
             line="114">Text is aligned in the middle of the label.</doc>
      </member>
      <member name="right"
              value="2"
              c:identifier="ST_TEXT_ALIGN_RIGHT"
              glib:nick="right"
              glib:name="ST_TEXT_ALIGN_RIGHT">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.h"
             line="115">Text is aligned at the end of the label.</doc>
      </member>
      <member name="justify"
              value="3"
              c:identifier="ST_TEXT_ALIGN_JUSTIFY"
              glib:nick="justify"
              glib:name="ST_TEXT_ALIGN_JUSTIFY">
      </member>
    </enumeration>
    <bitfield name="TextDecoration"
              glib:type-name="StTextDecoration"
              glib:get-type="st_text_decoration_get_type"
              c:type="StTextDecoration">
      <doc xml:space="preserve"
           filename="src/st/st-theme-node.h"
           line="92">Flags used to determine the decoration of text.

Not that neither %ST_TEXT_DECORATION_OVERLINE or %ST_TEXT_DECORATION_BLINK
are implemented, currently.</doc>
      <member name="underline"
              value="1"
              c:identifier="ST_TEXT_DECORATION_UNDERLINE"
              glib:nick="underline"
              glib:name="ST_TEXT_DECORATION_UNDERLINE">
      </member>
      <member name="overline"
              value="2"
              c:identifier="ST_TEXT_DECORATION_OVERLINE"
              glib:nick="overline"
              glib:name="ST_TEXT_DECORATION_OVERLINE">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.h"
             line="95">Text is overlined</doc>
      </member>
      <member name="line_through"
              value="4"
              c:identifier="ST_TEXT_DECORATION_LINE_THROUGH"
              glib:nick="line-through"
              glib:name="ST_TEXT_DECORATION_LINE_THROUGH">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.h"
             line="96">Text is striked out</doc>
      </member>
      <member name="blink"
              value="8"
              c:identifier="ST_TEXT_DECORATION_BLINK"
              glib:nick="blink"
              glib:name="ST_TEXT_DECORATION_BLINK">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.h"
             line="97">Text blinks</doc>
      </member>
    </bitfield>
    <class name="TextureCache"
           c:symbol-prefix="texture_cache"
           c:type="StTextureCache"
           parent="GObject.Object"
           glib:type-name="StTextureCache"
           glib:get-type="st_texture_cache_get_type"
           glib:type-struct="TextureCacheClass">
      <source-position filename="src/st/st-texture-cache.h" line="37"/>
      <function name="get_default" c:identifier="st_texture_cache_get_default">
        <source-position filename="src/st/st-texture-cache.h" line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-texture-cache.c"
               line="1741">The global texture cache</doc>
          <type name="TextureCache" c:type="StTextureCache*"/>
        </return-value>
      </function>
      <method name="bind_cairo_surface_property"
              c:identifier="st_texture_cache_bind_cairo_surface_property">
        <doc xml:space="preserve"
             filename="src/st/st-texture-cache.c"
             line="887">Create a #GIcon which tracks the #cairo_surface_t value of a GObject property
named by @property_name.  Unlike other methods in StTextureCache, the underlying
#CoglTexture is not shared by default with other invocations to this method.

If the source object is destroyed, the texture will continue to show the last
value of the property.</doc>
        <source-position filename="src/st/st-texture-cache.h" line="66"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-texture-cache.c"
               line="900">A new #GIcon</doc>
          <type name="Gio.Icon" c:type="GIcon*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cache" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="889">A #StTextureCache</doc>
            <type name="TextureCache" c:type="StTextureCache*"/>
          </instance-parameter>
          <parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="890">A #GObject with a property @property_name of type #cairo_surface_t</doc>
            <type name="GObject.Object" c:type="GObject*"/>
          </parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="891">Name of a property</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load"
              c:identifier="st_texture_cache_load"
              introspectable="0"
              throws="1">
        <doc xml:space="preserve"
             filename="src/st/st-texture-cache.c"
             line="946">Load an arbitrary texture, caching it.  The string chosen for @key
should be of the form "type-prefix:type-uuid".  For example,
"url:file:///usr/share/icons/hicolor/48x48/apps/firefox.png", or
"stock-icon:gtk-ok".</doc>
        <source-position filename="src/st/st-texture-cache.h" line="110"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-texture-cache.c"
               line="960">A newly-referenced handle to the texture</doc>
          <type name="Cogl.Texture" c:type="CoglTexture*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cache" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="948">A #StTextureCache</doc>
            <type name="TextureCache" c:type="StTextureCache*"/>
          </instance-parameter>
          <parameter name="key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="949">Arbitrary string used to refer to item</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="policy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="950">Caching policy</doc>
            <type name="TextureCachePolicy" c:type="StTextureCachePolicy"/>
          </parameter>
          <parameter name="load" transfer-ownership="none" closure="3">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="951">Function to create the texture, if not already cached</doc>
            <type name="TextureCacheLoader" c:type="StTextureCacheLoader"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="952">User data passed to @load</doc>
            <type name="gpointer" c:type="void*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_cairo_surface_to_gicon"
              c:identifier="st_texture_cache_load_cairo_surface_to_gicon">
        <doc xml:space="preserve"
             filename="src/st/st-texture-cache.c"
             line="927">Create a #GIcon from @surface.</doc>
        <source-position filename="src/st/st-texture-cache.h" line="70"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-texture-cache.c"
               line="934">A new #GIcon</doc>
          <type name="Gio.Icon" c:type="GIcon*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cache" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="929">A #StTextureCache</doc>
            <type name="TextureCache" c:type="StTextureCache*"/>
          </instance-parameter>
          <parameter name="surface" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="930">A #cairo_surface_t</doc>
            <type name="cairo.Surface" c:type="cairo_surface_t*"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_file_async"
              c:identifier="st_texture_cache_load_file_async">
        <doc xml:space="preserve"
             filename="src/st/st-texture-cache.c"
             line="1498">Asynchronously load an image.   Initially, the returned texture will have a natural
size of zero.  At some later point, either the image will be loaded successfully
and at that point size will be negotiated, or upon an error, no image will be set.</doc>
        <source-position filename="src/st/st-texture-cache.h" line="80"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-texture-cache.c"
               line="1511">A new #ClutterActor with no image loaded initially.</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cache" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1500">A #StTextureCache</doc>
            <type name="TextureCache" c:type="StTextureCache*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1501">a #GFile of the image file from which to create a pixbuf</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="available_width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1502">available width for the image, can be -1 if not limited</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="available_height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1503">available height for the image, can be -1 if not limited</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="paint_scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1504">scale factor of the display</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="resource_scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1505">Resource scale factor</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_file_to_cairo_surface"
              c:identifier="st_texture_cache_load_file_to_cairo_surface">
        <doc xml:space="preserve"
             filename="src/st/st-texture-cache.c"
             line="1699">This function synchronously loads the given file path
into a cairo surface.  On error, a warning is emitted
and %NULL is returned.</doc>
        <source-position filename="src/st/st-texture-cache.h" line="92"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-texture-cache.c"
               line="1710">a new #cairo_surface_t</doc>
          <type name="cairo.Surface" c:type="cairo_surface_t*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cache" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1701">A #StTextureCache</doc>
            <type name="TextureCache" c:type="StTextureCache*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1702">A #GFile in supported image format</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="paint_scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1703">Scale factor of the display</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="resource_scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1704">Resource scale factor</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_file_to_cogl_texture"
              c:identifier="st_texture_cache_load_file_to_cogl_texture"
              introspectable="0">
        <doc xml:space="preserve"
             filename="src/st/st-texture-cache.c"
             line="1662">This function synchronously loads the given file path
into a COGL texture.  On error, a warning is emitted
and %NULL is returned.</doc>
        <source-position filename="src/st/st-texture-cache.h" line="87"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-texture-cache.c"
               line="1673">a new #CoglTexture</doc>
          <type name="Cogl.Texture" c:type="CoglTexture*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cache" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1664">A #StTextureCache</doc>
            <type name="TextureCache" c:type="StTextureCache*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1665">A #GFile in supported image format</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="paint_scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1666">Scale factor of the display</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="resource_scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1667">Resource scale factor</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_gicon" c:identifier="st_texture_cache_load_gicon">
        <doc xml:space="preserve"
             filename="src/st/st-texture-cache.c"
             line="1039">This method returns a new #ClutterActor for a given #GIcon. If the
icon isn't loaded already, the texture will be filled
asynchronously.</doc>
        <source-position filename="src/st/st-texture-cache.h" line="73"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-texture-cache.c"
               line="1053">A new #ClutterActor for the icon, or %NULL if not found</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cache" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1041">A #StTextureCache</doc>
            <type name="TextureCache" c:type="StTextureCache*"/>
          </instance-parameter>
          <parameter name="theme_node"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1042">The #StThemeNode to use for colors, or %NULL
                           if the icon must not be recolored</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </parameter>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1044">the #GIcon to load</doc>
            <type name="Gio.Icon" c:type="GIcon*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1045">Size of themed</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="paint_scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1046">Scale factor of display</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="resource_scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1047">Resource scale factor</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_sliced_image"
              c:identifier="st_texture_cache_load_sliced_image">
        <doc xml:space="preserve"
             filename="src/st/st-texture-cache.c"
             line="1437">This function reads a single image file which contains multiple images internally.
The image file will be divided using @grid_width and @grid_height;
note that the dimensions of the image loaded from @path
should be a multiple of the specified grid dimensions.</doc>
        <source-position filename="src/st/st-texture-cache.h" line="57"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-texture-cache.c"
               line="1452">A new #ClutterActor</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cache" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1439">A #StTextureCache</doc>
            <type name="TextureCache" c:type="StTextureCache*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1440">A #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="grid_width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1441">Width in pixels</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="grid_height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1442">Height in pixels</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="paint_scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1443">Scale factor of the display</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="resource_scale" transfer-ownership="none">
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
          <parameter name="load_callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="6">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1444">Function called when the image is loaded, or %NULL</doc>
            <type name="GLib.Func" c:type="GFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="1445">Data to pass to the load callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="rescan_icon_theme"
              c:identifier="st_texture_cache_rescan_icon_theme">
        <doc xml:space="preserve"
             filename="src/st/st-texture-cache.c"
             line="1751">Rescan the current icon theme, if necessary.</doc>
        <source-position filename="src/st/st-texture-cache.h" line="117"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-texture-cache.c"
               line="1756">%TRUE if the icon theme has changed and needed to be reloaded.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="cache" transfer-ownership="none">
            <type name="TextureCache" c:type="StTextureCache*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="TextureCachePrivate" c:type="StTextureCachePrivate*"/>
      </field>
      <glib:signal name="icon-theme-changed" when="last">
        <doc xml:space="preserve"
             filename="src/st/st-texture-cache.c"
             line="102">Emitted when the icon theme is changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="texture-file-changed" when="last">
        <doc xml:space="preserve"
             filename="src/st/st-texture-cache.c"
             line="116">Emitted when the source file of a texture is changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-texture-cache.c"
                 line="119">a #GFile</doc>
            <type name="Gio.File"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="TextureCacheClass"
            c:type="StTextureCacheClass"
            glib:is-gtype-struct-for="TextureCache">
      <source-position filename="src/st/st-texture-cache.h" line="37"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <callback name="TextureCacheLoader"
              c:type="StTextureCacheLoader"
              introspectable="0"
              throws="1">
      <doc xml:space="preserve"
           filename="src/st/st-texture-cache.h"
           line="97">See st_texture_cache_load().  Implementations should return a
texture handle for the given key, or set @error.</doc>
      <source-position filename="src/st/st-texture-cache.h" line="108"/>
      <return-value>
        <type name="Cogl.Texture" c:type="CoglTexture*"/>
      </return-value>
      <parameters>
        <parameter name="cache" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-texture-cache.h"
               line="99">a #StTextureCache</doc>
          <type name="TextureCache" c:type="StTextureCache*"/>
        </parameter>
        <parameter name="key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-texture-cache.h"
               line="100">Unique identifier for this texture</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="src/st/st-texture-cache.h"
               line="101">Callback user data</doc>
          <type name="gpointer" c:type="void*"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="TextureCachePolicy"
                 glib:type-name="StTextureCachePolicy"
                 glib:get-type="st_texture_cache_policy_get_type"
                 c:type="StTextureCachePolicy">
      <member name="none"
              value="0"
              c:identifier="ST_TEXTURE_CACHE_POLICY_NONE"
              glib:nick="none"
              glib:name="ST_TEXTURE_CACHE_POLICY_NONE">
      </member>
      <member name="forever"
              value="1"
              c:identifier="ST_TEXTURE_CACHE_POLICY_FOREVER"
              glib:nick="forever"
              glib:name="ST_TEXTURE_CACHE_POLICY_FOREVER">
      </member>
    </enumeration>
    <record name="TextureCachePrivate"
            c:type="StTextureCachePrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/st/st-texture-cache.h" line="40"/>
    </record>
    <class name="Theme"
           c:symbol-prefix="theme"
           c:type="StTheme"
           parent="GObject.Object"
           glib:type-name="StTheme"
           glib:get-type="st_theme_get_type"
           glib:type-struct="ThemeClass">
      <source-position filename="src/st/st-theme.h" line="39"/>
      <constructor name="new" c:identifier="st_theme_new">
        <source-position filename="src/st/st-theme.h" line="41"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-theme.c"
               line="484">the newly created theme object</doc>
          <type name="Theme" c:type="StTheme*"/>
        </return-value>
        <parameters>
          <parameter name="application_stylesheet" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme.c"
                 line="477">The highest priority stylesheet, representing application-specific
  styling; this is associated with the CSS "author" stylesheet, may be %NULL</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="theme_stylesheet" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme.c"
                 line="479">The second priority stylesheet, representing theme-specific styling ;
  this is associated with the CSS "user" stylesheet, may be %NULL</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="default_stylesheet" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme.c"
                 line="481">The lowest priority stylesheet, representing global default styling;
  this is associated with the CSS "user agent" stylesheet, may be %NULL</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_custom_stylesheets"
              c:identifier="st_theme_get_custom_stylesheets">
        <doc xml:space="preserve"
             filename="src/st/st-theme.c"
             line="318">Get a list of the stylesheet files loaded with st_theme_load_stylesheet().</doc>
        <source-position filename="src/st/st-theme.h" line="47"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-theme.c"
               line="324">the list of stylesheet files
         that were loaded with st_theme_load_stylesheet()</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="Gio.File"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme.c"
                 line="320">an #StTheme</doc>
            <type name="Theme" c:type="StTheme*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_stylesheet"
              c:identifier="st_theme_load_stylesheet"
              throws="1">
        <doc xml:space="preserve"
             filename="src/st/st-theme.c"
             line="253">Load the stylesheet associated with @file.</doc>
        <source-position filename="src/st/st-theme.h" line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme.c"
               line="261">%TRUE if successful</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme.c"
                 line="255">a #StTheme</doc>
            <type name="Theme" c:type="StTheme*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme.c"
                 line="256">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unload_stylesheet"
              c:identifier="st_theme_unload_stylesheet">
        <doc xml:space="preserve"
             filename="src/st/st-theme.c"
             line="284">Unload the stylesheet associated with @file. If @file was not loaded this
function does nothing.</doc>
        <source-position filename="src/st/st-theme.h" line="46"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme.c"
                 line="286">a #StTheme</doc>
            <type name="Theme" c:type="StTheme*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme.c"
                 line="287">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <property name="application-stylesheet"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/st/st-theme.c"
             line="128">The highest priority stylesheet, representing application-specific
styling; this is associated with the CSS "author" stylesheet.</doc>
        <type name="Gio.File"/>
      </property>
      <property name="default-stylesheet"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/st/st-theme.c"
             line="156">The lowest priority stylesheet, representing global default
styling; this is associated with the CSS "user agent" stylesheet.</doc>
        <type name="Gio.File"/>
      </property>
      <property name="theme-stylesheet"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/st/st-theme.c"
             line="142">The second priority stylesheet, representing theme-specific styling;
this is associated with the CSS "user" stylesheet.</doc>
        <type name="Gio.File"/>
      </property>
      <glib:signal name="custom-stylesheets-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ThemeClass"
            c:type="StThemeClass"
            glib:is-gtype-struct-for="Theme">
      <source-position filename="src/st/st-theme.h" line="39"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="ThemeContext"
           c:symbol-prefix="theme_context"
           c:type="StThemeContext"
           parent="GObject.Object"
           glib:type-name="StThemeContext"
           glib:get-type="st_theme_context_get_type"
           glib:type-struct="ThemeContextClass">
      <source-position filename="src/st/st-theme-context.h" line="42"/>
      <constructor name="new" c:identifier="st_theme_context_new">
        <doc xml:space="preserve"
             filename="src/st/st-theme-context.c"
             line="227">Create a new theme context not associated with any #ClutterStage.
This can be useful in testing scenarios, or if using StThemeContext
with something other than #ClutterActor objects, but you generally
should use st_theme_context_get_for_stage() instead.</doc>
        <source-position filename="src/st/st-theme-context.h" line="45"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-theme-context.c"
               line="235">a new #StThemeContext</doc>
          <type name="ThemeContext" c:type="StThemeContext*"/>
        </return-value>
      </constructor>
      <function name="get_for_stage"
                c:identifier="st_theme_context_get_for_stage">
        <doc xml:space="preserve"
             filename="src/st/st-theme-context.c"
             line="312">Gets a singleton theme context associated with the stage.</doc>
        <source-position filename="src/st/st-theme-context.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-context.c"
               line="318">the singleton theme context for the stage</doc>
          <type name="ThemeContext" c:type="StThemeContext*"/>
        </return-value>
        <parameters>
          <parameter name="stage" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-context.c"
                 line="314">a #ClutterStage</doc>
            <type name="Clutter.Stage" c:type="ClutterStage*"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_font" c:identifier="st_theme_context_get_font">
        <doc xml:space="preserve"
             filename="src/st/st-theme-context.c"
             line="418">Gets the default font for the theme context. See st_theme_context_set_font().</doc>
        <source-position filename="src/st/st-theme-context.h" line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-context.c"
               line="424">the default font for the theme context.</doc>
          <type name="Pango.FontDescription"
                c:type="const PangoFontDescription*"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-context.c"
                 line="420">a #StThemeContext</doc>
            <type name="ThemeContext" c:type="StThemeContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_root_node"
              c:identifier="st_theme_context_get_root_node">
        <doc xml:space="preserve"
             filename="src/st/st-theme-context.c"
             line="434">Gets the root node of the tree of theme style nodes that associated with this
context. For the node tree associated with a stage, this node represents
styles applied to the stage itself.</doc>
        <source-position filename="src/st/st-theme-context.h" line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-context.c"
               line="442">the root node of the context's style tree</doc>
          <type name="ThemeNode" c:type="StThemeNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-context.c"
                 line="436">a #StThemeContext</doc>
            <type name="ThemeContext" c:type="StThemeContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_scale_factor"
              c:identifier="st_theme_context_get_scale_factor"
              glib:get-property="scale-factor">
        <doc xml:space="preserve"
             filename="src/st/st-theme-context.c"
             line="478">Return the current scale factor of @context.</doc>
        <source-position filename="src/st/st-theme-context.h" line="61"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-context.c"
               line="484">an integer scale factor</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-context.c"
                 line="480">a #StThemeContext</doc>
            <type name="ThemeContext" c:type="StThemeContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_theme" c:identifier="st_theme_context_get_theme">
        <doc xml:space="preserve"
             filename="src/st/st-theme-context.c"
             line="375">Gets the default theme for the context. See st_theme_context_set_theme()</doc>
        <source-position filename="src/st/st-theme-context.h" line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-context.c"
               line="381">the default theme for the context</doc>
          <type name="Theme" c:type="StTheme*"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-context.c"
                 line="377">a #StThemeContext</doc>
            <type name="ThemeContext" c:type="StThemeContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="intern_node" c:identifier="st_theme_context_intern_node">
        <doc xml:space="preserve"
             filename="src/st/st-theme-context.c"
             line="454">Return an existing node matching @node, or if that isn't possible,
@node itself.</doc>
        <source-position filename="src/st/st-theme-context.h" line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-context.c"
               line="462">a node with the same properties as @node</doc>
          <type name="ThemeNode" c:type="StThemeNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-context.c"
                 line="456">a #StThemeContext</doc>
            <type name="ThemeContext" c:type="StThemeContext*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-context.c"
                 line="457">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_font" c:identifier="st_theme_context_set_font">
        <doc xml:space="preserve"
             filename="src/st/st-theme-context.c"
             line="391">Sets the default font for the theme context. This is the font that
is inherited by the root node of the tree of theme nodes. If the
font is not overridden, then this font will be used. If the font is
partially modified (for example, with 'font-size: 110%'), then that
modification is based on this font.</doc>
        <source-position filename="src/st/st-theme-context.h" line="52"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-context.c"
                 line="393">a #StThemeContext</doc>
            <type name="ThemeContext" c:type="StThemeContext*"/>
          </instance-parameter>
          <parameter name="font" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-context.c"
                 line="394">the default font for theme context</doc>
            <type name="Pango.FontDescription"
                  c:type="const PangoFontDescription*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_theme" c:identifier="st_theme_context_set_theme">
        <doc xml:space="preserve"
             filename="src/st/st-theme-context.c"
             line="339">Sets the default set of theme stylesheets for the context. This theme will
be used for the root node and for nodes descending from it, unless some other
style is explicitly specified.</doc>
        <source-position filename="src/st/st-theme-context.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-context.c"
                 line="341">a #StThemeContext</doc>
            <type name="ThemeContext" c:type="StThemeContext*"/>
          </instance-parameter>
          <parameter name="theme" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-context.c"
                 line="342">a #StTheme</doc>
            <type name="Theme" c:type="StTheme*"/>
          </parameter>
        </parameters>
      </method>
      <property name="scale-factor"
                writable="1"
                transfer-ownership="none"
                getter="get_scale_factor"
                default-value="1">
        <doc xml:space="preserve"
             filename="src/st/st-theme-context.c"
             line="135">The scaling factor used for HiDPI scaling.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <glib:signal name="changed" when="last">
        <doc xml:space="preserve"
             filename="src/st/st-theme-context.c"
             line="149">Emitted when the icon theme, font, resolution, scale factor or the current
theme's custom stylesheets change.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ThemeContextClass"
            c:type="StThemeContextClass"
            glib:is-gtype-struct-for="ThemeContext">
      <source-position filename="src/st/st-theme-context.h" line="42"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="ThemeNode"
           c:symbol-prefix="theme_node"
           c:type="StThemeNode"
           parent="GObject.Object"
           glib:type-name="StThemeNode"
           glib:get-type="st_theme_node_get_type"
           glib:type-struct="ThemeNodeClass">
      <source-position filename="src/st/st-theme-node.h" line="57"/>
      <constructor name="new" c:identifier="st_theme_node_new">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="167">Creates a new #StThemeNode. Once created, a node is immutable. If any
of the attributes of the node (like the @element_class) change the node
and its child nodes must be destroyed and recreated.</doc>
        <source-position filename="src/st/st-theme-node.h" line="178"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="187">a new #StThemeNode</doc>
          <type name="ThemeNode" c:type="StThemeNode*"/>
        </return-value>
        <parameters>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="169">the context representing global state for this themed tree</doc>
            <type name="ThemeContext" c:type="StThemeContext*"/>
          </parameter>
          <parameter name="parent_node"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="170">the parent node of this node</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </parameter>
          <parameter name="theme"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="171">a theme (stylesheet set) that overrides the
  theme inherited from the parent node</doc>
            <type name="Theme" c:type="StTheme*"/>
          </parameter>
          <parameter name="element_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="173">the type of the GObject represented by this node
 in the tree (corresponding to an element if we were theming an XML
 document. %G_TYPE_NONE means this style was created for the stage
actor and matches a selector element name of 'stage'.</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
          <parameter name="element_id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="177">the ID to match CSS rules against</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="element_class"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="178">a whitespace-separated list of classes
  to match CSS rules against</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="pseudo_class"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="180">a whitespace-separated list of pseudo-classes
  (like 'hover' or 'visited') to match CSS rules against</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="inline_style" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="adjust_for_height"
              c:identifier="st_theme_node_adjust_for_height">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="3883">Adjusts a "for height" passed to clutter_actor_get_preferred_width() to
account for borders and padding. This is a convenience function meant
to be called from a get_preferred_width() method of a #ClutterActor
subclass. The value after adjustment is the height available for the actor's
content.</doc>
        <source-position filename="src/st/st-theme-node.h" line="311"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3885">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="for_height"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3886">the "for height" to adjust</doc>
            <type name="gfloat" c:type="float*"/>
          </parameter>
        </parameters>
      </method>
      <method name="adjust_for_width"
              c:identifier="st_theme_node_adjust_for_width">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="3950">Adjusts a "for width" passed to clutter_actor_get_preferred_height() to
account for borders and padding. This is a convenience function meant
to be called from a get_preferred_height() method of a #ClutterActor
subclass. The value after adjustment is the width available for the actor's
content.</doc>
        <source-position filename="src/st/st-theme-node.h" line="316"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3952">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="for_width"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3953">the "for width" to adjust</doc>
            <type name="gfloat" c:type="float*"/>
          </parameter>
        </parameters>
      </method>
      <method name="adjust_preferred_height"
              c:identifier="st_theme_node_adjust_preferred_height">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="3975">Adjusts the minimum and natural height computed for an actor by
adding on the necessary space for borders and padding and taking
into account any minimum or maximum height. This is a convenience
function meant to be called from the get_preferred_height() method
of a #ClutterActor subclass</doc>
        <source-position filename="src/st/st-theme-node.h" line="318"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3977">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="min_height_p"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3978">the minimum height to adjust</doc>
            <type name="gfloat" c:type="float*"/>
          </parameter>
          <parameter name="natural_height_p"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3979">the natural height to adjust</doc>
            <type name="gfloat" c:type="float*"/>
          </parameter>
        </parameters>
      </method>
      <method name="adjust_preferred_width"
              c:identifier="st_theme_node_adjust_preferred_width">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="3908">Adjusts the minimum and natural width computed for an actor by
adding on the necessary space for borders and padding and taking
into account any minimum or maximum width. This is a convenience
function meant to be called from the get_preferred_width() method
of a #ClutterActor subclass</doc>
        <source-position filename="src/st/st-theme-node.h" line="313"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3910">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="min_width_p"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3911">the minimum width to adjust</doc>
            <type name="gfloat" c:type="float*"/>
          </parameter>
          <parameter name="natural_width_p"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3912">the natural width to adjust</doc>
            <type name="gfloat" c:type="float*"/>
          </parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="st_theme_node_equal">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="323">Compare two #StThemeNodes. Two nodes which compare equal will match
the same CSS rules and have the same style properties. However, two
nodes that have ended up with identical style properties do not
necessarily compare equal.

In detail, @node_a and @node_b are considered equal if and only if:

- they share the same #StTheme and #StThemeContext
- they have the same parent
- they have the same element type
- their id, class, pseudo-class and inline-style match</doc>
        <source-position filename="src/st/st-theme-node.h" line="191"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="340">%TRUE if @node_a equals @node_b</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="node_a" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="325">first #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="node_b" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="326">second #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="geometry_equal"
              c:identifier="st_theme_node_geometry_equal">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="4145">Tests if two theme nodes have the same borders and padding; this can be
used to optimize having to relayout when the style applied to a Clutter
actor changes colors without changing the geometry.</doc>
        <source-position filename="src/st/st-theme-node.h" line="335"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="4154">%TRUE if equal, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="4147">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="4148">a different #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_background_color"
              c:identifier="st_theme_node_get_background_color">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="2264">Gets @node's background color.</doc>
        <source-position filename="src/st/st-theme-node.h" line="244"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2266">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="color"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2267">location to store the color</doc>
            <type name="Clutter.Color" c:type="ClutterColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_background_gradient"
              c:identifier="st_theme_node_get_background_gradient">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="2344">The @start and @end arguments will only be set if @type is not #ST_GRADIENT_NONE.</doc>
        <source-position filename="src/st/st-theme-node.h" line="248"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2346">A #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="type"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2347">Type of gradient</doc>
            <type name="GradientType" c:type="StGradientType*"/>
          </parameter>
          <parameter name="start"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2348">Color at start of gradient</doc>
            <type name="Clutter.Color" c:type="ClutterColor*"/>
          </parameter>
          <parameter name="end"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2349">Color at end of gradient</doc>
            <type name="Clutter.Color" c:type="ClutterColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_background_image"
              c:identifier="st_theme_node_get_background_image">
        <source-position filename="src/st/st-theme-node.h" line="253"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="2286">@node's background image.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2284">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_background_image_shadow"
              c:identifier="st_theme_node_get_background_image_shadow">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="3657">Gets the value for the -st-background-image-shadow style property</doc>
        <source-position filename="src/st/st-theme-node.h" line="306"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="3663">the node's background image shadow, or
  %NULL if node has no such shadow</doc>
          <type name="Shadow" c:type="StShadow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3659">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_background_paint_box"
              c:identifier="st_theme_node_get_background_paint_box">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="4061">Gets the box used to paint the actor's background, including the area
occupied by properties which paint outside the actor's assigned allocation.</doc>
        <source-position filename="src/st/st-theme-node.h" line="331"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="4063">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="allocation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="4064">the box allocated to a #ClutterActor</doc>
            <type name="Clutter.ActorBox" c:type="const ClutterActorBox*"/>
          </parameter>
          <parameter name="paint_box"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="4065">computed box occupied when painting the actor's background</doc>
            <type name="Clutter.ActorBox" c:type="ClutterActorBox*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_border_color"
              c:identifier="st_theme_node_get_border_color">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="2371">Gets the color of @node's border on @side</doc>
        <source-position filename="src/st/st-theme-node.h" line="259"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2373">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="side" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2374">a #StSide</doc>
            <type name="Side" c:type="StSide"/>
          </parameter>
          <parameter name="color"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2375">location to store the color</doc>
            <type name="Clutter.Color" c:type="ClutterColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_border_image"
              c:identifier="st_theme_node_get_border_image">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="3185">Gets the value for the border-image style property</doc>
        <source-position filename="src/st/st-theme-node.h" line="302"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="3191">the border image, or %NULL
  if there is no border image.</doc>
          <type name="BorderImage" c:type="StBorderImage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3187">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_border_radius"
              c:identifier="st_theme_node_get_border_radius">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="1876">Get the border radius for @node at @corner, in physical pixels.</doc>
        <source-position filename="src/st/st-theme-node.h" line="257"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="1883">the border radius in physical pixels</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="1878">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="corner" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="1879">a #StCorner</doc>
            <type name="Corner" c:type="StCorner"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_border_width"
              c:identifier="st_theme_node_get_border_width">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="1855">Get the border width for @node on @side, in physical pixels.</doc>
        <source-position filename="src/st/st-theme-node.h" line="255"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="1862">the border width in physical pixels</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="1857">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="side" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="1858">a #StCorner</doc>
            <type name="Side" c:type="StSide"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_box_shadow"
              c:identifier="st_theme_node_get_box_shadow">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="3622">Gets the value for the box-shadow style property</doc>
        <source-position filename="src/st/st-theme-node.h" line="303"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="3628">the node's shadow, or %NULL
  if node has no shadow</doc>
          <type name="Shadow" c:type="StShadow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3624">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_color" c:identifier="st_theme_node_get_color">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="710">Generically looks up a property containing a single color value. When
specific getters (like st_theme_node_get_background_color()) exist, they
should be used instead. They are cached, so more efficient, and have
handling for shortcut properties and other details of CSS.

If @property_name is not found, a warning will be logged and a
default color returned.

See also st_theme_node_lookup_color(), which provides more options,
and lets you handle the case where the theme does not specify the
indicated color.</doc>
        <source-position filename="src/st/st-theme-node.h" line="230"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="712">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="713">The name of the color property</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="color"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="714">location to store the color that
  was determined.</doc>
            <type name="Clutter.Color" c:type="ClutterColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_content_box"
              c:identifier="st_theme_node_get_content_box">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="4016">Gets the box within an actor's allocation that contents the content
of an actor (excluding borders and padding). This is a convenience function
meant to be used from the allocate() or paint() methods of a #ClutterActor
subclass.</doc>
        <source-position filename="src/st/st-theme-node.h" line="323"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="4018">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="allocation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="4019">the box allocated to a #ClutterAlctor</doc>
            <type name="Clutter.ActorBox" c:type="const ClutterActorBox*"/>
          </parameter>
          <parameter name="content_box"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="4020">computed box occupied by the actor's content</doc>
            <type name="Clutter.ActorBox" c:type="ClutterActorBox*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_double" c:identifier="st_theme_node_get_double">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="863">Generically looks up a property containing a single numeric value
 without units.

See also st_theme_node_lookup_double(), which provides more options,
and lets you handle the case where the theme does not specify the
indicated value.</doc>
        <source-position filename="src/st/st-theme-node.h" line="233"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="875">the value found. If @property_name is not
 found, a warning will be logged and 0 will be returned.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="865">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="866">The name of the numeric property</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_element_classes"
              c:identifier="st_theme_node_get_element_classes">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="291">Get the list of element classes for @node.</doc>
        <source-position filename="src/st/st-theme-node.h" line="196"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="297">the element's classes</doc>
          <array c:type="GStrv">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="293">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_element_id"
              c:identifier="st_theme_node_get_element_id">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="275">Get the unique element ID for @node.</doc>
        <source-position filename="src/st/st-theme-node.h" line="195"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="281">the element's ID</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="277">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_element_type"
              c:identifier="st_theme_node_get_element_type">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="259">Get the element #GType for @node.</doc>
        <source-position filename="src/st/st-theme-node.h" line="194"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="265">the element type</doc>
          <type name="GType" c:type="GType"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="261">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_font" c:identifier="st_theme_node_get_font">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="2939">Get the current font of @node as a #PangoFontDescription</doc>
        <source-position filename="src/st/st-theme-node.h" line="298"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="2945">the current font</doc>
          <type name="Pango.FontDescription"
                c:type="const PangoFontDescription*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2941">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_font_features"
              c:identifier="st_theme_node_get_font_features">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="3142">Get the CSS font-features for @node.</doc>
        <source-position filename="src/st/st-theme-node.h" line="300"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="3148">font-features as a string</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3144">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_foreground_color"
              c:identifier="st_theme_node_get_foreground_color">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="2298">Gets @node's foreground color.</doc>
        <source-position filename="src/st/st-theme-node.h" line="246"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2300">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="color"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2301">location to store the color</doc>
            <type name="Clutter.Color" c:type="ClutterColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_height" c:identifier="st_theme_node_get_height">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="1950">Get the height for @node, in physical pixels.</doc>
        <source-position filename="src/st/st-theme-node.h" line="277"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="1956">the height in physical pixels</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="1952">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_horizontal_padding"
              c:identifier="st_theme_node_get_horizontal_padding">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="3326">Gets the total horizontal padding (left + right padding), in physical pixels.</doc>
        <source-position filename="src/st/st-theme-node.h" line="270"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="3332">the total horizontal padding in physical pixels</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3328">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_colors"
              c:identifier="st_theme_node_get_icon_colors">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="3747">Gets the colors that should be used for colorizing symbolic icons according
the style of this node.</doc>
        <source-position filename="src/st/st-theme-node.h" line="308"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="3754">the icon colors to use for this theme node</doc>
          <type name="IconColors" c:type="StIconColors*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3749">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_style"
              c:identifier="st_theme_node_get_icon_style">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="2468">Get the icon style for @node (eg. symbolic, regular). This corresponds to the
special `-st-icon-style` CSS property.</doc>
        <source-position filename="src/st/st-theme-node.h" line="285"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="2475">the icon style for @node</doc>
          <type name="IconStyle" c:type="StIconStyle"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2470">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_length" c:identifier="st_theme_node_get_length">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="1237">Generically looks up a property containing a single length value. When
specific getters (like st_theme_node_get_border_width()) exist, they
should be used instead. They are cached, so more efficient, and have
handling for shortcut properties and other details of CSS.

Unlike st_theme_node_get_color() and st_theme_node_get_double(),
this does not print a warning if the property is not found; it just
returns 0.

See also st_theme_node_lookup_length(), which provides more options. The
returned value is in physical pixels, as opposed to logical pixels.</doc>
        <source-position filename="src/st/st-theme-node.h" line="235"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="1254">the length, in pixels, or 0 if the property was not found.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="1239">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="1240">The name of the length property</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_letter_spacing"
              c:identifier="st_theme_node_get_letter_spacing">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="2658">Gets the value for the letter-spacing style property, in physical pixels.</doc>
        <source-position filename="src/st/st-theme-node.h" line="291"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="2664">the value of the letter-spacing property, if
  found, or zero if such property has not been found.</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2660">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_margin" c:identifier="st_theme_node_get_margin">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="2414">Get the margin for @node on @side, in physical pixels. This corresponds to
the CSS properties such as `margin-top`.</doc>
        <source-position filename="src/st/st-theme-node.h" line="273"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="2422">the margin size in physical pixels</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2416">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="side" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2417">a #StSide</doc>
            <type name="Side" c:type="StSide"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_max_height"
              c:identifier="st_theme_node_get_max_height">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="2018">Get the maximum height for @node, in physical pixels.</doc>
        <source-position filename="src/st/st-theme-node.h" line="281"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="2024">the maximum height in physical pixels</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2020">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_max_width" c:identifier="st_theme_node_get_max_width">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="2001">Get the maximum width for @node, in physical pixels.</doc>
        <source-position filename="src/st/st-theme-node.h" line="280"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="2007">the maximum width in physical pixels</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2003">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_min_height"
              c:identifier="st_theme_node_get_min_height">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="1984">Get the minimum height for @node, in physical pixels.</doc>
        <source-position filename="src/st/st-theme-node.h" line="279"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="1990">the minimum height in physical pixels</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="1986">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_min_width" c:identifier="st_theme_node_get_min_width">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="1967">Get the minimum width for @node, in physical pixels.</doc>
        <source-position filename="src/st/st-theme-node.h" line="278"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="1973">the minimum width in physical pixels</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="1969">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_outline_color"
              c:identifier="st_theme_node_get_outline_color">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="1915">Gets the color of @node's outline.</doc>
        <source-position filename="src/st/st-theme-node.h" line="264"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="1917">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="color"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="1918">location to store the color</doc>
            <type name="Clutter.Color" c:type="ClutterColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_outline_width"
              c:identifier="st_theme_node_get_outline_width">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="1897">Get the width of the outline for @node, in physical pixels.</doc>
        <source-position filename="src/st/st-theme-node.h" line="263"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="1903">the width in physical pixels</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="1899">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_padding" c:identifier="st_theme_node_get_padding">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="2392">Get the padding for @node on @side, in physical pixels. This corresponds to
the CSS properties such as `padding-top`.</doc>
        <source-position filename="src/st/st-theme-node.h" line="267"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="2400">the padding size in physical pixels</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2394">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="side" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2395">a #StSide</doc>
            <type name="Side" c:type="StSide"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_paint_box" c:identifier="st_theme_node_get_paint_box">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="4097">Gets the box used to paint the actor, including the area occupied
by properties which paint outside the actor's assigned allocation.
When painting @node to an offscreen buffer, this function can be
used to determine the necessary size of the buffer.</doc>
        <source-position filename="src/st/st-theme-node.h" line="327"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="4099">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="allocation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="4100">the box allocated to a #ClutterActor</doc>
            <type name="Clutter.ActorBox" c:type="const ClutterActorBox*"/>
          </parameter>
          <parameter name="paint_box"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="4101">computed box occupied when painting the actor</doc>
            <type name="Clutter.ActorBox" c:type="ClutterActorBox*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_parent" c:identifier="st_theme_node_get_parent">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="226">Gets the parent themed element node.</doc>
        <source-position filename="src/st/st-theme-node.h" line="187"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="232">the parent #StThemeNode, or %NULL if
 this is the root node of the tree of theme elements.</doc>
          <type name="ThemeNode" c:type="StThemeNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="228">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pseudo_classes"
              c:identifier="st_theme_node_get_pseudo_classes">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="307">Get the list of pseudo-classes for @node (eg. `:focused`).</doc>
        <source-position filename="src/st/st-theme-node.h" line="197"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="313">the element's pseudo-classes</doc>
          <array c:type="GStrv">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="309">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_shadow" c:identifier="st_theme_node_get_shadow">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="3592">Generically looks up a property containing a set of shadow values. When
specific getters (like st_theme_node_get_box_shadow()) exist, they
should be used instead. They are cached, so more efficient, and have
handling for shortcut properties and other details of CSS.

Like st_theme_get_length(), this does not print a warning if the property is
not found; it just returns %NULL

See also st_theme_node_lookup_shadow (), which provides more options.</doc>
        <source-position filename="src/st/st-theme-node.h" line="237"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="3607">the shadow, or %NULL if the property was
  not found.</doc>
          <type name="Shadow" c:type="StShadow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3594">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3595">The name of the shadow property</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_text_align"
              c:identifier="st_theme_node_get_text_align">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="2598">Get the text alignment of @node.</doc>
        <source-position filename="src/st/st-theme-node.h" line="289"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="2604">the alignment of text for @node</doc>
          <type name="TextAlign" c:type="StTextAlign"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2600">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text_decoration"
              c:identifier="st_theme_node_get_text_decoration">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="2521">Get the text decoration for @node (eg. underline, line-through, etc).</doc>
        <source-position filename="src/st/st-theme-node.h" line="287"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="2527">the text decoration for @node</doc>
          <type name="TextDecoration" c:type="StTextDecoration"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2523">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text_shadow"
              c:identifier="st_theme_node_get_text_shadow">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="3700">Gets the value for the text-shadow style property</doc>
        <source-position filename="src/st/st-theme-node.h" line="304"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="3706">the node's text-shadow, or %NULL
  if node has no text-shadow</doc>
          <type name="Shadow" c:type="StShadow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3702">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_theme" c:identifier="st_theme_node_get_theme">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="243">Gets the theme stylesheet set that styles this node</doc>
        <source-position filename="src/st/st-theme-node.h" line="189"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="249">the theme stylesheet set</doc>
          <type name="Theme" c:type="StTheme*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="245">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_transition_duration"
              c:identifier="st_theme_node_get_transition_duration">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="2436">Get the value of the transition-duration property, which
specifies the transition time between the previous #StThemeNode
and @node.</doc>
        <source-position filename="src/st/st-theme-node.h" line="283"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="2444">the node's transition duration in milliseconds</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="2438">an #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_url" c:identifier="st_theme_node_get_url">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="958">Looks up a property containing a single URL value.

See also st_theme_node_lookup_url(), which provides more options,
and lets you handle the case where the theme does not specify the
indicated value.</doc>
        <source-position filename="src/st/st-theme-node.h" line="239"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="969">the newly allocated value if found.
 If @property_name is not found, a warning will be logged and %NULL
 will be returned.</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="960">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="961">The name of the string property</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_vertical_padding"
              c:identifier="st_theme_node_get_vertical_padding">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="3347">Gets the total vertical padding (top + bottom padding), in physical pixels.</doc>
        <source-position filename="src/st/st-theme-node.h" line="271"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="3353">the total vertical padding in physical pixels</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3349">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_width" c:identifier="st_theme_node_get_width">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="1933">Get the width for @node, in physical pixels.</doc>
        <source-position filename="src/st/st-theme-node.h" line="276"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="1939">the width in physical pixels</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="1935">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="hash" c:identifier="st_theme_node_hash">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="400">Converts @node to a hash value.</doc>
        <source-position filename="src/st/st-theme-node.h" line="192"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="406">a hash value corresponding to @node</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="402">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="invalidate_background_image"
              c:identifier="st_theme_node_invalidate_background_image">
        <source-position filename="src/st/st-theme-node.h" line="350"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="invalidate_border_image"
              c:identifier="st_theme_node_invalidate_border_image">
        <source-position filename="src/st/st-theme-node.h" line="351"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="lookup_color" c:identifier="st_theme_node_lookup_color">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="646">Generically looks up a property containing a single color value. When
specific getters (like st_theme_node_get_background_color()) exist, they
should be used instead. They are cached, so more efficient, and have
handling for shortcut properties and other details of CSS.

See also st_theme_node_get_color(), which provides a simpler API.</doc>
        <source-position filename="src/st/st-theme-node.h" line="204"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="666">%TRUE if the property was found in the properties for this
 theme node (or in the properties of parent nodes when inheriting.)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="648">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="649">The name of the color property</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="inherit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="650">if %TRUE, if a value is not found for the property on the
  node, then it will be looked up on the parent node, and then on the
  parent's parent, and so forth. Note that if the property has a
  value of 'inherit' it will be inherited even if %FALSE is passed
  in for @inherit; this only affects the default behavior for inheritance.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="color"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="655">location to store the color that was
  determined. If the property is not found, the value in this location
  will not be changed.</doc>
            <type name="Clutter.Color" c:type="ClutterColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_double" c:identifier="st_theme_node_lookup_double">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="741">Generically looks up a property containing a single numeric value
 without units.

See also st_theme_node_get_double(), which provides a simpler API.</doc>
        <source-position filename="src/st/st-theme-node.h" line="208"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="759">%TRUE if the property was found in the properties for this
 theme node (or in the properties of parent nodes when inheriting.)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="743">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="744">The name of the numeric property</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="inherit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="745">if %TRUE, if a value is not found for the property on the
  node, then it will be looked up on the parent node, and then on the
  parent's parent, and so forth. Note that if the property has a
  value of 'inherit' it will be inherited even if %FALSE is passed
  in for @inherit; this only affects the default behavior for inheritance.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="750">location to store the value that was determined.
  If the property is not found, the value in this location
  will not be changed.</doc>
            <type name="gdouble" c:type="double*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_length" c:identifier="st_theme_node_lookup_length">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="1189">Generically looks up a property containing a single length value. When
specific getters (like st_theme_node_get_border_width()) exist, they
should be used instead. They are cached, so more efficient, and have
handling for shortcut properties and other details of CSS.

See also st_theme_node_get_length(), which provides a simpler API.</doc>
        <source-position filename="src/st/st-theme-node.h" line="212"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="1210">%TRUE if the property was found in the properties for this
 theme node (or in the properties of parent nodes when inheriting.)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="1191">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="1192">The name of the length property</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="inherit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="1193">if %TRUE, if a value is not found for the property on the
  node, then it will be looked up on the parent node, and then on the
  parent's parent, and so forth. Note that if the property has a
  value of 'inherit' it will be inherited even if %FALSE is passed
  in for @inherit; this only affects the default behavior for inheritance.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="length"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="1198">location to store the length that was determined.
  If the property is not found, the value in this location
  will not be changed. The returned length is resolved
  to pixels.</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_shadow" c:identifier="st_theme_node_lookup_shadow">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="3498">If the property is not found, the value in the shadow variable will not
be changed.

Generically looks up a property containing a set of shadow values. When
specific getters (like st_theme_node_get_box_shadow ()) exist, they
should be used instead. They are cached, so more efficient, and have
handling for shortcut properties and other details of CSS.

See also st_theme_node_get_shadow(), which provides a simpler API.</doc>
        <source-position filename="src/st/st-theme-node.h" line="220"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="3519">%TRUE if the property was found in the properties for this
  theme node (or in the properties of parent nodes when inheriting.), %FALSE
  if the property was not found, or was explicitly set to 'none'.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3500">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3501">The name of the shadow property</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="inherit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3502">if %TRUE, if a value is not found for the property on the
  node, then it will be looked up on the parent node, and then on the
  parent's parent, and so forth. Note that if the property has a
  value of 'inherit' it will be inherited even if %FALSE is passed
  in for @inherit; this only affects the default behavior for inheritance.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="shadow"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="3507">location to store the shadow</doc>
            <type name="Shadow" c:type="StShadow**"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_time" c:identifier="st_theme_node_lookup_time">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="799">Generically looks up a property containing a single time value,
 which is converted to milliseconds.</doc>
        <source-position filename="src/st/st-theme-node.h" line="216"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="815">%TRUE if the property was found in the properties for this
 theme node (or in the properties of parent nodes when inheriting.)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="801">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="802">The name of the time property</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="inherit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="803">if %TRUE, if a value is not found for the property on the
  node, then it will be looked up on the parent node, and then on the
  parent's parent, and so forth. Note that if the property has a
  value of 'inherit' it will be inherited even if %FALSE is passed
  in for @inherit; this only affects the default behavior for inheritance.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="808">location to store the value that was determined.
  If the property is not found, the value in this location
  will not be changed.</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_url" c:identifier="st_theme_node_lookup_url">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="893">Looks up a property containing a single URL value.

See also st_theme_node_get_url(), which provides a simpler API.</doc>
        <source-position filename="src/st/st-theme-node.h" line="224"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="910">%TRUE if the property was found in the properties for this
 theme node (or in the properties of parent nodes when inheriting.)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="895">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="896">The name of the string property</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="inherit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="897">if %TRUE, if a value is not found for the property on the
  node, then it will be looked up on the parent node, and then on the
  parent's parent, and so forth. Note that if the property has a
  value of 'inherit' it will be inherited even if %FALSE is passed
  in for @inherit; this only affects the default behavior for inheritance.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="file"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="902">location to store the newly allocated value that was
  determined. If the property is not found, the value in this location
  will not be changed.</doc>
            <type name="Gio.File" c:type="GFile**"/>
          </parameter>
        </parameters>
      </method>
      <method name="paint"
              c:identifier="st_theme_node_paint"
              introspectable="0">
        <source-position filename="src/st/st-theme-node.h" line="343"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <type name="ThemeNodePaintState" c:type="StThemeNodePaintState*"/>
          </parameter>
          <parameter name="framebuffer" transfer-ownership="none">
            <type name="Cogl.Framebuffer" c:type="CoglFramebuffer*"/>
          </parameter>
          <parameter name="box" transfer-ownership="none">
            <type name="Clutter.ActorBox" c:type="const ClutterActorBox*"/>
          </parameter>
          <parameter name="paint_opacity" transfer-ownership="none">
            <type name="guint8" c:type="guint8"/>
          </parameter>
          <parameter name="resource_scale" transfer-ownership="none">
            <type name="gfloat" c:type="float"/>
          </parameter>
        </parameters>
      </method>
      <method name="paint_equal" c:identifier="st_theme_node_paint_equal">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="4193">Check if st_theme_node_paint() will paint identically for @node as it does
for @other. Note that in some cases this function may return %TRUE even
if there is no visible difference in the painting.</doc>
        <source-position filename="src/st/st-theme-node.h" line="337"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="4202">%TRUE if the two theme nodes paint identically. %FALSE if the
  two nodes potentially paint differently.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="node"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="4195">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
          <parameter name="other"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="4196">a different #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="st_theme_node_to_string">
        <doc xml:space="preserve"
             filename="src/st/st-theme-node.c"
             line="4291">Serialize @node to a string of its #GType name, CSS ID, classes and
pseudo-classes.</doc>
        <source-position filename="src/st/st-theme-node.h" line="353"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/st/st-theme-node.c"
               line="4298">the serialized theme node</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="node" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-theme-node.c"
                 line="4293">a #StThemeNode</doc>
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="ThemeNodeClass"
            c:type="StThemeNodeClass"
            glib:is-gtype-struct-for="ThemeNode">
      <source-position filename="src/st/st-theme-node.h" line="57"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="ThemeNodePaintState" c:type="StThemeNodePaintState">
      <source-position filename="src/st/st-theme-node.h" line="176"/>
      <field name="node" writable="1">
        <type name="ThemeNode" c:type="StThemeNode*"/>
      </field>
      <field name="alloc_width" writable="1">
        <type name="gfloat" c:type="float"/>
      </field>
      <field name="alloc_height" writable="1">
        <type name="gfloat" c:type="float"/>
      </field>
      <field name="box_shadow_width" writable="1">
        <type name="gfloat" c:type="float"/>
      </field>
      <field name="box_shadow_height" writable="1">
        <type name="gfloat" c:type="float"/>
      </field>
      <field name="resource_scale" writable="1">
        <type name="gfloat" c:type="float"/>
      </field>
      <field name="box_shadow_pipeline" writable="1">
        <type name="Cogl.Pipeline" c:type="CoglPipeline*"/>
      </field>
      <field name="prerendered_texture" writable="1">
        <type name="Cogl.Pipeline" c:type="CoglPipeline*"/>
      </field>
      <field name="prerendered_pipeline" writable="1">
        <type name="Cogl.Pipeline" c:type="CoglPipeline*"/>
      </field>
      <field name="corner_material" writable="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="Cogl.Pipeline" c:type="CoglPipeline*"/>
        </array>
      </field>
      <method name="copy" c:identifier="st_theme_node_paint_state_copy">
        <source-position filename="src/st/st-theme-node.h" line="357"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="state" transfer-ownership="none">
            <type name="ThemeNodePaintState" c:type="StThemeNodePaintState*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <type name="ThemeNodePaintState" c:type="StThemeNodePaintState*"/>
          </parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="st_theme_node_paint_state_free">
        <source-position filename="src/st/st-theme-node.h" line="356"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="state" transfer-ownership="none">
            <type name="ThemeNodePaintState" c:type="StThemeNodePaintState*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="init" c:identifier="st_theme_node_paint_state_init">
        <source-position filename="src/st/st-theme-node.h" line="355"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="state" transfer-ownership="none">
            <type name="ThemeNodePaintState" c:type="StThemeNodePaintState*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="invalidate"
              c:identifier="st_theme_node_paint_state_invalidate">
        <source-position filename="src/st/st-theme-node.h" line="359"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="state" transfer-ownership="none">
            <type name="ThemeNodePaintState" c:type="StThemeNodePaintState*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="invalidate_for_file"
              c:identifier="st_theme_node_paint_state_invalidate_for_file">
        <source-position filename="src/st/st-theme-node.h" line="360"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="state" transfer-ownership="none">
            <type name="ThemeNodePaintState" c:type="StThemeNodePaintState*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_node"
              c:identifier="st_theme_node_paint_state_set_node">
        <source-position filename="src/st/st-theme-node.h" line="363"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="state" transfer-ownership="none">
            <type name="ThemeNodePaintState" c:type="StThemeNodePaintState*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="ThemeNode" c:type="StThemeNode*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <class name="Viewport"
           c:symbol-prefix="viewport"
           c:type="StViewport"
           parent="Widget"
           glib:type-name="StViewport"
           glib:get-type="st_viewport_get_type"
           glib:type-struct="ViewportClass">
      <source-position filename="src/st/st-viewport.h" line="38"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <implements name="Scrollable"/>
      <property name="clip-to-view"
                writable="1"
                transfer-ownership="none"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="Widget" c:type="StWidget"/>
      </field>
    </class>
    <record name="ViewportClass"
            c:type="StViewportClass"
            glib:is-gtype-struct-for="Viewport">
      <source-position filename="src/st/st-viewport.h" line="38"/>
      <field name="parent_class">
        <type name="WidgetClass" c:type="StWidgetClass"/>
      </field>
    </record>
    <function-macro name="WIDGET_ACCESSIBLE"
                    c:identifier="ST_WIDGET_ACCESSIBLE"
                    introspectable="0">
      <source-position filename="src/st/st-widget-accessible.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_ACCESSIBLE_CLASS"
                    c:identifier="ST_WIDGET_ACCESSIBLE_CLASS"
                    introspectable="0">
      <source-position filename="src/st/st-widget-accessible.h" line="43"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_ACCESSIBLE_GET_CLASS"
                    c:identifier="ST_WIDGET_ACCESSIBLE_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/st/st-widget-accessible.h" line="51"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Widget"
           c:symbol-prefix="widget"
           c:type="StWidget"
           parent="Clutter.Actor"
           glib:type-name="StWidget"
           glib:get-type="st_widget_get_type"
           glib:type-struct="WidgetClass">
      <source-position filename="src/st/st-widget.h" line="92"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <virtual-method name="get_focus_chain" invoker="get_focus_chain">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="3052">Gets a list of the focusable children of @widget, in "Tab"
order. By default, this returns all visible
(as in clutter_actor_is_visible()) children of @widget.</doc>
        <source-position filename="src/st/st-widget.h" line="91"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="src/st/st-widget.c"
               line="3060">
  @widget's focusable children</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Clutter.Actor"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="3054">An #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="navigate_focus">
        <source-position filename="src/st/st-widget.h" line="86"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.h"
                 line="82">the "top level" container</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
          <parameter name="from"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.h"
                 line="83">the actor that the focus is coming from</doc>
            <type name="Clutter.Actor" c:type="ClutterActor*"/>
          </parameter>
          <parameter name="direction" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.h"
                 line="84">the direction focus is moving in</doc>
            <type name="DirectionType" c:type="StDirectionType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="popup_menu" invoker="popup_menu">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1976">Asks the widget to pop-up a context menu by emitting #StWidget::popup-menu.</doc>
        <source-position filename="src/st/st-widget.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1978">A #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="style_changed" invoker="style_changed">
        <source-position filename="src/st/st-widget.h" line="75"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="add_accessible_state"
              c:identifier="st_widget_add_accessible_state">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="2564">This method adds @state as one of the accessible states for
@widget. The list of states of a widget describes the current state
of user interface element @widget and is provided so that assistive
technologies know how to present @widget to the user.

Usually you will have no need to add accessible states for an
object, as the accessible object can extract most of the states
from the object itself (ie: a #StButton knows when it is pressed).
This method is only required when one cannot extract the
information automatically from the object itself (i.e.: a generic
container used as a toggle menu item will not automatically include
the toggled state).</doc>
        <source-position filename="src/st/st-widget.h" line="156"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="2566">A #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="2567">#AtkStateType state to add</doc>
            <type name="Atk.StateType" c:type="AtkStateType"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_style_class_name"
              c:identifier="st_widget_add_style_class_name">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1186">Adds @style_class to @actor's style class name list, if it is not
already present.</doc>
        <source-position filename="src/st/st-widget.h" line="106"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1188">a #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
          <parameter name="style_class" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1189">a style class name string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_style_pseudo_class"
              c:identifier="st_widget_add_style_pseudo_class">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1355">Adds @pseudo_class to @actor's pseudo class list, if it is not
already present.</doc>
        <source-position filename="src/st/st-widget.h" line="96"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1357">a #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
          <parameter name="pseudo_class" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1358">a pseudo class string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="ensure_style" c:identifier="st_widget_ensure_style">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1774">Ensures that @widget has read its style information and propagated any
changes to its children.</doc>
        <source-position filename="src/st/st-widget.h" line="126"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1776">A #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_accessible_name"
              c:identifier="st_widget_get_accessible_name"
              glib:get-property="accessible-name">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="2467">Gets the accessible name for this widget. See
st_widget_set_accessible_name() for more information.</doc>
        <source-position filename="src/st/st-widget.h" line="162"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-widget.c"
               line="2474">a character string representing the accessible name
of the widget.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="2469">widget to get the accessible name for</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_accessible_role"
              c:identifier="st_widget_get_accessible_role"
              glib:get-property="accessible-role">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="2526">Gets the #AtkRole for this widget. See
st_widget_set_accessible_role() for more information.</doc>
        <source-position filename="src/st/st-widget.h" line="155"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-widget.c"
               line="2533">accessible #AtkRole for this widget</doc>
          <type name="Atk.Role" c:type="AtkRole"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="2528">widget to get the accessible role for</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_can_focus"
              c:identifier="st_widget_get_can_focus"
              glib:get-property="can-focus">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1959">Returns the current value of the can-focus property. See
st_widget_set_can_focus() for more information.</doc>
        <source-position filename="src/st/st-widget.h" line="130"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-widget.c"
               line="1966">current value of can-focus on @widget</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1961">A #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_focus_chain" c:identifier="st_widget_get_focus_chain">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="3052">Gets a list of the focusable children of @widget, in "Tab"
order. By default, this returns all visible
(as in clutter_actor_is_visible()) children of @widget.</doc>
        <source-position filename="src/st/st-widget.h" line="145"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="src/st/st-widget.c"
               line="3060">
  @widget's focusable children</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Clutter.Actor"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="3054">An #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_hover"
              c:identifier="st_widget_get_hover"
              glib:get-property="hover">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1916">If #StWidget:track-hover is set, this returns whether the pointer
is currently over the widget.</doc>
        <source-position filename="src/st/st-widget.h" line="123"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-widget.c"
               line="1923">current value of hover on @widget</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1918">A #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_label_actor"
              c:identifier="st_widget_get_label_actor"
              glib:get-property="label-actor">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="2382">Gets the label that identifies @widget if it is defined</doc>
        <source-position filename="src/st/st-widget.h" line="136"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-widget.c"
               line="2388">the label that identifies the widget</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="2384">a #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_style"
              c:identifier="st_widget_get_style"
              glib:get-property="style">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1438">Get the current inline style string. See st_widget_set_style().</doc>
        <source-position filename="src/st/st-widget.h" line="116"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/st/st-widget.c"
               line="1444">The inline style string, or %NULL. The
  string is owned by the #StWidget and should not be modified or freed.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1440">a #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_style_class_name"
              c:identifier="st_widget_get_style_class_name">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1240">Get the current style class name</doc>
        <source-position filename="src/st/st-widget.h" line="110"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-widget.c"
               line="1246">the class name string. The string is owned by the #StWidget and
should not be modified or freed.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1242">a #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_style_pseudo_class"
              c:identifier="st_widget_get_style_pseudo_class">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1282">Get the current style pseudo class list.

Note that an actor can have multiple pseudo classes; if you just
want to test for the presence of a specific pseudo class, use
st_widget_has_style_pseudo_class().</doc>
        <source-position filename="src/st/st-widget.h" line="100"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-widget.c"
               line="1292">the pseudo class list string. The string is owned by the
#StWidget and should not be modified or freed.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1284">a #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_theme_node" c:identifier="st_widget_get_theme_node">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="573">Gets the theme node holding style information for the widget.
The theme node is used to access standard and custom CSS
properties of the widget.

Note: it is a fatal error to call this on a widget that is
 not been added to a stage.</doc>
        <source-position filename="src/st/st-widget.h" line="142"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-widget.c"
               line="584">the theme node for the widget.
  This is owned by the widget. When attributes of the widget
  or the environment that affect the styling change (for example
  the style_class property of the widget), it will be recreated,
  and the ::style-changed signal will be emitted on the widget.</doc>
          <type name="ThemeNode" c:type="StThemeNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="575">a #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_track_hover"
              c:identifier="st_widget_get_track_hover"
              glib:get-property="track-hover">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1837">Returns the current value of the #StWidget:track-hover property. See
st_widget_set_track_hover() for more information.</doc>
        <source-position filename="src/st/st-widget.h" line="119"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-widget.c"
               line="1844">current value of track-hover on @widget</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1839">A #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_style_class_name"
              c:identifier="st_widget_has_style_class_name">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1257">Tests if @actor's style class list includes @style_class.</doc>
        <source-position filename="src/st/st-widget.h" line="111"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-widget.c"
               line="1264">whether or not @actor's style class list includes
@style_class.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1259">a #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
          <parameter name="style_class" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1260">a style class string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_style_pseudo_class"
              c:identifier="st_widget_has_style_pseudo_class">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1303">Tests if @actor's pseudo class list includes @pseudo_class.</doc>
        <source-position filename="src/st/st-widget.h" line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-widget.c"
               line="1310">whether or not @actor's pseudo class list includes
@pseudo_class.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1305">a #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
          <parameter name="pseudo_class" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1306">a pseudo class string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="navigate_focus" c:identifier="st_widget_navigate_focus">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="2233">Tries to update the keyboard focus within @widget in response to a
keyboard event.

If @from is a descendant of @widget, this attempts to move the
keyboard focus to the next descendant of @widget (in the order
implied by @direction) that has the #StWidget:can-focus property
set. If @from is %NULL, this attempts to focus either @widget
itself, or its first descendant in the order implied by
@direction. If @from is outside of @widget, it behaves as if it was
a descendant if @direction is one of the directional arrows and as
if it was %NULL otherwise.

If a container type is marked #StWidget:can-focus, the expected
behavior is that it will only take up a single slot on the focus
chain as a whole, rather than allowing navigation between its child
actors (or having a distinction between itself being focused and
one of its children being focused).

Some widget classes might have slightly different behavior from the
above, where that would make more sense.

If @wrap_around is %TRUE and @from is a child of @widget, but the
widget has no further children that can accept the focus in the
given direction, then st_widget_navigate_focus() will try a second
time, using a %NULL @from, which should cause it to reset the focus
to the first available widget in the given direction.</doc>
        <source-position filename="src/st/st-widget.h" line="131"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-widget.c"
               line="2267">%TRUE if clutter_actor_grab_key_focus() has been
called on an actor. %FALSE if not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="2235">the "top level" container</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
          <parameter name="from"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="2236">the actor that the focus is coming from</doc>
            <type name="Clutter.Actor" c:type="ClutterActor*"/>
          </parameter>
          <parameter name="direction" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="2237">the direction focus is moving in</doc>
            <type name="DirectionType" c:type="StDirectionType"/>
          </parameter>
          <parameter name="wrap_around" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="2238">whether focus should wrap around</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="paint_background"
              c:identifier="st_widget_paint_background">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="412">Paint the background of the widget. This is meant to be called by
subclasses of StWidget that need to paint the background without
painting children.</doc>
        <source-position filename="src/st/st-widget.h" line="146"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="414">The #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
          <parameter name="paint_context" transfer-ownership="none">
            <type name="Clutter.PaintContext" c:type="ClutterPaintContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="peek_theme_node" c:identifier="st_widget_peek_theme_node">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="666">Returns the theme node for the widget if it has already been
computed, %NULL if the widget hasn't been added to a  stage or the theme
node hasn't been computed. If %NULL is returned, then ::style-changed
will be reliably emitted before the widget is allocated or painted.</doc>
        <source-position filename="src/st/st-widget.h" line="143"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-widget.c"
               line="675">the theme node for the widget.
  This is owned by the widget. When attributes of the widget
  or the environment that affect the styling change (for example
  the style_class property of the widget), it will be recreated,
  and the ::style-changed signal will be emitted on the widget.</doc>
          <type name="ThemeNode" c:type="StThemeNode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="668">a #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="popup_menu" c:identifier="st_widget_popup_menu">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1976">Asks the widget to pop-up a context menu by emitting #StWidget::popup-menu.</doc>
        <source-position filename="src/st/st-widget.h" line="124"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1978">A #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_accessible_state"
              c:identifier="st_widget_remove_accessible_state">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="2597">This method removes @state as on of the accessible states for
@widget. See st_widget_add_accessible_state() for more information.</doc>
        <source-position filename="src/st/st-widget.h" line="158"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="2599">A #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="2600">#AtkState state to remove</doc>
            <type name="Atk.StateType" c:type="AtkStateType"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_style_class_name"
              c:identifier="st_widget_remove_style_class_name">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1213">Removes @style_class from @actor's style class name, if it is
present.</doc>
        <source-position filename="src/st/st-widget.h" line="108"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1215">a #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
          <parameter name="style_class" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1216">a style class name string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_style_pseudo_class"
              c:identifier="st_widget_remove_style_pseudo_class">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1382">Removes @pseudo_class from @actor's pseudo class, if it is present.</doc>
        <source-position filename="src/st/st-widget.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1384">a #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
          <parameter name="pseudo_class" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1385">a pseudo class string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_accessible" c:identifier="st_widget_set_accessible">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="2711">This method allows to set a customly created accessible object to
this widget. For example if you define a new subclass of
#StWidgetAccessible at the javascript code.

NULL is a valid value for @accessible. That contemplates the
hypothetical case of not needing anymore a custom accessible object
for the widget. Next call of st_widget_get_accessible() would
create and return a default accessible.

It assumes that the call to atk_object_initialize that bound the
gobject with the custom accessible object was already called, so
not a responsibility of this method.</doc>
        <source-position filename="src/st/st-widget.h" line="163"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="2713">A #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
          <parameter name="accessible" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="2714">an accessible (#AtkObject)</doc>
            <type name="Atk.Object" c:type="AtkObject*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_accessible_name"
              c:identifier="st_widget_set_accessible_name"
              glib:set-property="accessible-name">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="2432">This method sets @name as the accessible name for @widget.

Usually you will have no need to set the accessible name for an
object, as usually there is a label for most of the interface
elements. So in general it is better to just use
@st_widget_set_label_actor. This method is only required when you
need to set an accessible name and there is no available label
object.</doc>
        <source-position filename="src/st/st-widget.h" line="160"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="2434">widget to set the accessible name for</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
          <parameter name="name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="2435">a character string to be set as the accessible name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_accessible_role"
              c:identifier="st_widget_set_accessible_role"
              glib:set-property="accessible-role">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="2485">This method sets @role as the accessible role for @widget. This
role describes what kind of user interface element @widget is and
is provided so that assistive technologies know how to present
@widget to the user.

Usually you will have no need to set the accessible role for an
object, as this information is extracted from the context of the
object (ie: a #StButton has by default a push button role). This
method is only required when you need to redefine the role
currently associated with the widget, for instance if it is being
used in an unusual way (ie: a #StButton used as a togglebutton), or
if a generic object is used directly (ie: a container as a menu
item).

If @role is #ATK_ROLE_INVALID, the role will not be changed
and the accessible's default role will be used instead.</doc>
        <source-position filename="src/st/st-widget.h" line="153"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="2487">widget to set the accessible role for</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
          <parameter name="role" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="2488">The role to use</doc>
            <type name="Atk.Role" c:type="AtkRole"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_can_focus"
              c:identifier="st_widget_set_can_focus"
              glib:set-property="can-focus">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1933">Marks @widget as being able to receive keyboard focus via
keyboard navigation.</doc>
        <source-position filename="src/st/st-widget.h" line="128"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1935">A #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
          <parameter name="can_focus" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1936">%TRUE if the widget can receive keyboard focus
  via keyboard navigation</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_hover"
              c:identifier="st_widget_set_hover"
              glib:set-property="hover">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1854">Sets @widget's hover property and adds or removes "hover" from its
pseudo class accordingly.

If you have set #StWidget:track-hover, you should not need to call
this directly. You can call st_widget_sync_hover() if the hover
state might be out of sync due to another actor's pointer grab.</doc>
        <source-position filename="src/st/st-widget.h" line="120"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1856">A #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
          <parameter name="hover" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1857">whether the pointer is hovering over the widget</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_label_actor"
              c:identifier="st_widget_set_label_actor"
              glib:set-property="label-actor">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="2398">Sets @label as the #ClutterActor that identifies (labels)
@widget. @label can be %NULL to indicate that @widget is not
labelled any more</doc>
        <source-position filename="src/st/st-widget.h" line="137"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="2400">a #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
          <parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="2401">a #ClutterActor</doc>
            <type name="Clutter.Actor" c:type="ClutterActor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_style"
              c:identifier="st_widget_set_style"
              glib:set-property="style">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1408">Set the inline style string for this widget. The inline style string is an
optional ';'-separated list of CSS properties that override the style as
determined from the stylesheets of the current theme.</doc>
        <source-position filename="src/st/st-widget.h" line="114"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1410">a #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
          <parameter name="style"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1411">a inline style string, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_style_class_name"
              c:identifier="st_widget_set_style_class_name">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1159">Set the style class name list. @style_class_list can either be
%NULL, for no classes, or a space-separated list of style class
names. See also st_widget_add_style_class_name() and
st_widget_remove_style_class_name().</doc>
        <source-position filename="src/st/st-widget.h" line="104"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1161">a #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
          <parameter name="style_class_list"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1162">a new style class list string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_style_pseudo_class"
              c:identifier="st_widget_set_style_pseudo_class">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1328">Set the style pseudo class list. @pseudo_class_list can either be
%NULL, for no classes, or a space-separated list of pseudo class
names. See also st_widget_add_style_pseudo_class() and
st_widget_remove_style_pseudo_class().</doc>
        <source-position filename="src/st/st-widget.h" line="94"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1330">a #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
          <parameter name="pseudo_class_list"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1331">a new pseudo class list string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_track_hover"
              c:identifier="st_widget_set_track_hover"
              glib:set-property="track-hover">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1797">Enables hover tracking on the #StWidget.

If hover tracking is enabled, and the widget is visible and
reactive, then @widget's #StWidget:hover property will be updated
automatically to reflect whether the pointer is in @widget (or one
of its children), and @widget's #StWidget:pseudo-class will have
the "hover" class added and removed from it accordingly.

Note that currently it is not possible to correctly track the hover
state when another actor has a pointer grab. You can use
st_widget_sync_hover() to update the property manually in this
case.</doc>
        <source-position filename="src/st/st-widget.h" line="117"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1799">A #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
          <parameter name="track_hover" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1800">%TRUE if the widget should track the pointer hover state</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="style_changed" c:identifier="st_widget_style_changed">
        <source-position filename="src/st/st-widget.h" line="141"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="sync_hover" c:identifier="st_widget_sync_hover">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1887">Sets @widget's hover state according to the current pointer
position. This can be used to ensure that it is correct after
(or during) a pointer grab.</doc>
        <source-position filename="src/st/st-widget.h" line="122"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="1889">A #StWidget</doc>
            <type name="Widget" c:type="StWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="accessible-name"
                writable="1"
                transfer-ownership="none"
                setter="set_accessible_name"
                getter="get_accessible_name"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1022">Object instance's name for assistive technology access.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="accessible-role"
                writable="1"
                transfer-ownership="none"
                setter="set_accessible_role"
                getter="get_accessible_role"
                default-value="ATK_ROLE_INVALID">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1009">The accessible role of this object</doc>
        <type name="Atk.Role"/>
      </property>
      <property name="can-focus"
                writable="1"
                transfer-ownership="none"
                setter="set_can_focus"
                getter="get_can_focus"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="985">Whether or not the widget can be focused via keyboard navigation.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="hover"
                writable="1"
                transfer-ownership="none"
                setter="set_hover"
                getter="get_hover"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="971">Whether or not the pointer is currently hovering over the widget. This is
only tracked automatically if #StWidget:track-hover is %TRUE, but you can
adjust it manually in any case.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="label-actor"
                writable="1"
                transfer-ownership="none"
                setter="set_label_actor"
                getter="get_label_actor">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="997">An actor that labels this widget.</doc>
        <type name="Clutter.Actor"/>
      </property>
      <property name="pseudo-class" writable="1" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="917">The pseudo-class of the actor. Typical values include "hover", "active",
"focus".</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="style"
                writable="1"
                transfer-ownership="none"
                setter="set_style"
                getter="get_style">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="942">Inline style information for the actor as a ';'-separated list of
CSS properties.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="style-class" writable="1" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="930">The style-class of the actor for use in styling.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="track-hover"
                writable="1"
                transfer-ownership="none"
                setter="set_track_hover"
                getter="get_track_hover"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="955">Determines whether the widget tracks pointer hover state. If
%TRUE (and the widget is visible and reactive), the
#StWidget:hover property and "hover" style pseudo class will be
adjusted automatically as the pointer moves in and out of the
widget.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="Clutter.Actor" c:type="ClutterActor"/>
      </field>
      <glib:signal name="popup-menu" when="last">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1051">Emitted when the user has requested a context menu (eg, via a keybinding)</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="style-changed" when="last">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="1036">Emitted when the style information that the widget derives from the
theme changes</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <class name="WidgetAccessible"
           c:symbol-prefix="widget_accessible"
           c:type="StWidgetAccessible"
           parent="Cally.Actor"
           glib:type-name="StWidgetAccessible"
           glib:get-type="st_widget_accessible_get_type"
           glib:type-struct="WidgetAccessibleClass">
      <source-position filename="src/st/st-widget-accessible.h" line="70"/>
      <implements name="Atk.Action"/>
      <implements name="Atk.Component"/>
      <field name="parent">
        <type name="Cally.Actor" c:type="CallyActor"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="WidgetAccessiblePrivate"
              c:type="StWidgetAccessiblePrivate*"/>
      </field>
    </class>
    <record name="WidgetAccessibleClass"
            c:type="StWidgetAccessibleClass"
            glib:is-gtype-struct-for="WidgetAccessible">
      <source-position filename="src/st/st-widget-accessible.h" line="70"/>
      <field name="parent_class">
        <type name="Cally.ActorClass" c:type="CallyActorClass"/>
      </field>
    </record>
    <record name="WidgetAccessiblePrivate"
            c:type="StWidgetAccessiblePrivate"
            disguised="1"
            opaque="1">
      <source-position filename="src/st/st-widget-accessible.h" line="57"/>
    </record>
    <record name="WidgetClass"
            c:type="StWidgetClass"
            glib:is-gtype-struct-for="Widget">
      <doc xml:space="preserve"
           filename="src/st/st-widget.h"
           line="64">Base class for stylable actors.</doc>
      <source-position filename="src/st/st-widget.h" line="92"/>
      <field name="parent_class" readable="0" private="1">
        <type name="Clutter.ActorClass" c:type="ClutterActorClass"/>
      </field>
      <field name="style_changed">
        <callback name="style_changed">
          <source-position filename="src/st/st-widget.h" line="75"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Widget" c:type="StWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="popup_menu">
        <callback name="popup_menu">
          <source-position filename="src/st/st-widget.h" line="76"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/st/st-widget.c"
                   line="1978">A #StWidget</doc>
              <type name="Widget" c:type="StWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="navigate_focus">
        <callback name="navigate_focus">
          <source-position filename="src/st/st-widget.h" line="86"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/st/st-widget.h"
                   line="82">the "top level" container</doc>
              <type name="Widget" c:type="StWidget*"/>
            </parameter>
            <parameter name="from"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="src/st/st-widget.h"
                   line="83">the actor that the focus is coming from</doc>
              <type name="Clutter.Actor" c:type="ClutterActor*"/>
            </parameter>
            <parameter name="direction" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/st/st-widget.h"
                   line="84">the direction focus is moving in</doc>
              <type name="DirectionType" c:type="StDirectionType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_accessible_type">
        <callback name="get_accessible_type">
          <source-position filename="src/st/st-widget.h" line="89"/>
          <return-value transfer-ownership="none">
            <type name="GType" c:type="GType"/>
          </return-value>
        </callback>
      </field>
      <field name="get_focus_chain">
        <callback name="get_focus_chain">
          <source-position filename="src/st/st-widget.h" line="91"/>
          <return-value transfer-ownership="container">
            <doc xml:space="preserve"
                 filename="src/st/st-widget.c"
                 line="3060">
  @widget's focusable children</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Clutter.Actor"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/st/st-widget.c"
                   line="3054">An #StWidget</doc>
              <type name="Widget" c:type="StWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <function name="describe_actor" c:identifier="st_describe_actor">
      <doc xml:space="preserve"
           filename="src/st/st-widget.c"
           line="2305">Creates a string describing @actor, for use in debugging. This
includes the class name and actor name (if any), plus if @actor
is an #StWidget, its style class and pseudo class names.</doc>
      <source-position filename="src/st/st-widget.h" line="150"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="src/st/st-widget.c"
             line="2313">the debug name.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="actor" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/st/st-widget.c"
               line="2307">a #ClutterActor</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </parameter>
      </parameters>
    </function>
    <function name="icon_theme_error_quark"
              c:identifier="st_icon_theme_error_quark"
              moved-to="IconThemeError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <docsection name="st-adjustment">
      <doc xml:space="preserve"
           filename="src/st/st-adjustment.c"
           line="21">The #StAdjustment object represents a range of values bounded between a
minimum and maximum, together with step and page increments and a page size.</doc>
    </docsection>
    <docsection name="st-bin">
      <doc xml:space="preserve"
           filename="src/st/st-bin.c"
           line="21">#StBin is a simple container capable of having only one
#ClutterActor as a child.

#StBin inherits from #StWidget, so it is fully themable.</doc>
    </docsection>
    <docsection name="st-box-layout">
      <doc xml:space="preserve"
           filename="src/st/st-box-layout.c"
           line="37">The #StBoxLayout arranges its children along a single line, where each
child can be allocated either its preferred size or larger if the expand
option is set. If the fill option is set, the actor will be allocated more
than its requested size. If the fill option is not set, but the expand option
is enabled, then the position of the actor within the available space can
be determined by the alignment child property.</doc>
    </docsection>
    <docsection name="st-button">
      <doc xml:space="preserve"
           filename="src/st/st-button.c"
           line="22">A button widget with support for either a text label or icon, toggle mode
and transitions effects between states.</doc>
    </docsection>
    <docsection name="st-clipboard">
      <doc xml:space="preserve"
           filename="src/st/st-clipboard.c"
           line="20">#StCliboard is a very simple object representation of the clipboard
available to applications. Text is always assumed to be UTF-8 and non-text
items are not handled.</doc>
    </docsection>
    <docsection name="st-drawing-area">
      <doc xml:space="preserve"
           filename="src/st/st-drawing-area.c"
           line="21">#StDrawingArea allows drawing via Cairo; the primary difference is that
it is dynamically sized. To use, connect to the #StDrawingArea::repaint
signal, and inside the signal handler, call
st_drawing_area_get_context() to get the Cairo context to draw to.  The
#StDrawingArea::repaint signal will be emitted by default when the area is
resized or the CSS style changes; you can use the
st_drawing_area_queue_repaint() as well.</doc>
    </docsection>
    <docsection name="st-entry">
      <doc xml:space="preserve"
           filename="src/st/st-entry.c"
           line="22">#StEntry is a simple widget for displaying text. It derives from
#StWidget to add extra style and placement functionality over
#ClutterText. The internal #ClutterText is publicly accessibly to allow
applications to set further properties.

#StEntry supports the following pseudo style states:

- `focus`: the widget has focus
- `indeterminate`: the widget is showing the hint text or actor</doc>
    </docsection>
    <docsection name="st-focus-manager">
      <doc xml:space="preserve"
           filename="src/st/st-focus-manager.c"
           line="21">#StFocusManager handles keyboard focus for all actors on the stage.</doc>
    </docsection>
    <docsection name="st-generic-accessible">
      <doc xml:space="preserve"
           filename="src/st/st-generic-accessible.c"
           line="20">#StGenericAccessible is mainly a workaround for the current lack of
of a proper support for GValue at javascript. See bug#703412 for
more information. We implement the accessible interfaces, but proxy
the virtual functions into signals, which gjs can catch.

#StGenericAccessible is an #StWidgetAccessible</doc>
    </docsection>
    <docsection name="st-icon">
      <doc xml:space="preserve"
           filename="src/st/st-icon.c"
           line="21">#StIcon is a simple styled texture actor that displays an image from
a stylesheet.</doc>
    </docsection>
    <docsection name="st-label">
      <doc xml:space="preserve"
           filename="src/st/st-label.c"
           line="22">#StLabel is a simple widget for displaying text. It derives from
#StWidget to add extra style and placement functionality over
#ClutterText. The internal #ClutterText is publicly accessibly to allow
applications to set further properties.</doc>
    </docsection>
    <docsection name="st-scroll-bar">
      <doc xml:space="preserve"
           filename="src/st/st-scroll-bar.c"
           line="23">The #StScrollBar allows users to scroll scrollable actors, either by
the step or page amount, or by manually dragging the handle.</doc>
    </docsection>
    <docsection name="st-scroll-view">
      <doc xml:space="preserve"
           filename="src/st/st-scroll-view.c"
           line="23">#StScrollView is a single child container for actors that implement
#StScrollable. It provides scrollbars around the edge of the child to
allow the user to move around the scrollable area.</doc>
    </docsection>
    <docsection name="st-scrollable">
      <doc xml:space="preserve"
           filename="src/st/st-scrollable.c"
           line="27">The #StScrollable interface is exposed by actors that support scrolling.

The interface contains methods for getting and setting the adjustments
for scrolling; these adjustments will be used to hook the scrolled
position up to scrollbars or other external controls. When a #StScrollable
is added to a parent container, the parent container is responsible
for setting the adjustments. The parent container then sets the adjustments
back to %NULL when the scrollable is removed.

For #StScrollable supporting height-for-width size negotiation, size
negotiation works as follows:

In response to get_preferred_width(), the scrollable should report
the minimum width at which horizontal scrolling is needed for the
preferred width, and natural width of the actor when not
horizontally scrolled as the natural width.

The for_width passed into get_preferred_height() is the width at which
the scrollable will be allocated; this will be smaller than the minimum
width when scrolling horizontally, so the scrollable may want to adjust
it up to the minimum width before computing a preferred height. (Other
scrollables may want to fit as much content into the allocated area
as possible and only scroll what absolutely needs to scroll - consider,
for example, the line-wrapping behavior of a text editor where there
is a long line without any spaces.) As for width, get_preferred_height()
should return the minimum size at which no scrolling is needed for the
minimum height, and the natural size of the actor when not vertically scrolled
as the natural height.

In allocate() the allocation box passed in will be actual allocated
size of the actor so will be smaller than the reported minimum
width and/or height when scrolling is present. Any scrollable actor
must support being allocated at any size down to 0x0 without
crashing, however if the actor has content around the scrolled area
and has an absolute minimum size that's bigger than 0x0 its
acceptable for it to misdraw between 0x0 and the absolute minimum
size. It's up to the application author to avoid letting the user
resize the scroll view small enough so that the scrolled area
vanishes.

In response to allocate, in addition to normal handling, the
scrollable should also set the limits of the the horizontal and
vertical adjustments that were set on it earlier. The standard
settings are:

 lower: 0
 page_size: allocated size (width or height)
 upper: MAX (total size of the scrolled area,allocated_size)
 step_increment: natural row/column height or a fixed fraction of the page size
 page_increment: page_size - step_increment</doc>
    </docsection>
    <docsection name="st-shadow">
      <doc xml:space="preserve"
           filename="src/st/st-shadow.c"
           line="29">#StShadow is a boxed type for storing attributes of the -st-shadow
property, modelled liberally after the CSS3 box-shadow property.
See http://www.css3.info/preview/box-shadow/</doc>
    </docsection>
    <docsection name="st-shadow-helper">
      <doc xml:space="preserve"
           filename="src/st/st-shadow.c"
           line="180">An helper for implementing a drop shadow on a actor.
The actor is expected to recreate the helper whenever its contents
or size change. Then, it would call st_shadow_helper_paint() inside
its paint() virtual function.</doc>
    </docsection>
    <docsection name="st-theme">
      <doc xml:space="preserve"
           filename="src/st/st-theme.h"
           line="29">#StTheme holds a set of stylesheets. (The "cascade" of the name
Cascading Stylesheets.) A #StTheme can be set to apply to all the actors
in a stage using st_theme_context_set_theme().</doc>
    </docsection>
    <docsection name="st-theme-context">
      <doc xml:space="preserve"
           filename="src/st/st-theme-context.h"
           line="31">#StThemeContext is responsible for managing information global to a tree of styled objects,
such as the set of stylesheets or the default font. In normal usage, a #StThemeContext
is bound to a #ClutterStage; a singleton #StThemeContext can be obtained for a #ClutterStage
by using st_theme_context_get_for_stage().</doc>
    </docsection>
    <docsection name="st-theme-node">
      <doc xml:space="preserve"
           filename="src/st/st-theme-node.h"
           line="33">A #StThemeNode represents the CSS style information (the set of CSS properties) for one
node in a tree of themed objects. In typical usage, it represents the style information
for a single #ClutterActor. A #StThemeNode is immutable: attributes such as the
CSS classes for the node are passed in at construction. If the attributes of the node
or any parent node change, the node should be discarded and a new node created.
#StThemeNode has generic accessors to look up properties by name and specific
accessors for standard CSS properties that add caching and handling of various
details of the CSS specification. #StThemeNode also has convenience functions to help
in implementing a #ClutterActor with borders and padding.

Note that pixel measurements take the #StThemeContext:scale-factor into
account so all values are in physical pixels, as opposed to logical pixels.
Physical pixels correspond to actor sizes, not necessarily to pixels on
display devices (eg. when `scale-monitor-framebuffer` is enabled).</doc>
    </docsection>
    <docsection name="st-types">
      <doc xml:space="preserve"
           filename="src/st/st-types.h"
           line="29">Common types for StWidgets.</doc>
    </docsection>
    <docsection name="st-viewport">
      <doc xml:space="preserve"
           filename="src/st/st-viewport.c"
           line="38">The #StViewport is a generic #StScrollable implementation.</doc>
    </docsection>
    <docsection name="st-widget">
      <doc xml:space="preserve"
           filename="src/st/st-widget.c"
           line="93">#StWidget is a simple abstract class on top of #ClutterActor. It
provides basic themeing properties.

Actors in the St library should subclass #StWidget if they plan
to obey to a certain #StStyle.</doc>
    </docsection>
  </namespace>
</repository>
